GPU に格納される配列
gpuArray
オブジェクトは GPU に格納される配列を表します。gpuArray
オブジェクトを扱うには、GPU 対応の MATLAB® 関数を使用します。この配列は直接計算したり、GPU で実行される CUDA カーネルで使用したりできます。詳細については、GPU での MATLAB 関数の実行を参照してください。
GPU から配列を取得する場合は (gpuArray
オブジェクトをサポートしていない関数を使用する場合など)、関数 gather
を使用します。
メモ
GPU を使用できない場合は、gpuArray データが含まれる MAT ファイルをメモリ内配列として読み込めます。GPU がない状態で読み込まれた gpuArray には制限があり、計算には使用できません。GPU がない状態で読み込まれた gpuArray を使用するには、gather
を使用して内容を取得します。
gpuArray
を使用して、MATLAB ワークスペース内の配列を gpuArray
オブジェクトに変換します。MATLAB 関数の多くは、gpuArray
オブジェクトを直接作成することもできます。詳細については、GPU での配列の確立を参照してください。
gpuArray
オブジェクトの特性を調べるためのメソッドがいくつかあります。そのほとんどは同名の MATLAB 関数と同様に動作します。
existsOnGPU | GPU で gpuArray または CUDAKernel が使用可能かどうかを判別する |
isequal | 配列の等価性を判別 |
isnumeric | 入力が数値配列かどうかを判別 |
issparse | 入力がスパースかどうかを判別 |
isUnderlyingType | Determine whether input has specified underlying data type |
length | 最大の配列の次元の長さ |
ndims | 配列の次元数 |
size | 配列サイズ |
underlyingType | Type of underlying data determining array behavior |
gpuArray
オブジェクト用のその他のメソッドは多すぎるため、ここには記載しません。その多くは、同名の MATLAB 関数に似ており、動作も同じです。GPU での MATLAB 関数の実行を参照してください。
パフォーマンスを向上させる必要がある場合、または関数が GPU で使用できない場合、gpuArray
は次のオプションをサポートしています。
gpuArray
オブジェクトに関する純粋に要素単位のコードをプリコンパイルして実行するには、関数 arrayfun
を使用します。
CUDA® デバイス コードまたはライブラリ呼び出しを含む C++ コードを実行するには、MEX 関数を使用します。詳細については、CUDA コードを含む MEX 関数の実行を参照してください。
CUDA C++ で記述された既存の GPU カーネルを実行するには、MATLAB CUDAKernel インターフェイスを使用します。詳細については、GPU での CUDA または PTX コードの実行を参照してください。
MATLAB コードから CUDA コードを生成するには、GPU Coder™ を使用します。詳細については、GPU Coder 入門 (GPU Coder)を参照してください。
gpurng
を使用して、GPU での乱数ストリームを制御できます。
次のいずれも intmax('int32')
を超えてはなりません。
密配列の要素数。
スパース配列の非ゼロ要素数。
指定された次元のサイズ。たとえば、zeros(0,3e9,'gpuArray')
は許可されません。
一部の MATLAB 関数では、gpuArray
出力を指定することにより、gpuArray
オブジェクトを作成することもできます。次の表は、gpuArray
オブジェクトの直接作成に使用できる MATLAB 関数の一覧です。
|
|
|
|
|
|
| gpuArray. colon |
| gpuArray. freqspace |
| gpuArray. linspace |
| gpuArray. logspace |
gpuArray. speye |
接頭辞 gpuArray
の付く関数について、クラス固有のヘルプを表示するには次を入力します。
help gpuArray.functionname
ここで、functionname
はメソッドの名前です。たとえば、colon
のヘルプを表示するには、次のように入力します。
help gpuArray.colon