coder.gpu.kernel
for ループを GPU カーネルにマッピングするプラグマ
説明
coder.gpu.kernel() は、for ループの直前に配置しなければならないループ レベルのプラグマです。このプラグマはカーネルを生成し、ループ パラメーターから起動パラメーターを計算します。
coder.gpu.kernel プラグマは、すべての並列ループ解析のチェックをオーバーライドします。このオーバーライドにより、GPU Coder™ は、すべての反復が依存していないことを並列ループ解析が証明できない状況で、ループを並列化できるようになります。並列ループ解析のチェックにパスした関数内のループを並列化するには、coder.gpu.kernelfun の使用を検討してください。
メモ
リダクションを含む for ループの前に coder.gpu.kernel プラグマを使用することは推奨されません。
coder.gpu.kernel(B,T) は、B および T で指定した次元のカーネルを生成します。B[Bx,By,Bz] は、次元 x および y (z は使用しない) に沿ったグリッドのブロック数を定義する配列です。T[Tx,Ty,Tz] は、次元 x、y、および z に沿ったブロックのスレッド数を定義する配列です。
B および T の値が -1 の場合は、GPU Coder で自動的にグリッドとブロックの次元を推測しなければならないことを示します。coder.gpu.kernel プラグマは、無効なグリッドとブロックの次元に対してエラーを生成します。
coder.gpu.kernel(B,T,M,name) は、オプションの引数 M と name を指定します。M は、ストリーミング マルチプロセッサあたりの最小ブロック数を指定する正の整数です。M を増やすとカーネル内でのレジスタ使用量が減少し、カーネルの占有率が改善する可能性があります。M の値が -1 の場合は、GPU Coder で既定値の 1 を使用しなければならないことを示します。name は、生成されたカーネルの名前のカスタマイズを可能にする文字配列です。
この関数はコード生成関数です。MATLAB® では効果がありません。
例
バージョン履歴
R2017b で導入
参考
アプリ
関数
codegen|coder.gpu.kernelfun|stencilfun|coder.gpu.constantMemory|gpucoder.reduce|gpucoder.sort|coder.gpu.nokernel