阵列存储在GPU上
一个gpuArray
对象表示存储在GPU内存中的数组。MATLAB中的大量函数®并在其他工具箱中支持万博1manbetxgpuArray
对象,允许您在gpu上运行代码,而无需对代码进行最小的更改。一起工作gpuArray
对象,使用任何gpuArray
-enabled MATLAB函数,如fft
,mtimes
或mldivide
.找到…的完整列表gpuArray
-enabled函数在MATLAB和其他工具箱中,参见GPU-万博1manbetxsupported功能.有关更多信息,请参见在GPU上运行MATLAB函数.
如果需要从GPU中检索阵列,例如使用不支持的函数时万博1manbetxgpuArray
对象,使用收集
函数。
请注意
您可以加载MAT文件包含gpuArray
当GPU不可用时,将数据作为内存阵列。一个gpuArray
没有GPU加载的对象是有限的,你不能使用它进行计算。使用一个gpuArray
对象在没有GPU的情况下加载,使用收集
.
有几种方法可以检验a的特性gpuArray
对象。大多数函数的行为类似于同名的MATLAB函数。
isgpuarray |
确定输入是否为gpuArray |
existsOnGPU |
确定GPU上是否有gpuArray或CUDAKernel |
isUnderlyingType |
确定输入是否指定了基础数据类型 |
ndims |
数组维数 |
大小 |
数组大小 |
underlyingType |
决定数组行为的基础数据类型 |
一些MATLAB工具箱包括内置的函数gpuArray
万博1manbetx支持。查看这些工具箱中支持的所有功能的列表万博1manbetxgpuArray
对象,请使用下表中的链接。带有信息指标的列表中的功能,在GPU上运行时会有一定的限制或使用说明。您可以在功能参考页面的扩展功能部分查看使用说明和限制。有关个人资料的更新gpuArray
-enabled函数,请参阅发布说明。
工具箱的名字 | 函数列表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
-enabled函数,然后GPU数组过滤器不可用。
如果你需要更好的性能,或者某个功能在GPU上不可用,gpuArray
万博1manbetx支持以下选项:
预编译并运行纯元素代码gpuArray
对象,使用arrayfun
函数。
运行包含CUDA的c++代码®设备代码或库调用时,使用MEX函数。有关更多信息,请参见运行包含CUDA代码的mex函数.
要运行用CUDA c++编写的现有GPU内核,请使用MATLAB CUDAKernel接口。有关更多信息,请参见在GPU上运行CUDA或PTX代码.
要从MATLAB代码生成CUDA代码,使用GPU Coder™。有关更多信息,请参见开始使用GPU编码器(GPU编码器).
可以通过控制图形处理器上的随机数流gpurng
.
下列各项不能超过intmax(“int32”)
:
密集数组的元素数。
稀疏数组中非零元素的个数。
任意给定维度的大小。例如,0 (0,3 e9,“gpuArray”)
是不允许的。
您还可以创建gpuArray
使用MATLAB函数,通过指定gpuArray
输出。下表列出了可以创建的MATLAB函数gpuArray
直接对象。有关更多信息,请参见函数参考页面的Extended Capabilities一节。