A.gpuArray
在MATLAB中®表示存储在GPU上的阵列。有关支持GPU上阵列的函数的完整列表,请参阅金宝app在GPU上运行MATLAB函数.
可以通过将现有阵列从工作区传输到GPU来创建GPU阵列gpuArray
将阵列从MATLAB传输到GPU的函数:
N=6;M=magic(N);G=gpuArray(M);
您可以在一行代码中完成此操作:
G=gpuArray(magic(N));
G
现在是MATLABgpuArray
对象,表示存储在GPU上的幻方。提供给gpuArray
必须是数字(例如:仅有一个的
,双重的
,int8
)或符合逻辑的。(另见在GPU上处理复数.)
使用聚集
函数将数组从GPU检索到MATLAB工作区gpuArray
对象,并将其作为常规MATLAB数组传输到MATLAB工作区等质量
要验证返回的值是否正确,请执行以下操作:
G=gpuArray(一(100,‘uint32’)); D=聚集(G);OK=等质量(D,1),‘uint32’))
将数据收集回CPU的成本很高,并且通常不需要,除非您需要将结果用于不支持的函数金宝appgpuArray
.
在MATLAB中创建一个1000×1000的随机矩阵,然后将其传输到GPU:
X=兰特(1000);G=吉普瑞(X);
在MATLAB中创建一个双精度随机值矩阵,然后将矩阵作为单精度从MATLAB传输到GPU:
X=rand(1000);G=gpuArray(单个(X));
许多函数允许您通过指定“gpuArray”
键入作为输入参数。这些函数只需要数组大小和数据类信息,因此它们可以构建一个数组,而无需从MATLAB工作区传输任何元素。有关详细信息,请参阅gpuArray
.
创建类型为的1024 x 1024标识矩阵int32
在GPU上,键入
II=眼睛(1024,“int32”,“gpuArray”); 尺寸(二)
1024 1024
使用一个数值参数,可以创建一个二维矩阵。
使用数据类创建三维数组的步骤双重的
在GPU上,键入
G=一(100100,50,“gpuArray”);尺寸(G)
100 100 50
下垫式(G)
双重的
数据的默认类是双重的
,因此您不必指定它。
要在GPU上创建一个8192元素的零列向量,请键入
Z=零(8192,1,“gpuArray”); 尺寸(Z)
8192 1
对于列向量,第二个维度的大小为1。
gpuArray
特点有几个功能可用于检查一个系统的特性gpuArray
对象:
作用 | 描述 |
---|---|
下垫式 |
数组中基础数据的类 |
现存松浦 |
指示阵列是否存在于GPU上且可访问 |
以色列 |
指示阵列数据是否真实 |
下垫式 |
确定基础数组数据是否属于指定的类,例如 |
等质量 |
确定两个或多个数组是否相等 |
非数字字符 |
确定数组是否为数字数据类型 |
issparse |
确定数组是否稀疏 |
长 |
向量长度或最大数组维数 |
必须是下垫式 |
验证数组是否指定了基础类型,例如double |
数组的维数 |
数组中的维数 |
大小 |
数组维度的大小 |
例如,要检查gpuArray
对象G
,类型:
G=兰特(100,“gpuArray”); s=尺寸(G)
100 100
gpuArray
物体你可以节省gpuArray
变量作为MAT文件供以后使用。保存gpuArray
从MATLAB工作区中,数据保存为gpuArray
MAT文件中的变量。加载包含gpuArray
变量,数据作为一个变量加载到GPU上gpuArray
.
笔记
可以加载包含以下内容的MAT文件:gpuArray
当GPU不可用时,数据作为内存阵列。A.gpuArray
没有GPU加载是有限的,您不能将其用于计算gpuArray
在没有GPU的情况下加载,使用聚集
.
有关如何在MATLAB工作区中保存和加载变量的更多信息,请参见保存和加载工作区变量.