主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

gputimeit

在 GPU 上运行函数所需的时间

说明

t = gputimeit(F) 测量运行函数句柄 F 指定的函数所需的典型时间(以秒为单位)。函数句柄不接受外部输入参量,但您可以使用输入参量来定义其内部函数调用。

示例

t = gputimeit(F,numOutputs) 使用所需数量的输出参量 numOutputs 调用 F。默认情况下,gputimeit 调用函数 F,它带有一个输出参量;如果 F 不返回任何输出,则不返回任何输出参量。

示例

示例

全部折叠

此示例展示了如何测量在 GPU 上计算 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

比较在 GPU 上运行 svd 的时间,其中一个输出参量与三个输出参量相同。

X = rand(1000,'gpuArray');
f = @() svd(X);
t3 = gputimeit(f,3)
1.0622
t1 = gputimeit(f,1)
0.2933

输入参数

全部折叠

要测量的函数,指定为函数句柄。

函数调用中使用的输出参量的数量,指定为标量整数。

如果 F 指定的函数具有可变数量的输出,则 numOutputs 指定 gputimeit 使用哪种语法来调用该函数。例如,svd 函数返回单个输出 s 或三个输出 [U,S,V]。将 numOutputs 设置为 1 来计时 s = svd(X) 语法,或者将其设置为 3 来计时 [U,S,V] = svd(X) 语法。

限制

  • 函数 F 不能调用 tictoc

  • 不能使用 tictoc 来测量 gputimeit 本身的执行时间。

提示

对于使用 GPU 的函数,gputimeittimeit 更可取,因为它可以确保在记录时间之前 GPU 上的所有操作都已完成,并补偿开销。对于不使用 GPU 的操作,timeit 提供了更高的精度。

扩展功能

全部展开

版本历史记录

在 R2013b 中推出