MATLAB での GPU 計算
基本の GPU 計算を使用してコードを高速化する
コードを高速化するには、まずプロファイリングとベクトル化を試します。詳細については、パフォーマンスとメモリを参照してください。プロファイリングとベクトル化の後、コンピューターの GPU を使用した計算の高速化も試すことができます。使用するすべての関数が GPU でサポートされる場合は、単純に gpuArray
を使用して入力データを GPU に転送し、gather
を呼び出して出力データを GPU から取得できます。GPU コンピューティングを始めるには、GPU での MATLAB 関数の実行を参照してください。
深層学習向けに、MATLAB® は複数の GPU の自動並列処理をサポートしています。MATLAB による複数の GPU での深層学習 (Deep Learning Toolbox)を参照してください。
関数
トピック
GPU での MATLAB コードの実行
- GPU での MATLAB 関数の実行
gpuArray
引数を指定して関数を自動的に GPU で実行する。 - GPU デバイスの識別と選択
この例では、gpuDevice
を使用して、使用するデバイスの識別と選択を行う方法を説明します。 - GPU 計算の要件
NVIDIA® GPU アーキテクチャのサポート。 - GPU での配列の確立
gpuArray
オブジェクトを使用して、GPU 上でデータを保存し、GPU 上で計算を実行する。 - 複数の GPU での MATLAB 関数の実行
この例では、MATLAB® コードを複数の GPU で並列に実行する方法を説明します。 - クラウド上の GPU を使用した MATLAB の実行
クラウド上の強力な GPU を利用してコードを高速化する。 - 自動マルチ GPU のサポートを使用したネットワークの学習 (Deep Learning Toolbox)
この例では、自動並列サポートを使用した深層学習のために、ローカル マシンで複数の GPU を使用する方法を説明します。 - GPU 上でのスパース配列の処理
GPU 上でのスパース配列の処理条件について学習する。 - GPU 上での複素数の処理
GPU 上での複素数値を返す可能性がある関数の適用条件について学習する。
GPU でのパフォーマンスの向上
- GPU パフォーマンスの測定と向上
GPU でのコードの実行時間を測定し、パフォーマンスを改善するためのオプションを検討する。 - GPU とベクトル化された計算を使用したパフォーマンスの改善
この例では、CPU の代わりに GPU で関数を実行し、計算をベクトル化することによってパフォーマンスを向上させる方法を説明します。 - arrayfun を使用した、要素単位の MATLAB 関数の GPU におけるパフォーマンス改善
この例では、GPU でarrayfun
を使用して MATLAB® 関数を実行することでコードのパフォーマンスを改善する方法を示します。 - pagefun による GPU 上の小さな行列問題のパフォーマンス改善
この例では、pagefun
を使用して、多次元配列に配置された複数の行列に適用される独立した演算のパフォーマンスを改善する方法を説明します。 - GPU における A\b のベンチマーク
この例では、GPU における線形計算の求解のベンチマークを実行する方法について考えます。
詳細
- パフォーマンス向上のためのコードのプロファイリング
プロファイラーを使用してコード実行の所要時間を測定し、コードの中で最も時間を消費した行または実行されない行を特定する。 - ベクトル化
ループベースのスカラー指向コードを、MATLAB 行列とベクトル操作を使用するように変更する。 - GPU 上の乱数ストリーム
CPU 上のものと同じ乱数列を生成するように、GPU 上の乱数ストリームを制御します。 - GPU での乱数の生成
この例では、GPU でサポートされているいくつかの乱数発生器の間で切り替えを行う方法を示します。 - GPU でのステンシル演算
この例では Conway の "ライフ ゲーム" を使用し、GPU を使ってステンシル演算をどのように実行するのかを示します。 - GPU 対応関数を使用したマンデルブロ集合の計算
この例では、GPU 対応の MATLAB® 関数を使用して、有名な数学的構成であるマンデルブロ集合を計算する方法を説明します。