主要内容

运行MATLAB图形处理器功能

你可以通过运行MATLAB来加速你的代码®GPU功能。MATLAB中的GPU计算需要并行计算工具箱™。

MATLAB功能与gpuArray参数

MATLAB和其他工具箱中的许多函数在GPU上自动运行gpuArray数据参数。一个gpuArray在MATLAB中表示存储在GPU上的数组。

A = gpuArray([1 0 1;-1 -2 0;0 1 -1]);e = eig(A);

当您至少使用一个函数调用这些函数时gpuArray作为数据输入参数,函数在GPU上执行。函数生成gpuArray因此,除非将数值数据返回到本地工作空间更合适(例如,大小).您可以混合使用这两种输入gpuArray同一函数调用中存储在主机内存中的数据和数组。gpuArray启用的函数包括离散傅里叶变换(fft),矩阵乘法(mtimes),左矩阵除法(mldivide),以及数以百计的其他网站。

条件gpuArray输入

仅当输入数据在图形处理器上时,GPU功能才能在图形处理器上运行。参数参数的数据类型(如维度或索引)不会影响函数的运行位置。例如,总和函数运行在GPU上,因为数据,第一个输入,是在GPU上。

A = rand(10);D = 2;总和(gpuArray (A), d);
然而,总和这段代码中的函数没有在GPU上运行,因为数据,第一个输入,不在GPU上。
A = rand(10);D = 2;总和(A, gpuArray (d));

在GPU上使用复数

如果在GPU上运行的函数的输出可能是复杂的,那么必须显式地将其输入参数指定为复杂的。有关更多信息,请参见在GPU上使用复数

在GPU上使用稀疏数组

稀疏的函数可以用来创建稀疏gpuArray对象。很多MATLAB函数都支持稀疏金宝appgpuArray对象。有关更多信息,请参见在GPU上使用稀疏数组

检查gpuArray支金宝app持功能

有几个MATLAB工具箱包含带有gpuArray金宝app支持。查看这些工具箱中支持的所有函数的列表金宝appgpuArray对象,请使用下表中的链接。带有信息指示器的列表中的函数具有特定于在GPU上运行该函数的限制或使用说明。您可以在函数参考页面的Extended Capabilities部分查看使用说明和限制。有关个人更新的信息gpuArray-启用的函数,请参见发布说明。

工具箱的名字 函数列表gpuArray金宝app GPU-Specific文档
MATLAB 功能与gpuArray金宝app
统计和机器学习工具箱™ 功能与gpuArray金宝app(统计和机器学习工具箱) 在GPU上分析和建模数据(统计和机器学习工具箱)
图像处理工具箱™ 功能与gpuArray金宝app(图像处理工具箱) GPU计算(图像处理工具箱)
深度学习工具箱™

功能与gpuArray金宝app(深度学习工具箱)

