このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
feval
GPU 上のカーネルを評価する
構文
feval(KERN, x1, ..., xn)
[y1, ..., ym] = feval(KERN, x1, ..., xn)
説明
feval(KERN, x1, ..., xn)
は、指定された引数 x1, ..., xn
を使用して CUDA カーネル KERN
を評価します。入力引数の数 n
は KERN
の NumRHSArguments
プロパティの値と一致しなければならず、また、入力引数の型は KERN
の ArgumentTypes
プロパティの記述と一致しなければなりません。入力データには通常の MATLAB データ、GPU 配列または両者の組み合わせを指定できます。
[y1, ..., ym] = feval(KERN, x1, ..., xn)
はカーネルの評価結果から複数の出力引数を返します。各出力引数は、CUDA カーネルの実行後における、CUDA カーネルの非定数ポインター入力の値に対応します。GPU でカーネルを実行する feval
の出力は、入力がすべてホスト メモリに保存されている場合でも、常に gpuArray
になります。出力引数の数 m
は、KERN
の MaxNumLHSArguments
プロパティの値を超えてはなりません。
例
CU ファイル内の CUDA カーネルに次のシグネチャがある場合を考えます。
void myKernel(const float * pIn, float * pInOut1, float * pInOut2)
この場合、MATLAB 内の対応するカーネル オブジェクトは以下のプロパティをもちます。
MaxNumLHSArguments: 2 NumRHSArguments: 3 ArgumentTypes: {'in single vector' ... 'inout single vector' 'inout single vector'}
このコードのカーネル (KERN
) に対し、feval
を次の構文で使用できます。
[y1, y2] = feval(KERN, x1, x2, x3)
3 つの入力引数 x1
、x2
および x3
は CUDA 関数に渡される 3 つの引数に対応します。出力引数 y1
および y2
は gpuArray
オブジェクトで、CUDA カーネルの実行後における pInOut1
と pInOut2
の値に対応します。
バージョン履歴
R2010b で導入