主要内容

在GPU上建立阵列

A.gpuArray在MATLAB中®表示存储在GPU上的阵列。有关支持GPU上阵列的函数的完整列表,请参阅金宝app在GPU上运行MATLAB函数.

从现有数据创建GPU阵列

将阵列发送到GPU

可以通过将现有阵列从工作区传输到GPU来创建GPU阵列gpuArray将阵列从MATLAB传输到GPU的函数:

N=6;M=magic(N);G=gpuArray(M);

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

G=gpuArray(magic(N));

G现在是MATLABgpuArray对象,表示存储在GPU上的幻方。提供给gpuArray必须是数字(例如:仅有一个的,双重的,int8)或符合逻辑的。(另见在GPU上处理复数.)

从GPU检索阵列

使用聚集函数将数组从GPU检索到MATLAB工作区gpuArray对象,并将其作为常规MATLAB数组传输到MATLAB工作区等质量要验证返回的值是否正确,请执行以下操作:

G=gpuArray(一(100,‘uint32’)); D=聚集(G);OK=等质量(D,1),‘uint32’))

将数据收集回CPU的成本很高,并且通常不需要,除非您需要将结果用于不支持的函数金宝appgpuArray.

示例:将阵列传输到GPU

在MATLAB中创建一个1000×1000的随机矩阵,然后将其传输到GPU:

X=兰特(1000);G=吉普瑞(X);

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

在MATLAB中创建一个双精度随机值矩阵,然后将矩阵作为单精度从MATLAB传输到GPU:

X=rand(1000);G=gpuArray(单个(X));

直接创建GPU阵列

许多函数允许您通过指定“gpuArray”键入作为输入参数。这些函数只需要数组大小和数据类信息,因此它们可以构建一个数组,而无需从MATLAB工作区传输任何元素。有关详细信息,请参阅gpuArray.

示例:在GPU上构造一个单位矩阵

创建类型为的1024 x 1024标识矩阵int32在GPU上,键入

II=眼睛(1024,“int32”,“gpuArray”); 尺寸(二)
1024 1024

使用一个数值参数,可以创建一个二维矩阵。

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

使用数据类创建三维数组的步骤双重的在GPU上,键入

G=一(100100,50,“gpuArray”);尺寸(G)
100 100 50
下垫式(G)
双重的

数据的默认类是双重的,因此您不必指定它。

示例:在GPU上构建向量

要在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工作区中,数据保存为gpuArrayMAT文件中的变量。加载包含gpuArray变量,数据作为一个变量加载到GPU上gpuArray.

笔记

可以加载包含以下内容的MAT文件:gpuArray当GPU不可用时,数据作为内存阵列。A.gpuArray没有GPU加载是有限的,您不能将其用于计算gpuArray在没有GPU的情况下加载,使用聚集.

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

另见

相关话题