GPU コンピューティング

MATLAB では NVIDIA® GPU を使用することにより、AI やディープラーニング、その他計算量が多い解析を CUDA® プログラマーでなくとも高速化できます。MATLAB と Parallel Computing Toolbox を使用すると、以下を行うことができます。

  • MATLAB から直接 NVIDIA GPU を使用(1000以上の組み込み関数が対応)。
  • MATLAB ワーカーおよび MATLAB Parallel Server を使用して、デスクトップ、コンピューティング クラスター、クラウド上の複数の GPU へアクセス。
  • GPU Coder を使用して CUDA コードを MATLAB から直接生成し、データセンター、クラウド、組み込みデバイスへ実装。
  • GPU Coder を使用して MATLAB から NVIDIA TensorRT™ コードを生成し、低遅延・高スループットの推論を実現。
  • MATLAB AI アプリケーションを NVIDIA 対応のデータセンターに展開し、MATLAB Production Server を使用するエンタープライズ システムと統合。

レガシコードでは 1 回の風洞テストの解析に最大 40 分かかっていましたが、MATLAB と GPU を使用することで、演算にかかる時間が 1 分未満に短縮されました。MATLAB アルゴリズムを GPU 上で機能させるために要した時間は 30 分で、低レベルの CUDA プログラミングも必要ありませんでした。

MATLAB を使用したディープラーニングモデルの開発、拡張、および展開

MATLAB により、ユーザーはディープラーニングモデルの開発から展開まで、エンドツーエンドのワークフローを実現することができます。Deep Learning Toolbox を使用してディープラーニングモデルの開発や学習を行い、その後 Parallel Computing Toolbox と MATLAB Parallel Server を使用してクラウドやクラスターリソース上に学習環境を拡張できます。また、GPU Coder を使用することでデータセンターや組み込みデバイスへ展開できます。

GPUを使用したディープラーニングの開発と計算量が多い解析の実行

MATLAB は AI とディープラーニング開発向けのエンドツーエンドのワークフロー プラットフォームです。MATLAB は学習データセットのインポートや可視化、デバッグ、CNN 学習の拡張、および展開を行うためのツールとアプリを提供します。

たった 1 行のコードを追加するだけで、デスクトップ、クラウド、クラスター上の計算リソースや GPU リソースへスケールアップできます。

Training Progress

タイトル

gpuBench を使用した CPU と GPU ハードウェアのテスト。

最小限のコード変更で GPU により MATLAB を拡張

1000 以上の CUDA 対応 MATLAB 関数を使用して NVIDIA GPU 上で MATLAB コードを実行できます。また、ツールボックスの GPU 対応関数をディープラーニング、機械学習、コンピュータビジョン、信号処理などのアプリケーションに使用できます。Parallel Computing Toolbox では gpuArray が利用できます。gpuArray は特殊な配列型で、MATLAB から直接 CUDA 対応の NVIDIA GPU 上で処理を実行可能とします。ユーザーは低水準のGPU演算ライブラリについて学習する必要はありません。

エンジニアは追加コードを記述することなく GPU リソースを使用できるため、パフォーマンスの調整よりも自身のアプリケーションに注力できます。

parfor や spmd などの並列言語構造を使用すると、複数の GPU 上で計算できるようになります。学習オプションを変更するだけで複数の GPU 上のモデルに対する学習を実行できます。

また、MATLAB では、新たに C プログラミングを行うことなく、既存の CUDA カーネルを MATLAB アプリケーションに統合できます。


MATLAB から生成された CUDA コードの展開 – TensorRTを使用した推論

GPU Coder を使用して、ディープラーニング、組み込みビジョン、自律システムのための MATLAB コードから最適化された CUDA コードを生成します。生成されたコードは、TensorRT、cuDNN、cuBLAS などの最適化された NVIDIA CUDA ライブラリを自動で呼び出し、 NVIDIA GPU 上で低遅延・高スループットで実行されます。生成されたコードをソースコード、スタティック ライブラリまたはダイナミック ライブラリとしてプロジェクトに統合し、NVIDIA Volta®、NVIDIA Tesla®、NVIDIA Jetson®、および NVIDIA DRIVE などの GPU で実行されるように展開します。