GPU Coder

 

GPU Coder

NVIDIA GPU のための CUDA コードを生成

 GPU Coder™ は、ディープラーニング、組み込みビジョン、および自律システムのための最適化された CUDA® コードを MATLAB® コードから生成します。生成されたコードは、cuDNN、cuSolver、および cuBLAS などの最適化された NVIDIA CUDA ライブラリを呼び出します。それらをソースコード、スタティック ライブラリ、またはダイナミック ライブラリとしてプロジェクトに統合し、NVIDIA Tesla® や NVIDIA Tegra® のような GPU でのプロトタイピングに使用することができます。生成された CUDA を MATLAB 内で使用して、MATLAB コードの大量の計算を必要とする部分を高速化できます。GPU Coder を使用すると、既存の CUDA コードを MATLAB アルゴリズムおよび生成されたコードに組み込むことができます。

Embedded Coder® と共に使用すると、GPU Coder ではソフトウェアインザループ (SIL) テストを実行して、生成したコードの数値的動作を検証できます。

高速かつ配布可能な CUDA コードの生成

最適化された CUDA コードを生成。コード配布は無償です。

アルゴリズムの配布が無償

デスクトップシステムやデータセンター、組み込みハードウェアなどの一般的な NVIDIA GPU で、生成したコードをコンパイルして実行します。生成したコードはロイヤリティフリーなので、商用アプリケーションで顧客に無料配布することができます。

Explore gallery (2 images)

サポートされているツールボックスと関数からコードを生成

MATLAB 言語の幅広い機能を使用して GPU Coder で生成されるコードにより、設計エンジニアは大規模システムのコンポーネントとして使用するアルゴリズムを開発できます。MATLAB および関連ツールボックスから 390 以上の演算子と関数を利用できます。

コード生成のための MATLAB 言語とツールボックスのサポート

レガシーコードの統合

レガシーコードの統合機能を使用して、信頼された、または高度に最適化された CUDA コードを MATLAB アルゴリズムに統合してテストし、同じ CUDA コードを生成されたコードからも呼び出します。

生成されたコードに既存の CUDA コードを統合

ディープラーニング ネットワークからの CUDA コードの生成

Deep Learning Toolbox を使用した学習済みディープラーニング ネットワークの展開

エンドツーエンドのディープラーニング アルゴリズムの展開

ResNet-50 や SegNet などのさまざまな学習済みディープラーニング ネットワークを Deep Learning Toolbox™ から NVIDIA GPU に展開します。前処理と後処理用のコードを学習済みディープラーニング ネットワークと共に生成して、完成したアルゴリズムを展開します。

SegNet などの学習済みディープラーニング ネットワークを展開

推論に最適化されたコードを生成

GPU Coder は特定のアルゴリズムでの推論を実施するために必要なコードのみを生成するので、他のディープラーニング ソリューションと比べて小さいフットプリントを持つコードを生成します。生成されたコードは、TensorRT™ や cuDNN などの最適化されたライブラリを呼び出します。

cuDNN を使用して Titan V GPU 上の VGG-16 で単一の画像を推論

TensorRT を使用してさらに最適化

ディープラーニングでの推論を高性能に最適化して実行する、NVIDIA TensorRT と統合するコードを生成します。標準の FP32 データタイプを超える性能改善のため、INT8 または FP16 データタイプを選択できます。

TensorRT と INT8 データタイプで実行速度を改善

生成されたコードを最適化

GPU Coder により生成されたコードに自動的に適用される最適化を利用。設計パターンを使用して性能をさらに改善

CPU-GPU間のメモリ転送の最小化と メモリの使用を最適化

GPU Coder は、CPU または GPU で実行する MATLAB コードのセグメントを自動的に解析、識別して分割します。また、CPU と GPU の間でのデータコピーの数を最小化します。他の可能性のあるボトルネックの特定にはプロファイリング ツールを使用します。

可能性のあるボトルネックを特定するプロファイルレポート

最適化されたライブラリの呼び出し

GPU Coder で生成されたコードは、TensorRT、cuDNN、cuSolver、cuFFT、cuBLAS、および Thrust などの最適化された NVIDIA CUDA ライブラリを呼び出します。MATLAB ツールボックスの関数より生成されたコードは、可能なときはいつでも最適化されたライブラリにマッピングされます。

生成されたコードに既存の CUDA コードを統合

設計パターンを使用してさらに高速化

ステンシル処理のような設計パターンは共有メモリを使用してメモリの帯域幅を改善します。これらは、畳み込みのような特定の関数を使用すると自動的に適用されます。また、特定のプラグマを使用して手動で呼び出すこともできます。

ステンシル処理設計パターン

ハードウェアでのプロトタイピング

アルゴリズムの CUDA コードへの自動変換によりハードウェアに迅速に展開

NVIDIA Jetson および DRIVE プラットフォームでのプロトタイピング

GPU Coder™ Support Package for NVIDIA® GPU を使用して、生成されたコードを NVIDIA Jetson™ と DRIVE™ プラットフォームで自動的にクロスコンパイルして展開します。

NVIDIA Jetson プラットフォームでのプロトタイピング

MATLAB と生成されたコードから周辺機器とセンサーにアクセス

MATLAB から NVIDIA ターゲットへリモートで通信して、Web カメラや他のサポートされる周辺機器から初期プロトタイピングのためデータを収集します。周辺機器のインターフェイス コードと共にアルゴリズムを構築してボードへ展開し、スタンドアロンの実行を可能にします。

MATLAB と生成されたコードからの周辺機器とセンサーへのアクセス

プロトタイピングから量産への移行

Embedded Coder® と共に GPU Coder を使用して、MATLAB コードと生成された CUDA を並べて対話的にトレースします。ソフトウェアインザループ (SIL) やプロセッサインザループ (PIL) でのテストを使用して、生成したコードをハードウェアで実行するときの数値的動作を検証できます。

GPU Coder と Embedded Coder を併用する対話型のトレーサビリティ レポート

アルゴリズムの高速化

CUDA コードを生成し、MATLAB 内で使用できるようにコンパイルします。

GPU を使用したアルゴリズムの高速化

生成した CUDA コードを MEX 関数として MATLAB コードから呼び出すと実行速度が向上しますが、実際のパフォーマンスは MATLAB コードの性質によって異なります。生成した MEX 関数をプロファイリングし、ボトルネックを特定して最適化の対象を絞り込みます。

최신 기능

YOLO V2 물체 탐지기

YOLO V2 물체 탐지기로부터 코드를 생성하여 cuDNN과 Tensor RT 타겟에 사용합니다.

TensorRT 지원

딥러닝 추론 애플리케이션의 FP16 최적화를 활용하는 코드를 생성합니다.

CUDA 최적화 전치 함수

공유 메모리를 이용하여 전치를 적용함으로써 성능 향상

제한 없는 변수 지원

최대 크기를 알 수 없고 컴파일 시간에 치역이 무제한인 변수에 관한 코드를 생성합니다.

pdist, pdist2, cwtfunctions에 관한 코드를 생성합니다.

추가적인 통계, 머신 러닝, 웨이블렛 함수에 관한 코드를 생성합니다.

이러한 기능과 해당 함수에 대한 세부 정보는 릴리스 정보를 참조하십시오.

無料評価版を入手する

30 日間の無料評価版はこちら

今すぐダウンロード

あなたは学生ですか?

MATLAB および Simulink 学生向けソフトウェアの入手

詳細を見る