Time required to run function on GPU
t = gputimeit(F)
t = gputimeit(F,N)
t = gputimeit(F) measures the typical time
(in seconds) required to run the function specified by the function
handle F. The function handle accepts no external
input arguments, but can be defined with input arguments to its internal
function call.
t = gputimeit(F,N) calls F to
return N output arguments. By default, gputimeit calls
the function F with one output argument, or no
output arguments if F does not return any output.
Measure the time to calculate sum(A.' .* B, 1) on
a GPU, where A is a 12000-by-400 matrix and B is
400-by-12000.
A = rand(12000,400,'gpuArray'); B = rand(400,12000,'gpuArray'); f = @() sum(A.' .* B, 1); t = gputimeit(f)
0.0026
Compare the time to run svd on a GPU, with
one versus three output arguments.
X = rand(1000,'gpuArray');
f = @() svd(X);
t3 = gputimeit(f,3)
1.0622
t1 = gputimeit(f,1)
0.2933
gputimeit is preferable to timeit for functions that use the GPU,
because it ensures that all operations on the GPU have finished before
recording the time and compensates for the overhead. For operations
that do not use a GPU, timeit offers greater precision.
Note the following limitations:
The function F should not call tic or toc.
You cannot use tic and toc to
measure the execution time of gputimeit itself.