Main Content

MATLAB での GPU 計算

基本の GPU 計算を使用してコードを高速化する

コードを高速化するには、まずプロファイリングとベクトル化を試します。詳細については、パフォーマンスとメモリを参照してください。プロファイリングとベクトル化の後、コンピューターの GPU を使用した計算の高速化も試すことができます。使用するすべての関数が GPU でサポートされる場合は、単純に gpuArray を使用して入力データを GPU に転送し、gather を呼び出して出力データを GPU から取得できます。GPU コンピューティングを始めるには、GPU での MATLAB 関数の実行を参照してください。

深層学習向けに、MATLAB® は複数の GPU の自動並列処理をサポートしています。MATLAB による複数の GPU での深層学習 (Deep Learning Toolbox)を参照してください。

関数

すべて展開する

gpuArrayGPU に格納される配列
gather分散配列または gpuArray をローカル ワークスペースに転送
gpuDeviceGPU デバイスのクエリまたは選択
GPUDeviceManagerGPU デバイスのマネージャー
gpuDeviceCount存在する GPU デバイスの数
gpuDeviceTableGPU デバイスのプロパティの table
resetGPU デバイスをリセットし、そのメモリを消去する
wait (GPUDevice)GPU の計算が完了するまで待機
gputimeitGPU で関数を実行するために必要な時間
existsOnGPUGPU で gpuArray または CUDAKernel が使用可能かどうかを判別する
isgpuarray入力が gpuArray であるかどうかの判別
arrayfun関数を GPU 上の配列内の各要素に適用する
pagefun分散配列または GPU 配列の各ページに関数を適用
gpurngGPU 計算の乱数発生を制御
parallel.gpu.RandStreamGPU 上の乱数ストリーム
parallel.gpu.enableCUDAForwardCompatibilityGPU デバイスの上位互換性のクエリと設定

トピック

GPU での MATLAB コードの実行

GPU でのパフォーマンスの向上

詳細

  • パフォーマンス向上のためのコードのプロファイリング
    プロファイラーを使用してコード実行の所要時間を測定し、コードの中で最も時間を消費した行または実行されない行を特定する。
  • ベクトル化
    ループベースのスカラー指向コードを、MATLAB 行列とベクトル操作を使用するように変更する。
  • GPU 上の乱数ストリーム
    CPU 上のものと同じ乱数列を生成するように、GPU 上の乱数ストリームを制御します。
  • GPU での乱数の生成
    この例では、GPU でサポートされているいくつかの乱数発生器の間で切り替えを行う方法を示します。
  • GPU でのステンシル演算
    この例では Conway の "ライフ ゲーム" を使用し、GPU を使ってステンシル演算をどのように実行するのかを示します。