富士通研究所は、GPUを搭載したサーバーを複数台用いてディープラーニング(深層学習)を高速化できるソフトウエア技術を開発した(発表資料)。画像認識用のディープニューラルネットワーク「AlexNet」の学習を、Infinibandで接続した64台のGPU搭載サーバー(GPUは合計64個)で実行した結果、1台の場合と比べて27倍高速になることを確認した。

 ネットワークで複数台のサーバーを連携させて深層学習を実行する場合、10数台を超えると並列化の効果が薄れる課題がある。64台で27倍という性能向上率は、同社の調べでは世界最高という。サーバー機を16台使った場合は1台と比べて14.7倍高速化した。開発した技術を使わない場合と比べると、16台の場合は46%、64台の場合は71%高速になるという。

 各GPUに同一のニューラルネットを実装し、それぞれを異なるデータで学習させた後で結果を共有する、いわゆるデータパラレル方式を使う。具体的には、誤差逆伝播法(バックプロパゲーション)を用いた学習時に、まずは各GPUで与えられたデータに基づき誤差反映用のパラメータ(勾配)の値を求める。その結果を全てのGPUで共有し、GPUごとに勾配の平均値を使ってニューラルネットの重みを更新する。

 高速化するために二つの工夫を施した。一つは、勾配の計算と並行してデータの共有処理を実行すること。従来も、勾配の計算とデータの共有を並列に実行する技術はあったが、富士通研は次回の学習でまず必要になるデータを先行して共有することで、さらに高速化できるようにした。誤差逆伝播法では、ニューラルネットの出力層に近い、後段の層の勾配が先に求まるが、次回の学習処理では入力層に近い前段の層の勾配をいち早く利用する。このため開発した技術では、前段の層の勾配を優先して共有できるようにした(図1)。

図1 必要なデータを素早く共有
図1 必要なデータを素早く共有
富士通研究所が開発した技術は、各GPUで誤差逆伝播法による学習(勾配の計算、黄色)と、計算した勾配の他の GPUとの共有(緑色とオレンジ色)を並行して実行できるようにした。さらに、次回の学習でまず必要な勾配の値 (オレンジ色)を優先して共有できるようにして、さらなる高速化を図った。(図:富士通研究所)
[画像のクリックで拡大表示]