このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
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ワークスペースで変数を保存し読み込む方法の詳細については,ワークスペース変数の保存と読み込みを参照してください。