Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

feval

GPU 上のカーネルを評価する

構文

feval(KERN, x1, ..., xn)
[y1, ..., ym] = feval(KERN, x1, ..., xn)

説明

feval(KERN, x1, ..., xn) は、指定された引数 x1, ..., xn を使用して CUDA カーネル KERN を評価します。入力引数の数 nKERNNumRHSArguments プロパティの値と一致しなければならず、また、入力引数の型は KERNArgumentTypes プロパティの記述と一致しなければなりません。入力データには通常の MATLAB データ、GPU 配列または両者の組み合わせを指定できます。

[y1, ..., ym] = feval(KERN, x1, ..., xn) はカーネルの評価結果から複数の出力引数を返します。各出力引数は、CUDA カーネルの実行後における、CUDA カーネルの非定数ポインター入力の値に対応します。GPU でカーネルを実行する feval の出力は、入力がすべてホスト メモリに保存されている場合でも、常に gpuArray になります。出力引数の数 m は、KERNMaxNumLHSArguments プロパティの値を超えてはなりません。

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 つの入力引数 x1x2 および x3 は CUDA 関数に渡される 3 つの引数に対応します。出力引数 y1 および y2gpuArray オブジェクトで、CUDA カーネルの実行後における pInOut1pInOut2 の値に対応します。

バージョン履歴

R2010b で導入