Время, требуемое для работы функции на графическом процессоре
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
.