Main Content

GPU Coder の制限

一般的な制限

  • Linux® ではファイル名とパス名にスペースが含まれているとビルド エラーの原因になります。GPU Coder™ で使用されている GNU make ツールには、ファイル名にスペースが含まれている場合に既知の制限があります。一般的に、ファイル名、プロジェクト名、およびパス名におけるスペースの使用は避けることをお勧めします。

  • GPU Coder では、MATLAB® Coder™ の一部である整合性チェック、配列範囲チェック、および配列次元チェックが無効にされます。

  • コード生成時に coder.inline('never') オプションを使用すると、GPU Coder では coder.gpu.kernelfun プラグマを含むエントリポイント関数のみについてカーネルが作成され、そのエントリポイント関数内のサブ関数のカーネルは自動的に作成されません。そのため、coder.inline('never') オプションは使用しないことをお勧めします。

  • 可変サイズ配列を持つ構造体のカーネルの生成はサポートされていません。

  • 選択した CUDA® Compute Capability はハードウェアの Compute Capability と一致しなければなりません。

  • GPU ポインターで coder.ceval を使用する場合、[CPU][問題の確認] オプションはサポートされません。

  • GPU Coder は Simulink® ブロック用のコード生成はサポートしません。[ハードウェア実行] ペインの [ハードウェア ボード] オプションから [NVIDIA Jetson] ボードおよび [NVIDIA Drive] ボードを使用して NVIDIA® GPU をターゲットにすることはできません。

  • GPU Coder は SIMD コード生成をサポートしていません。[ターゲット ハードウェアの命令セット拡張を活用] パラメーターを [なし] に設定して、SIMD コード生成を無効にします。

関数の制限

  • MATLAB 組み込み関数およびツールボックス関数のサブセットについてのみ、CUDA コードを生成できます。

  • NVIDIA Tegra® デバイスをターゲットにする場合、GPU Coder では関数 bwdistquasi-euclidean メソッドと、3 より大きいイメージの次元がサポートされません。

  • 1 行 N 列のカーネルで imfilter が使用されていて、N が偶数の整数である場合、生成コードでは共有メモリが使用されません。imfilter が 3 次元イメージで使用されている場合、conv2 実装では共有メモリが使用されません。

  • 置換が行われている場合でも、GPU Coder のコード置換レポートが空になります。この問題は関数 atan で特定されています。

サポートされていない CUDA 機能

サポートされていない CUDA 機能の一覧は以下のとおりです。

  • テクスチャ メモリ

  • 非同期ストリーム

  • 動的なカーネル呼び出し — カーネル内からのカーネルの呼び出し

関連するトピック