主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

並列およびクラウドでの深層学習のスケールアップ

複数のGPUでの深層学習

ニューラルネットワークは本質的に並列アルゴリズムです。この並列性の利点を活かし,并行计算工具箱™を使用して,学習をマルチコアCPU、グラフィックス処理装置(GPU),および複数のCPUとGPUを備えたコンピューターのクラスターに分散させることができます。

深いネットワークの学習は計算量が非常に多くなります。通常は,高性能のGPUを使用して学習時間を短縮できます。適切なGPUがない場合は,代わりに1つ以上のCPUコアで学習させるか,クラウドのGPUをレンタルすることができます。畳み込みニューラルネットワークの学習は,1つのGPUまたはCPUで複数のGPUまたはCPUコアで,あるいはクラスターで並列に行えます。GPUまたは並列オプションを使用するには并行计算工具箱が必要です。

ヒント

GPUは自動的にサポートされます。既定では,関数trainNetworkはGPUを利用できる場合は,GPUを使用します。

複数のGPUがあるマシンにアクセスできる場合は,単に学習オプション“ExecutionEnvironment”、“multi-gpu”を指定します。

より多くのリソースを使用する必要がある場合は,深層学習における学習をクラウドにスケールアップできます。

深層学習の組み込みの並列サポート

学習リソース 設定 詳細

ローカルマシン上の1つのGPU

自動。既定では,関数trainNetworkはGPUを利用できる場合は,GPUを使用します。

“ExecutionEnvironment”

分類用のシンプルな深層学習ネットワークの作成

ローカルマシン上の複数のGPU

関数trainingOptions“ExecutionEnvironment”、“multi-gpu”を指定します。

“ExecutionEnvironment”

学習に使用する特定のGPUの選択

ローカルマシン上の複数のCPUコア

“ExecutionEnvironment”、“平行”を指定します。

既定の設定では,“平行”はローカルクラスタープロファイルを使用します。一般的にCPUはGPUよりも学習がはるかに遅いため,GPUがない場合のみCPUを使用してください。

“ExecutionEnvironment”

クラスターまたはクラウド

既定のクラスターを設定した後,関数trainingOptions“ExecutionEnvironment”、“平行”を指定します。

学習はクラスター上で実行され,組み込みの進行状況プロットがローカルのMATLAB®に返されます。

自動並列サポートを使用したクラウドでのネットワークの学習

複数の深いネットワークの並列学習

学習シナリオ 推奨 詳細
ローカルマシンまたはクラウドで対話的に行う parforループを使用して複数のネットワークに学習させ,OutputFcnを使用して結果をプロットします。既定はローカルでの実行,そうしない場合は別のクラスタープロファイルを選択します。 parforを使用した複数の深層学習ネットワークの学習
ローカルマシンのバックグラウンドで,またはクラウドで行う parfevalを使用してローカルのMATLABをブロックすることなく学習させ,OutputFcnを使用して結果をプロットします。既定はローカルでの実行,そうしない場合は別のクラスタープロファイルを選択します。

深層学習ネットワークの並列学習

parfevalを使用した複数の深層学習ネットワークの学習

クラスター上で行い,ローカルマシンはオフにする 関数批处理を使用して学習コードをクラスターに送信します。MATLABを閉じて、後で結果を取得できます。 深層学習バッチジョブのクラスターへの送信

クラウドでの深層学習

深層学習における学習に数時間または数日かかる場合,クラウドの高性能のGPUをレンタルして学習を高速化できます。クラウドでの作業にはいくつかの初期設定が必要ですが,その初期設定以降は,クラウドの使用により学習時間の短縮や,より多くのネットワークの同時学習が可能になります。クラウドでの深層学習を試すために,例の手順に従ってアカウントを設定して,データをクラウドにコピーし,クラスターを作成できます。この初期設定の後,学習コードは,クラウド実行用に極めて僅かな変更を加えるだけで実行できます。既定のクラスターを設定した後,学習オプション“ExecutionEnvironment”、“平行”を指定するだけで,複数のGPUのクラウドクラスターでネットワークに学習させることができます。

クラウドでの深層学習の構成 メモ: 詳細
MathWorksと亚马逊的云计算中心アカウントの設定 1回だけの設定。 云中心入门
クラスターの作成 云中心を使用して,亚马逊クラウドのクラスターを設定し実行します。深層学習の場合,P2またはG3インスタンスなど,GPUを使用するマシンタイプを選択します。 创建云集群
クラウドへのデータのアップロード データをクラウドで処理するために,Amazon S3にアップロードします。データストアを使用して,コードを変更せずにデスクトップクライアントのMATLABまたはクラスターワーカーからS3のデータにアクセスします。 クラウドへの深層学習データのアップロード

高速マルチノードGPU通信の高度なサポート

Infinibandなどのマシン間の高速相互接続またはGPUDirect RDMAなどの異なるマシン上のGPU間の高速相互接続を使用するLinux計算クラスターを使用している場合,MATLABの高速マルチノードサポートを活用できる場合があります。環境変数PARALLEL_SERVER_FAST_MULTINODE_GPU_COMMUNICATION1に設定して,プール内のすべてのワーカーでこのサポートを有効にします。この環境変数はクラスタープロファイルマネージャーで設定します。

この機能は,GPU通信用のNVIDIA NCCLライブラリの一部です。これを構成するには,追加の環境変数(特にNCCL_SOCKET_IFNAME)を設定して,ネットワークインターフェイスプロトコルを定義しなければなりません。詳細については,NCCLのドキュメンテーション,特にNCCL環境変数の節を参照してください。

関連するトピック