Время, необходимое для запуска функции на графическом процессоре
t = gputimeit(F)
t = gputimeit(F,N)
t = gputimeit(F)
измеряет типовое время (в секундах), необходимое для запуска функции, заданной указателем на функцию F
. Указатель на функцию не принимает внешних входных параметров, но может быть определен с входными параметрами во внутренний вызов функции.
t = gputimeit(F,N)
вызывает F
для возврата N
выходные аргументы. По умолчанию gputimeit
вызывает функцию F
с одним выходным аргументом или без выходных аргументов, если F
не возвращает выходов.
Измерьте время для вычисления sum(A.' .* B, 1)
на графическом процессоре, где A
является матрицей 12000 на 400 и B
400 на 12000.
A = rand(12000,400,'gpuArray'); B = rand(400,12000,'gpuArray'); f = @() sum(A.' .* B, 1); t = gputimeit(f)
0.0026
Сравните время запуска svd
на графическом процессоре с одним от трех выходных аргументов.
X = rand(1000,'gpuArray');
f = @() svd(X);
t3 = gputimeit(f,3)
1.0622
t1 = gputimeit(f,1)
0.2933
gputimeit
предпочтительно, чтобы timeit
для функций, которые используют графический процессор, поскольку он обеспечивает завершение всех операций на графический процессор перед записью времени и компенсирует накладные расходы. Для операций, которые не используют графический процессор, timeit
обеспечивает большую точность.
Обратите внимание на следующие ограничения:
Функция F
не следует вызывать tic
или toc
.
Вы не можете использовать tic
и toc
для измерения времени выполнения gputimeit
сам.