Main Content

mxGPUArray

MATLAB gpuArray の型

説明

mxGPUArray は不透明な C 言語の型で、MEX 関数が MATLAB gpuArray の要素にアクセスできるようにします。mxGPU API を使用することで、MATLAB gpuArray に対して計算を実行して、gpuArray の結果を MATLAB に返すことができます。

すべての MEX 関数は mxArray として入力を受け取り、出力を渡します。MATLAB の gpuArray は、GPU に格納される配列を表す、特別な種類の mxArray です。MEX 関数では、mxGPUArray オブジェクトを使用して GPU に格納されている配列にアクセスしますが、これらのオブジェクトは MATLAB の gpuArray に対応します。

mxGPU API には mxGPUArray オブジェクトを操作する関数があります。これらの関数により、入力の mxArray から mxGPUArray を抽出する、出力の mxGPUArray を mxArray としてラップして MATLAB に返す、配列特性を決定する、基になる要素のポインターを取得することができます。計算を実行するには、作成する CUDA 関数か外部ライブラリで使用可能な CUDA 関数にポインターを渡します。

GPU MEX 関数の基本的な構造は、以下のとおりです。

  1. mxInitGPU を呼び出して、MathWorks GPU ライブラリを初期化します。

  2. どの mxArray 入力に GPU データが含まれているかを判別します。

  3. 入力 mxArray 引数から mxGPUArray オブジェクトを作成し、デバイス上の入力要素のポインターを取得します。

  4. 出力を格納する mxGPUArray オブジェクトを作成し、デバイス上の出力要素のポインターを取得します。

  5. CUDA 関数を呼び出し、デバイスのポインターに渡します。

  6. MATLAB に返すため、出力の mxGPUArraymxArray としてラップします。

  7. 作成した mxGPUArray オブジェクトを破棄します。

この型を含むヘッダー ファイルは mxGPUArray.h です。これをインクルードするには、次の行を使用します。

#include "gpu/mxGPUArray.h"

バージョン履歴

R2013a で導入