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