建立数组GPU
一个gpuArray
在MATLAB®代表了一个数组,存储在GPU内存。关于函数的更多信息在GPU支持数组,明白了万博1manbetx运行在GPU MATLAB函数。
从现有的数据创建GPU数组
把数组的GPU
您可以创建GPU阵列转移现有数组从主机内存到GPU。把一个数组从主机内存使用的GPUgpuArray
函数。
的gpuArray
例如,函数只支持数万博1manbetx字输入参数单
,双
,int8
,或逻辑
输入参数。的gpuArray
函数支持复数的输入万博1manbetx。有关更多信息,请参见在GPU处理复数。
N = 6;M =魔法(N);G = gpuArray (M);
获取数组的GPU
将数组从GPU到主机内存,使用收集
函数。这个函数返回一个常规的MATLAB数组存储在主机内存。验证收集
用函数返回正确的值isequal
。
传输数据的GPU可能代价高昂。调用收集
通常是没有必要的,除非你需要用你的结果与功能不支持吗万博1manbetxgpuArray
。
G = gpuArray(的(100“uint32”));D =收集(G);好吧= isequal (D(100年,“uint32”))
数组转移到GPU
创建一个1000 -,- 1000随机矩阵,然后将其传输到GPU。更多信息生成随机数的GPU,明白了在GPU随机数流。
X =兰德(1000);G = gpuArray (X);
更多信息在生成随机数的GPU,明白了在GPU随机数流。
传递数组指定的精度
创建一个矩阵随机双精度值和转移矩阵对GPU单精度格式。
X =兰德(1000);G = gpuArray(单(X));
直接创建GPU数组
你可以直接在GPU通过指定创建数组gpuArray
作为一些函数的输入参数类型。这些函数只需要数组大小和数据类信息,这样他们就可以构造一个数组,而无需从主机内存传输任何元素。有关更多信息,请参见gpuArray
。
您还可以创建数组在GPU镜像一个现有的数据类型gpuArray
使用“喜欢”
名称-值参数。您可以使用一些函数来构造数组具有相同数据类型数组作为原型p
通过提供像= p
作为输入参数。功能支持万博1manbetx“喜欢”
选项包括0
,的
,眼睛
,真正的
,假
,投
,兰德
,兰迪
,randn
。
在GPU上创建单位矩阵
创建一个1024 - 1024单位矩阵的类型int32
在GPU上。
2 =眼睛(1024,“int32”,“gpuArray”);大小(2)
1024 1024
在GPU上创建多维数组
创建一个三维数组的双
数据类型在GPU上。
50 G =(100100年,“gpuArray”);大小(G)
100 100 50
underlyingType (G)
双
在GPU上创建矢量
8192 -元素创建一个列向量GPU上的0。
Z = 0(8192年1“gpuArray”);大小(Z)
8192年1
基于原型在GPU创建数组的数组
创建一个100 - 100的数组的随机数具有相同数据类型数组作为原型。
G = gpuArray ((1 2 3));R =兰德(100年,像= G);
检查gpuArray
特征
使用这些函数来检查的特征gpuArray
对象。
函数 | 描述 |
---|---|
underlyingType |
类的底层数据数组 |
existsOnGPU |
指示如果阵列存在的GPU和访问 |
伊斯雷尔 |
指示如果数组的数据是真实的 |
isUnderlyingType |
确定底层数组数据指定的类,例如 |
isequal |
确定两个或多个数组是相等的 |
isnumeric |
确定是数值数据类型的数组 |
issparse |
判断一个数组是稀疏的 |
长度 |
最大长度的向量或数组维度 |
mustBeUnderlyingType |
验证数组指定的基本类型,如双 |
ndims |
数组的维数 |
大小 |
数组的大小尺寸 |
检查的大小gpuArray
对象G
。
G =兰德(100“gpuArray”);s =大小(G)
100 100
保存和加载gpuArray
对象
你可以节省gpuArray
变量作为垫文件。当你保存gpuArray
,MATLAB作为一个保存数据gpuArray
变量在垫子上文件。当你加载一个文件包含一个垫gpuArray
在GPU的变量,MATLAB装载数据gpuArray
。
请注意
你可以加载垫文件包含gpuArray
数据时内存中的数组GPU是不可用的。一个gpuArray
没有加载GPU是有限的,你不能用它来计算。使用一个gpuArray
使用加载没有GPU,检索内容收集
。
为更多的信息关于如何保存和加载变量在MATLAB工作区,明白了保存和加载工作空间变量。