メインコンテンツ

feval

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

説明

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 の値に対応します。

入力引数

すべて折りたたむ

CUDA カーネル。parallel.gpu.CUDAKernel オブジェクトとして指定します。

カーネルの評価に使用する引数。MATLAB データ、gpuArray オブジェクトまたは両者の組み合わせとして指定します。これらの引数の数は kern 引数の NumRHSArguments プロパティの値と一致しなければならず、また、引数の型は kern 引数の ArgumentTypes プロパティの記述と一致しなければなりません。

出力引数

すべて折りたたむ

CUDA カーネルの評価結果からの出力。gpuArray オブジェクトとして返されます。これらの引数の数は、kern 入力引数の MaxNumLHSArguments プロパティの値を超えてはなりません。

バージョン履歴

R2010b で導入