*(参见gpu深度学习

并行、gpu和云中扩展深度学习(深度学习工具箱)

基于MATLAB的多gpu深度学习(深度学习工具箱)

计算机视觉工具箱 功能与gpuArray金宝app(计算机视觉工具箱) GPU代码生成和加速(计算机视觉工具箱)
通信工具箱™ 功能与gpuArray金宝app(通信工具箱) 代码生成和加速支持金宝app(通信工具箱)
信号处理工具箱 功能与gpuArray金宝app(信号处理工具箱) 代码生成和GPU支持金宝app(信号处理工具箱)
音频工具箱™ 功能与gpuArray金宝app(音频工具箱) 代码生成和GPU支持金宝app(音频工具箱)
小波工具箱™ 功能与gpuArray金宝app(小波工具箱) 代码生成和GPU支持金宝app(小波工具箱)
曲线拟合工具箱™ 功能与gpuArray金宝app(曲线拟合工具箱)

的函数列表gpuArray金宝app支持所有MathWorks®下载188bet金宝搏产品,请参阅gpuArray支金宝app持功能.或者,您可以根据产品进行过滤。在帮助栏,点击功能.在功能列表中,浏览左侧窗格选择一个产品,例如MATLAB。在左侧窗格的底部,选择GPU数组.如果您选择的产品没有gpuArray-enabled函数,然后GPU数组过滤器不可用。

gpu深度学习

对于深度学习工具箱中的许多功能,如果你有一个受支持的GPU和并行计算工具箱,GPU支持是自动的。金宝app您不需要将数据转换为gpuArray.下面是一个非详尽的函数列表,默认情况下,如果可用,这些函数将在GPU上运行。

有关“深度学习工具箱”中自动GPU支持的更多信息,请参见金宝app并行、gpu和云中扩展深度学习(深度学习工具箱)

用于使用定义为的网络的网络和工作流dlnetwork(深度学习工具箱)对象或模型函数,将数据转换为gpuArray.使用功能与gpuArray金宝app(深度学习工具箱)在GPU上运行自定义训练循环或推理。

选中或选择图形处理器

如果您有一个受支持的GPU,金宝app那么MATLAB将自动使用它进行GPU计算。如果你有多个gpu,那么你可以使用gpuDeviceTable检查系统中检测到的所有gpu的属性。你可以使用gpuDevice选择其中之一,或者使用多个具有并行池的gpu。有关更多信息,请参见识别并选择GPU设备而且在多gpu上运行MATLAB函数.要检查是否支持您的GPU,请参见金宝appGPU计算要求

gpuDeviceTable
索引名称ComputeCapability DeviceAvailable DeviceSelected  _____ __________________ _________________ _______________ ______________ 1”NVIDIA RTX A5000”“8.6”真的真的2”住宅区P620”“6.1”真的假的

使用GPU的MATLAB函数

这个例子展示了如何使用gpuArray-启用MATLAB函数来操作gpuArray对象。属性可以检查GPU的属性gpuDevice函数。

gpuDevice
ans = CUDADevice with properties: Name: 'NVIDIA RTX A5000' Index: 1 ComputeCapability: '8.6' 金宝appSupportsDouble: 1 DriverVersion: 11.6000 ToolkitVersion: 11.2000 MaxThreadsPerBlock: 1024 MaxShmemPerBlock: 49152 (49.15 KB) MaxThreadBlockSize: [1024 1024 64] MaxGridSize: [2.1475e+09 65535 65535] SIMDWidth: 32 TotalMemory: 25553076224 (25.55 GB) AvailableMemory: 25153765376 (25.15 GB) MultiprocessorCount: 64 ClockRateKHz: 1695000 ComputeMode: 'Default' GPUOverlapsTransfers: 1 KernelExecutionTimeout:0 CanMapHostMemory: 1 Device金宝appSupported: 1 DeviceAvailable: 1 DeviceSelected: 1

创建一个行向量,重复从-15到15的值。将其传输到GPU,并创建一个gpuArray对象时,使用gpuArray函数。

X = [-15:15 0 -15:15 0 -15:15];gpx = gpuArray(X);谁gpuX
名称大小字节类属性gpuX 1x95 760 gpuArray

用…操作gpuArray对象,使用任何gpuArray-启用MATLAB函数。MATLAB在GPU上自动运行计算。有关更多信息,请参见在图形处理器上运行MATLAB函数.例如,使用诊断接头expm国防部腹肌,fliplr在一起。

gpuE = expm(diag(gpuX,-1)) * expm(diag(gpuX,1));gpuE = mod(round(abs(gpuE)),2);gpuF = gpuM + fliplr(gpuM);

画出结果。

显示亮度图像(gpuF);colormap(翻转(灰色));

如果需要将数据从GPU传输回来,请使用收集.将数据传输回CPU的成本很高,通常没有必要,除非您需要将结果用于不支持的函数金宝appgpuArray

结果= gather(gpuF);谁结果
名称大小字节类属性result 96x96 73728 double

通常,由于GPU和CPU之间的数值精度和算法差异,在CPU和GPU上运行代码会产生不同的结果。来自CPU和GPU的答案都是对真实分析结果同样有效的浮点近似,在计算过程中受到不同的舍入行为的影响。在本例中,结果是整数和消除舍入错误。

图形处理器使用实例

运行示例MATLABgpu功能

下面的例子通过gpuArray对象到支持的MATLA金宝appB函数,使这些函数在GPU上运行。

工具箱的名字 例子
MATLAB
图像处理工具箱
深度学习工具箱
信号处理工具箱
音频工具箱
小波工具箱

gpu使用的其他示例

下面的例子使用了其他自动GPU支持。金宝app

工具箱的名字 例子
深度学习工具箱
通信工具箱

致谢

岩浆是一个利用GPU加速的线性代数例程库。实现的线性代数函数gpuArray并行计算工具箱中的对象利用MAGMA实现高性能和高精度。

另请参阅

|||

相关的例子

更多关于