一种GPUArray.
在matlab.®表示存储在GPU上的数组。有关支持GPU上的数组的完整功能列表,请参阅金宝app在GPU上运行matlab函数。
可以通过将现有数组从工作区传输到GPU来创建GPU阵列。使用GPUArray.
将数组从MATLAB传输到GPU的功能:
n = 6;m =魔术(n);g = gpuarray(m);
您可以在单行代码中完成此操作:
g = gpuarray(魔术(n));
G
现在是一个matlab gpuarray对象,代表了存储在GPU上的魔术广场。输入提供给GPUArray.
必须是数字(例如:单身的
那双倍的
那INT8.
等等)或逻辑。(也可以看看在GPU上使用复杂数字。)
使用收集
将来自GPU的阵列检索到MATLAB工作区的功能。这需要一个由GPUARRAY对象表示的GPU上的数组,并将其作为常规MATLAB阵列传输到MATLAB工作区。您可以使用是平等的
要验证您是否获得了正确的值:
g = gpuArray(那些(100,'uint32'));d =聚集(g);好的= isequal(d,一个(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对象的特征:
功能 | 描述 |
---|---|
底蕴蒂上 |
阵列中的底层数据类 |
存在的浦 |
指示是否在GPU上存在数组并可访问 |
是真实的 |
指示阵列数据是否真实 |
Isunderlyingtype. |
确定底层数组数据是否为指定类,例如 |
是平等的 |
确定两个或多个数组是否相等 |
isnumeric. |
确定数组是否是数字数据类型 |
颁奖物 |
确定数组是否稀疏 |
长度 |
矢量长度或最大的阵列尺寸 |
MustbeunderingType. |
验证该数组是否具有指定的底层类型,例如双倍 |
ndims. |
阵列中的尺寸数 |
尺寸 |
阵列尺寸的大小 |
例如,检查GPUArray对象的大小G
, 类型:
g =兰特(100,'gpuarray');s =尺寸(g)
100 100.
您可以将GPUARRAY变量保存为MAT文件以供以后使用。从MATLAB工作空间保存GPUARRAY时,数据将保存为MAT文件中的GPUARRAY变量。加载包含GPUARRAY变量的垫文件时,将数据作为GPUARRAY加载到GPU上。
笔记
您可以将包含GPUARRAY数据的MAT文件加载为内存阵列,当GPU不可用时。没有GPU的加载GPUArray是有限的,您无法将其用于计算。要使用没有GPU的GPUArray,请使用收集
。
有关如何在MATLAB工作区中保存和加载变量的更多信息,请参阅保存和加载工作区变量。