一种GPUARRAY.
在matlab.®表示存储在GPU上的数组。有关支持GPU上的数组的完整功能列表,请参阅金宝app在GPU上运行matlab函数。
可以通过将现有数组从工作区传输到GPU来创建GPU阵列。使用GPUARRAY.
将来自MATLAB传输到GPU的函数:
n = 6;m =魔术(n);g = gpuarray(m);
您可以在单行代码中完成此操作:
g = gpuarray(魔术(n));
G
现在是一个matlabGPUARRAY.
代表存储在GPU上的魔术广场的对象。输入提供给GPUARRAY.
必须是数字(例如:单身的
那双倍的
那INT8.
等等)或逻辑。(也可以看看在GPU上使用复杂数字。)
使用收集
函数从GPU检索到MATLAB工作区的阵列。这需要一个由A表示的GPU上的数组GPUARRAY.
对象,并将其传输到MATLAB工作区作为常规MATLAB阵列。您可以使用是平等的
要验证您是否获得了正确的值:
g = gpuArray(那些(100,'uint32'));d =聚集(g);好的= isequal(d,di,100,'uint32'))
收集回CPU可能是昂贵的,并且通常没有必要,除非您需要使用不支持的函数使用结果金宝appGPUARRAY.
。
在MATLAB中创建1000×1000个随机矩阵,然后将其转移到GPU:
x = rand(1000);g = gpuarray(x);
在MATLAB中创建双精度随机值的矩阵,然后将矩阵从MATLAB转移到GPU:
x = rand(1000);g = gpuarray(单(x));
许多函数允许您通过指定来直接在GPU上构建数组'gpuarray'
输入作为输入参数。这些函数只需要数组大小和数据类信息,因此它们可以构建一个数组而无需传输来自MATLAB工作区的任何元素。有关更多信息,请参阅GPUARRAY.
。
创建一个1024-×1024型号类型INT32.
在GPU上,类型
II =眼睛(1024,'int32'那'gpuarray');尺寸(ii)
1024 1024.
使用一个数字参数,您创建了一个二维矩阵。
创建具有数据类的三维数组双倍的
在GPU上,类型
g = =(100,100,50,'gpuarray');尺寸(g)
100 100 50.
底层(G)
双倍的
数据的默认类是双倍的
,所以您不必指定它。
在GPU上创建8192元素列向量的零,类型
z =零(8192,1,'gpuarray');尺寸(z)
8192 1
对于列向量,第二维度的尺寸为1。
GPUARRAY.
特征有几种功能可用于检查a的特征GPUARRAY.
目的:
功能 | 描述 |
---|---|
下面的蒂沃斯 |
阵列中的底层数据类 |
存在于普通话 |
指示Array是否存在于GPU上并可访问 |
是真实的 |
指示阵列数据是否真实 |
IsunderLyingtype. |
确定底层数组数据是否为指定类,例如 |
是平等的 |
确定两个或多个数组是否相等 |
isnumeric. |
确定数组是否是数字数据类型 |
伊斯帕二 |
确定数组是否稀疏 |
长度 |
矢量长度或最大的阵列尺寸 |
Mustbeunderlyingtype. |
验证该数组是否指定了底层类型,例如双倍 |
ndims. |
数组中的尺寸数 |
尺寸 |
阵列尺寸的大小 |
例如,检查大小GPUARRAY.
目的G
, 类型:
g = rand(100,'gpuarray');s =尺寸(g)
100 100.
GPUARRAY.
对象你可以拯救GPUARRAY.
变量作为垫文件以供以后使用。当你保存一个GPUARRAY.
从MATLAB工作区,数据被保存为一个GPUARRAY.
垫文件中的变量。加载包含a的垫文件GPUARRAY.
变量,将数据加载到GPU上GPUARRAY.
。
笔记
您可以加载包含的MAT文件GPUARRAY.
当GPU不可用时,数据作为内存阵列中的数据。一种GPUARRAY.
没有GPU的加载是有限的,您无法使用它来计算。使用A.GPUARRAY.
没有GPU加载,使用收集
。
有关如何在MATLAB工作区中保存和加载变量的更多信息,请参阅保存和加载工作区变量。