主要内容

在GPU上建立阵列

一种GPUARRAY.在matlab.®表示存储在GPU上的数组。有关支持GPU上的数组的完整功能列表,请参阅金宝app在GPU上运行matlab函数

从现有数据创建GPU阵列

将数组发送到GPU

可以通过将现有数组从工作区传输到GPU来创建GPU阵列。使用GPUARRAY.将来自MATLAB传输到GPU的函数:

n = 6;m =魔术(n);g = gpuarray(m);

您可以在单行代码中完成此操作:

g = gpuarray(魔术(n));

G现在是一个matlabGPUARRAY.代表存储在GPU上的魔术广场的对象。输入提供给GPUARRAY.必须是数字(例如:单身的双倍的INT8.等等)或逻辑。(也可以看看在GPU上使用复杂数字。)

从GPU检索阵列

使用收集函数从GPU检索到MATLAB工作区的阵列。这需要一个由A表示的GPU上的数组GPUARRAY.对象,并将其传输到MATLAB工作区作为常规MATLAB阵列。您可以使用是平等的要验证您是否获得了正确的值:

g = gpuArray(那些(100,'uint32'));d =聚集(g);好的= isequal(d,di,100,'uint32'))

收集回CPU可能是昂贵的,并且通常没有必要,除非您需要使用不支持的函数使用结果金宝appGPUARRAY.

示例:将数组传输到GPU

在MATLAB中创建1000×1000个随机矩阵,然后将其转移到GPU:

x = rand(1000);g = gpuarray(x);

示例:传输指定精度的数组

在MATLAB中创建双精度随机值的矩阵,然后将矩阵从MATLAB转移到GPU:

x = rand(1000);g = gpuarray(单(x));

直接创建GPU阵列

许多函数允许您通过指定来直接在GPU上构建数组'gpuarray'输入作为输入参数。这些函数只需要数组大小和数据类信息,因此它们可以构建一个数组而无需传输来自MATLAB工作区的任何元素。有关更多信息,请参阅GPUARRAY.

示例:在GPU上构建身份矩阵

创建一个1024-×1024型号类型INT32.在GPU上,类型

II =眼睛(1024,'int32''gpuarray');尺寸(ii)
1024 1024.

使用一个数字参数,您创建了一个二维矩阵。

示例:在GPU上构建多维数组

创建具有数据类的三维数组双倍的在GPU上,类型

g = =(100,100,50,'gpuarray');尺寸(g)
100 100 50.
底层(G)
双倍的

数据的默认类是双倍的,所以您不必指定它。

示例:构建GPU上的向量

在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工作区中保存和加载变量的更多信息,请参阅保存和加载工作区变量

也可以看看

相关话题