阵列存储在GPU上
一个gpuArray
对象表示存储在GPU上的数组。一起工作gpuArray
对象,使用任何支持gpu的MATLAB®函数。你可以在GPU上执行的CUDA内核中直接使用数组进行计算。有关更多信息,请参见在GPU上运行MATLAB函数.
如果需要从GPU中检索阵列,例如使用不支持的函数时金宝appgpuArray
对象,使用收集
函数。
请注意
当GPU不可用时,可以将包含gpuArray数据的MAT文件加载为内存阵列。没有GPU加载的gpuArray是有限的,你不能使用它进行计算。要使用没有GPU加载的gpuArray,请使用收集
.
有几种方法可以检验a的特性gpuArray
对象。大多数函数的行为类似于同名的MATLAB函数。
existsOnGPU |
确定GPU上是否有gpuArray或CUDAKernel |
isequal |
确定数组平等 |
isnumeric |
确定输入是否为数字数组 |
issparse |
确定输入是否稀疏 |
isUnderlyingType |
确定输入是否指定了基础数据类型 |
长度 |
最大数组维数的长度 |
ndims |
数组维数 |
大小 |
数组大小 |
underlyingType |
决定数组行为的基础数据类型 |
其他的方法gpuArray
对象太多,无法在这里列出。最类似和行为相同的MATLAB函数相同的名字。看到在GPU上运行MATLAB函数.
如果你需要提高性能,或者某个功能对GPU不可用,gpuArray
金宝app支持以下选项:
预编译并运行纯元素代码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
直接对象。
|
|
|
|
|
|
|
gpuArray。 结肠 |
|
gpuArray。 freqspace |
|
gpuArray。 linspace |
|
gpuArray。 logspace |
gpuArray。 speye |
的函数的类特定帮助gpuArray
前缀,类型
帮助gpuArray。functionname
在哪里functionname
是方法的名称。例如,寻求帮助结肠
、类型
帮助gpuArray.colon