PR

 学習を高速化する手法はいろいろと研究されている。学習を複数のマシンに振り分けて、並列化して計算する手法があり、高速な並列処理が可能なハードが要求されている。このため、低コストで並列度を上げられるハードが有利になる。

 前述のようにGPUは、ディープラーニングに向いており、他のシステムに比べてコスト面で優位性がある。その中で、エヌビディアが提供するGPUは、ディープラーニング学習のシステム用ハードとしての地位を確立している。Tesla P100では、3500以上のコアを並列に動作させることが可能であり、同等の並列度を持つシステムはほかにないからだ。

 並列処理による高速化が期待できるほかのシステムとしては、他社のGPU、インテルなどが販売している汎用CPUや、インテルの「Xeon Phi」などの多コアアーキテクチャー、あるいは一般的な意味でのスーパーコンピュータなどがある。

 他社のGPUとして規模の大きなものはAMDが出しているがエヌビディア製ほどの競争力はない。またインテルのGPUは、プロセッサ内蔵用として設計されておりコア数に限界がある。汎用演算はグラフィックス機能に対する「追加機能」という位置付けだ。

 Xeon Phiはx86ベースのコアを搭載したプロセッサだ。GPUと比較するとダイ上でコアが占有する面積が大きく、現行の「Knights Landing」(開発コード名)はコアが72個。各コアは512ビットのAVX-512命令を実行できるため、1152コア相当の並列処理が可能とも言えるが、エヌビディアのGPUほどの規模はない。

 エヌビディアのGPUがディープラーニング学習用として手ごろな理由としては、コア当たりのコストが低く、かつコア数が多いこと、汎用演算のための環境が整っていることが挙げられる。同社は「CUDA」と呼ばれる汎用演算のための環境を2007年の汎用演算向けGPUであるTeslaシリーズの発表から整えてきた。

 このため、ディープラーニングの学習にGPUを使うアイデアが出たときには、既に汎用演算のためのライブラリーなどが存在しており、ディープラーニング用フレームワークなどを比較的容易にGPUに対応させられた。また、一部のディープラーニング用フレームワークは、最初からGPU利用を想定していた。

 エヌビディアの今後のGPUが採用するPascalアーキテクチャーは、ディープラーニング学習を高速化する機能として「パックド半精度浮動小数点演算」「NVLINK」「積層メモリー統合」などを取り入れた。また、スレッド実行制御の単位となる「SM(Streaming Multi-Processor)」に含まれる演算コアを減らし、逆にSM数を増やした。これにより、各スレッドが利用できるレジスターなどの共有資源の割り当て量を増やせるようになった。

 GTC2016の基調講演でも、米グーグルや米フェイスブックのディープラーニング開発者が登場して、スレッドから利用可能なレジスターや共有メモリーが大きくなることの利点を訴えた。

※後編へ続く