主要内容

在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现在是一个matlab gpuarray对象,代表了存储在GPU上的魔术广场。输入提供给GPUArray.必须是数字(例如:单身的双倍的INT8.等等)或逻辑。(也可以看看在GPU上使用复杂数字。)

从GPU检索阵列

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

g = gpuArray(那些(100,'uint32'));d =聚集(g);好的= isequal(d,一个(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特征

有几种功能可用于检查GPUArray对象的特征:

功能 描述
底蕴蒂上 阵列中的底层数据类
存在的浦 指示是否在GPU上存在数组并可访问
是真实的 指示阵列数据是否真实
Isunderlyingtype.

确定底层数组数据是否为指定类,例如双倍的

是平等的 确定两个或多个数组是否相等
isnumeric. 确定数组是否是数字数据类型
颁奖物 确定数组是否稀疏
长度 矢量长度或最大的阵列尺寸
MustbeunderingType. 验证该数组是否具有指定的底层类型,例如双倍
ndims. 阵列中的尺寸数
尺寸 阵列尺寸的大小

例如,检查GPUArray对象的大小G, 类型:

g =兰特(100,'gpuarray');s =尺寸(g)
100 100.

保存并加载GPUArrays

您可以将GPUARRAY变量保存为MAT文件以供以后使用。从MATLAB工作空间保存GPUARRAY时,数据将保存为MAT文件中的GPUARRAY变量。加载包含GPUARRAY变量的垫文件时,将数据作为GPUARRAY加载到GPU上。

笔记

您可以将包含GPUARRAY数据的MAT文件加载为内存阵列,当GPU不可用时。没有GPU的加载GPUArray是有限的,您无法将其用于计算。要使用没有GPU的GPUArray,请使用收集

有关如何在MATLAB工作区中保存和加载变量的更多信息,请参阅保存和加载工作区变量

也可以看看

相关话题