主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

GPUでの配列の確立

MATLAB®gpuArrayはGPUに格納される配列を表します。GPU 上の配列をサポートする関数の詳細なリストについては、GPUでのMATLAB関数の実行を参照してください。

既存のデータからのGPU配列の作成

GPUへの配列送信

GPU配列は,ワークスペースから既存の配列をGPUに転送することによって作成できます。MATLABからGPUに配列を転送するには,関数gpuArrayを使用します。

N = 6;M =魔法(N);G = gpuArray (M);

これは次の1行のコードで実現できます。

G = gpuArray(魔法(N));

Gは,GPUに格納されている魔方陣を表すMATLAB gpuArrayオブジェクトとなります。gpuArrayへの入力は,数値(例:int8など)または論理値でなければなりません(GPU上での複素数の処理も参照)。

GPUからの配列の取得

GPUからMATLABワークスペースに配列を取得するには,関数收集を使用します。これにより,gpuArrayオブジェクトで表されるGPU上の配列を取得し,それを通常のMATLAB配列としてMATLABワークスペースに転送します。isequalを使用すると,正しい値を取得したことを確認できます。

G = gpuArray(的(100“uint32”));D =收集(G);好吧= isequal (D(100年,“uint32”))

CPUへの収集は高コストの可能性があるため,gpuArrayをサポートしていない関数で結果を処理する必要がある場合を除いて,一般的に収集は不要です。

例:GPUへの配列の転送

MATLABで1000行1000列の乱数行列を作成し,GPUに転送します。

X =兰德(1000);G = gpuArray (X);

例:指定した精度での配列の転送

MATLABで倍精度の乱数値からなる行列を作成し,単精度としてMATLABからGPUに転送します。

X =兰德(1000);G = gpuArray(单(X));

GPU配列の直接作成

いくつかの関数では,入力引数として“gpuArray”タイプを指定することで,直接GPU上に配列を作成できます。これらの関数では配列のサイズとデータクラスの情報のみが必要とされ,MATLABワークスペースから要素を転送することなく配列を作成できます。詳細については,gpuArrayを参照してください。

例:GPUでの単位行列の作成

GPUにint32型の1024行1024列の単位行列を作成するには,以下を入力します。

2 =眼睛(1024,“int32”“gpuArray”);大小(2)
1024 1024

1つの数値引数により,2次元行列が作成されます。

例:GPUでの多次元配列の作成

GPUにデータクラスの1からなる3次元配列を作成するには,以下を入力します。

50 G =(100100年,“gpuArray”);大小(G)
100 100 50
underlyingType (G)

データの既定のクラスはであるため,指定する必要はありません。

例:GPUでのベクトルの作成

GPUにゼロからなる8192成分の列ベクトルを作成するには,以下を入力します。

Z = 0(8192年1“gpuArray”);大小(Z)
8192年1

列ベクトルでは2番目の次元のサイズは1です。

gpuArrayの特性の調査

gpuArrayオブジェクトの特性を調べるいくつかの関数があります。

関数 説明
underlyingType 配列の基になるデータのクラス
existsOnGPU 配列がGPUに存在してアクセス可能かどうかの指標
伊斯雷尔 配列データが実数かどうかの指標
isUnderlyingType

基となる配列のデータが,などの指定されたクラスかどうかを判別

isequal 2つ以上の配列が等しいかどうかを判別
isnumeric 配列が数値データ型であるかどうかを判別
issparse 配列がスパースであるかどうかを判別
长度 ベクトルの長さまたは最大の配列次元
mustBeUnderlyingType 配列に双などの基となる型が指定されているかどうかを検証
ndims 配列における次元の数
大小 配列次元のサイズ

たとえば,gpuArrayのGオブジェクトのサイズを調べるには,以下を入力します。

G =兰德(100“gpuArray”);s =大小(G)
100 100

gpuArrayの保存と読み込み

gpuArray変数を後で使用できるように垫ファイルとして保存することができます。gpuArrayを MATLAB ワークスペースから保存する場合、データは MAT ファイルに gpuArray 変数として保存されます。gpuArray 変数が含まれる MAT ファイルを読み込むと、データは gpuArray として GPU に読み込まれます。

メモ

GPUを使用できない場合は,gpuArrayデータが含まれる垫ファイルをメモリ内配列として読み込めます。GPUがない状態で読み込まれたgpuArrayには制限があり,計算には使用できません。GPUがない状態で読み込まれたgpuArrayを使用するには,收集を使用して内容を取得します。

MATLABワークスペースで変数を保存し読み込む方法の詳細については,ワークスペース変数の保存と読み込みを参照してください。

参考

関連するトピック