运行MATLAB函数在GPU
你可以加速通过运行MATLAB代码®GPU的函数。在MATLAB GPU计算需要并行计算工具箱™。
MATLAB功能与gpuArray
参数
许多功能在MATLAB和其它工具箱如果你提供一个自动运行在GPUgpuArray
数据参数。一个gpuArray
在MATLAB代表数组存储在GPU上。
一个= gpuArray ([1 0 1;1 2 0;0 1 1]);e = eig(一个);
每当你与至少一个调用这些函数gpuArray
作为数据输入参数,函数执行在GPU上。函数生成一个gpuArray
结果,除非返回数值数据到本地工作区是更合适的(例如,大小
)。您可以使用这两种混合输入gpuArray
数据和数组存储在主机内存相同的函数调用。gpuArray
启用功能包括离散傅里叶变换(fft
),矩阵乘法(mtimes
),左矩阵分裂(mldivide
),和成百上千的其他人。
条件gpuArray
输入
GPU-enabled功能运行在GPU上只有当输入数据在GPU。参数的数据类型参数如维度或指标不影响功能的运行。例如,总和
函数在这段代码中运行在GPU上因为数据,第一个输入,GPU。
一个=兰德(10);d = 2;总和(gpuArray (A), d);
总和
函数在这段代码中没有运行在GPU,因为数据,第一个输入,不是在GPU上。一个=兰德(10);d = 2;总和(A, gpuArray (d));
在GPU处理复数
如果输出函数的运行在GPU可以复杂,您必须显式地指定其输入参数作为复杂。有关更多信息,请参见在GPU处理复数。
在GPU处理稀疏阵列
的稀疏的
函数可以用来创建稀疏gpuArray
对象。许多MATLAB函数支持稀疏万博1manbetxgpuArray
对象。有关更多信息,请参见在GPU处理稀疏阵列。
检查gpuArray
支万博1manbetx持功能
几个MATLAB工具箱包括函数gpuArray
万博1manbetx支持。视图列出了所有功能的这些工具箱支持万博1manbetxgpuArray
对象,使用下表中的链接。功能列表信息指标的局限性或使用notes特定于在GPU上运行的函数。你可以检查使用笔记和局限性的扩展函数参考页面的功能部分。更新个人信息gpuArray
启用功能,发布说明。
工具箱的名字 | 列表的功能gpuArray 万博1manbetx |
GPU-Specific文档 |
---|---|---|
MATLAB | 功能与gpuArray 万博1manbetx |
|
统计和机器学习的工具箱™ | 功能与gpuArray 万博1manbetx(统计和机器学习的工具箱) |
分析和模型数据在GPU上(统计和机器学习的工具箱) |
图像处理工具箱™ | 功能与gpuArray 万博1manbetx(图像处理工具箱) |
GPU计算(图像处理工具箱) |
深度学习工具箱™ | 功能与 *(参见深度学习在gpu上) |
并行扩展深度学习,在gpu上,在云端(深度学习工具箱) 深度学习与MATLAB在多个gpu(深度学习工具箱) |
计算机视觉工具箱™ | 功能与gpuArray 万博1manbetx(计算机视觉工具箱) |
GPU代码生成和加速度(计算机视觉工具箱) |
通信工具箱™ | 功能与gpuArray 万博1manbetx(通信工具箱) |
代码生成和加速支持万博1manbetx(通信工具箱) |
信号处理工具箱™ | 功能与gpuArray 万博1manbetx(信号处理工具箱) |
代码生成和GPU的支持万博1manbetx(信号处理工具箱) |
音频工具箱™ | 功能与gpuArray 万博1manbetx(音频工具箱) |
代码生成和GPU的支持万博1manbetx(音频工具箱) |
小波工具箱™ | 功能与gpuArray 万博1manbetx(小波工具箱) |
代码生成和GPU的支持万博1manbetx(小波工具箱) |
曲线拟合工具箱™ | 功能与gpuArray 万博1manbetx(曲线拟合工具箱) |
为一个函数列表gpuArray
万博1manbetx支持在所有MathWorks®s manbetx 845产品,请参阅gpuArray
支万博1manbetx持功能。或者,您可以过滤产品。在帮助栏,点击功能。在功能列表中,浏览左侧窗格中选择一个产品,例如,MATLAB。在左窗格的底部,选择GPU数组。如果你选择了一个产品没有gpuArray
启用功能,那么GPU数组过滤器是不可用的。
深度学习在gpu上
深度学习的许多功能工具箱,GPU的支持是自动如果你有一个支持GPU和并行计算工具。万博1manbetx你不需要把你的数据gpuArray
。下面是一个简单的函数列表,默认情况下,运行在GPU上是否可用。
trainNetwork
(深度学习工具箱)预测
(深度学习工具箱)predictAndUpdateState
(深度学习工具箱)分类
(深度学习工具箱)classifyAndUpdateState
(深度学习工具箱)激活
(深度学习工具箱)
更多信息自动在深度学习GPU支持工具箱,明白了万博1manbetx并行扩展深度学习,在gpu上,在云端(深度学习工具箱)。
对网络和工作流定义为使用网络dlnetwork
(深度学习工具箱)对象或函数模型,将数据转换成gpuArray
。使用功能与gpuArray
万博1manbetx(深度学习工具箱)运行自定义训练循环或推理在GPU上。
检查或选择一个GPU
如果你有一个支持GPU,然后万博1manbetx用MATLAB自动使用GPU计算。如果你有多个gpu,那么您可以使用gpuDeviceTable
检查所有gpu的性能检测到您的系统。您可以使用gpuDevice
选择其中一个,或使用多个gpu并行池。有关更多信息,请参见识别和选择一个GPU设备和运行在多个gpu MATLAB函数。检查是否支持你的GPU,明白了万博1manbetxGPU计算的需求。
gpuDeviceTable
索引名称ComputeCapability DeviceAvailable DeviceSelected _____ _____________ _________________ 1售予* * *“NVIDIA RTX A5000”“8.6”真的真的2”住宅区P620”“6.1”真的假的
或者,您可以确定有多少GPU设备可用,检查他们的一些属性,并选择一个设备使用MATLAB®桌面。在家选项卡,环境区域,选择平行>选择GPU环境。
使用MATLAB函数GPU
这个例子展示了如何使用gpuArray
启用了MATLAB函数来操作gpuArray
对象。你可以检查你的GPU的属性使用gpuDevice
函数。
gpuDevice
ans = CUDADevice属性:名称:“方形住宅区P620”指数:2 ComputeCapability:“6.1”SupportsDouble: 1 GraphicsD万博1manbetxriverVersion:“511.79”DriverModel:“WDDM”ToolkitVersion: 11.2000 MaxThreadsPerBlock: 1024 MaxShmemPerBlock: 49152 (49.15 KB) MaxThreadBlockSize: [1024 1024 64] MaxGridSize: [2.1475 e + 09年65535 65535]SIMDWidth: 32 TotalMemory: 2147287040 (2.15 GB) AvailableMemory: 1615209678 (1.62 GB) CachePolicy:“平衡”MultiprocessorCount: 4 ClockRateKHz: 1354000 ComputeMode:“违约”GPUOverlapsTransfers: 1 KernelExecutionTimeout: 1 CanMapHostMemory: 1 DeviceSupported: 1 DeviceAvailable: 1 DeviceSelected: 1
创建一个重复的行向量的值从-15年到15。将其传输到GPU和创建一个gpuArray
对象,使用gpuArray
函数。
X = [15:15 0 15:15 0 15:15];gpuX = gpuArray (X);谁gpuX
类属性名称大小字节gpuX 760 x95 gpuArray
操作与gpuArray
对象,使用任何gpuArray
启用了MATLAB函数。MATLAB自动运行在GPU的计算。有关更多信息,请参见运行在GPU MATLAB函数。例如,使用诊断接头
,expm
,国防部
,轮
,腹肌
,fliplr
在一起。
gpuE = expm(诊断接头(gpuX 1)) * expm(诊断接头(gpuX 1));gpuM =国防部(圆(abs (gpuE)), 2);gpuF = gpuM + fliplr (gpuM);
策划的结果。
显示亮度图像(gpuF);colormap(翻转(灰色));
如果你需要把数据从GPU,使用收集
。传输数据到CPU可以是昂贵的,和通常是没有必要的,除非你需要使用结果不支持的功能万博1manbetxgpuArray
。
结果=收集(gpuF);谁结果
类属性名称大小字节的结果96 x96 73728双
一般来说,运行代码的CPU和GPU可以产生不同的结果,由于数值精度和算法的GPU和CPU之间的差异。从CPU和GPU的答案都是同样有效的浮点近似真实的分析结果,在计算过程中一直受到不同的舍入行为。在本例中,结果是整数轮
消除了舍入错误。
使用gpu的例子
运行示例MATLAB函数在gpu上
下面的示例通过gpuArray
对象支持MATLAB函万博1manbetx数,使这些功能在GPU上运行。
工具箱的名字 | 例子 |
---|---|
MATLAB | |
图像处理工具箱 |
|
深度学习工具箱 |
|
信号处理工具箱 |
|
音频工具箱 |
|
小波工具箱 |
|
其他的例子使用gpu
下面的例子使用其他自动GPU的支持。万博1manbetx
工具箱的名字 | 例子 |
---|---|
深度学习工具箱 |
|
通信工具箱 |
|
确认
岩浆是一个线性代数库例程,利用GPU加速。线性代数函数实现gpuArray
并行计算工具箱中的对象利用岩浆实现性能和精度高。
另请参阅
gpuArray
|gpuDevice
|gpuDeviceTable
|canUseGPU