ニュース

富士通、深層学習の学習処理を高速化するソフトウェア技術を開発

~並列化の性能を高める

 株式会社富士通研究所は、深層学習(Deep Learning)の学習処理で、GPUの並列化による学習高速化ソフトウェア技術を開発したことを発表した。

 1台のコンピュータに搭載できるGPU数は上限があるため、処理性能を上げるため、多数のGPUを利用するには、高速なネットワークで複数のコンピュータを相互接続し、データを共有させて学習処理を進める必要がある。

 しかし、深層学習の並列処理では、共有が必要となる処理単位において、共有が必要なデータ量と演算時間にバラつきがあり、加えて前の演算結果を利用しながら順に演算をすることから、並列処理におけるデータ共有が複雑になる。そのため、コンピュータの台数を増やしても高速化の効果が得にくいという課題があった。

 富士通研究所では、通信と演算を同時並列に実行するスーパーコンピュータの技術と、深層学習の処理順序と、共有するデータサイズの特徴に合わせて処理方法を変えるという次の2つの技術を開発し、大小さまざまな共有データサイズが含まれる場合においても、処理と処理の間の待ち時間の増加を抑えて学習処理の高速化を実現した。

 データ共有のスケジューリング技術は、連続的に続く複数の演算で、次の学習処理の開始に必要となるデータが、先にそれぞれのコンピュータで共有されるよう転送の優先順序を自動的に制御するというもの。従来技術では、次の学習処理の最初に必要となる1層のデータ共有処理が最後に行なわれるため、データ共有処理による遅延が長くなるのに対し、新たに開発した技術では、2層目のデータ共有処理途中に1層目のデータ共有処理を行なうことで、次の学習処理の開始までの待ち時間を短縮する動作を実現したとする。

データ共有のスケジューリング技術

 データサイズに応じた演算最適化処理技術は、演算結果を全コンピュータで共有する処理において、元となるデータ量が少ない時は、各コンピュータでデータを共有し、同じ演算を実行してしまうことで、結果を転送する時間を削減。データ量が多い時は処理を分割し、ほかのコンピュータと算出した結果を共有して、後の演算で利用する。データの量に応じて最適な演算方法を行なうよう自動で振り分けることで、処理時間を短縮し、全体の演算時間を最小にするという。

共有データサイズが小さい場合(上段)と、大きい場合(下段)による処理の違い

 今回開発した技術を、深層学習フレームワークの「Caffe」に実装し、GPUをそれぞれ搭載した64台のコンピュータを使用した、画像認識用多層ニューラルネット「AlexNet」における学習時間を計測したところ、GPUを1台だけ使用した場合に比べ、27倍の速度を達成。コンピュータ1台では約1カ月かかる学習処理を、GPU 64台の並列動作により、1日程度で処理することが可能であるとする。

 開発した技術を適用しない場合と比較すると、GPU 16台で46%、64台で71%の学習速度の向上を実現したという。

 富士通研究所では、今回開発した技術を、富士通株式会社のAI技術「Human Centric AI Zinrai」の1つとして2016年度中の実用化を目標に、学習速度の更なる向上を目指し、技術の改善を行なっていくとする。