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.