主要内容

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

wait

等待 GPU 计算完成

说明

wait(gpudev) 阻止 MATLAB® 中的执行,直到 GPUDevice 对象 gpudev 标识的 GPU 设备完成其计算。当计时 GPU 代码不会将结果收集回工作区时,可以在调用 tictoc 之前使用它。当使用 gather 函数从 GPU 收集结果时,MATLAB 会等待所有 GPU 计算完成,因此在这种情况下您不需要明确调用 wait

示例

示例

全部折叠

MATLAB® 中的 GPU 操作异步运行,即它们在后台运行,并且在运行后续代码行时不一定完成。当对 GPU 上运行的代码进行计时时,这很重要。

您可以使用 gputimeit函数来计时某个函数在 GPU 上执行所需的时间,这可确保在记录时间之前 GPU 上的所有操作都已完成。由于 gputimeit 运行该函数多次,因此它可能不适合对特别长时间运行的代码进行计时。或者,使用 tictoc 函数,在每个函数之前调用 wait

选择您的默认 GPU 设备。

gpu = gpuDevice;
disp(gpu.Name + " GPU selected.")
NVIDIA RTX A5000 GPU selected.

在 GPU 上创建一个包含随机数的 1000×1000 矩阵。

A = rand(1000,"gpuArray");

等待 GPU 设备完成创建矩阵 A 并使用 tic 开始计时。

wait(gpu)
tic

使用 lu函数将矩阵分解为上三角矩阵和置换下三角矩阵。

[L,U] = lu(A);

等待计算完成,然后使用 toc 输出经过的时间。

wait(gpu)
toc
Elapsed time is 0.014811 seconds.

输入参数

全部折叠

GPU 设备,指定为代表当前选定的设备的 GPUDevice 对象。要获取 GPUDevice 对象,请使用 gpuDevice 函数。

扩展功能

全部展开

版本历史记录

在 R2014b 中推出