メインコンテンツ

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

feval

R2026a

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

説明

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

入力引数

すべて折りたたむ

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

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

出力引数

すべて折りたたむ

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

バージョン履歴

R2010b で導入