深層学習のプラットフォームとしての「FPGA」
AIを実装するための深層学習フレームワークに大量のコンピュータパワーが必要になってきた時代において、Microsoftは「スーパーコンピュータ化したAIの民主化」を推進していくという。これは、深層学習のプラットフォームとして、AzureからCPU、GPUに加えてFPGA(Field-Programmable Gate Array、プログラム可能なプロセッサ)のコンピュータリソースを提供し、これまでスーパーコンピュータなどで担っていた計算処理をクラウド上で手軽に行えるようにする取り組みである。
Microsoftが自社開発し、Azureのデータセンターで実装を進めているFPGA(Microsoft Ignite 2016の基調講演)
榊原氏によれば、行列計算の多い深層学習は、CPUよりもシェーディングユニットがあるGPUの方がパフォーマンスがよい。そのため、現在はCPUと大量のGPUを組み合わせて深層学習の計算処理を行うのが主流になっており、Googleの「TensorFlow」、Facebookの「Torch」、「Caffe」、「Theano」などオープンソースとして公開されている主要な深層学習フレームワークはいずれもGPUが利用できる。Microsoft Cognitive Toolkitでは、GPUのクラスタ構成を取ることも可能だ。
一方で、GPUは行列計算に向いているが消費電力が高い。加えて、世界中のデータセンターで実装が進んでいるため、GPUは供給が追い付いていないのが現状だと榊原氏が説明する。そのような状況なので、AzureからCPU、GPUに加えて、第3の選択肢としてFPGAを活用するのだという。「FPGAは、(特定処理に特化した演算効率を発揮するため)相対的に低コストになる」(榊原氏)
Azure上のFPGAの性能については、9月の「Microsoft Ignite」の基調講演でデモが披露されている。デモでは、ロシア語で書かれた1440ページの『戦争と平和』を英語に翻訳する処理速度を、(1)CPUのみのAzureのサーバ(24コア、1.8Tera ops)、(2)FPGAが有効化されたAzureのサーバ(10コア+4FPGA、7.9Tera ops)で比較。その結果、FPGAは2.6秒で翻訳処理が完了、CPUのみの場合は16秒が経過しても処理が完了しなかった。
Azure上のCPUとFPGAで機械翻訳の速度を比較
また、Azure上でFPGAの性能を最大(1 Exa ops)にした場合、約500万件あるWikipediaの英語記事すべてをスペイン語に翻訳するのに要する時間は、理論上0.098秒だという。「GPU、FPGAで処理の向き不向きがある。データを学習させる際はGPU、ある程度学習させたあとに処理を走らせる場合はFPGAを使うなど、選択肢の中から工夫してほしい」(榊原氏)
FPGAを1 Exa Opsの性能で使うとWikipediaの全英語記事をスペイン語に翻訳するのに要する時間は(理論上)0.098秒
FPGAの運用に関しても、「これまでBingのサーチエンジンをFPGAで稼働させてきたノウハウがある。今後は、深層学習フレームワークをFPGAで運用していく」と榊原氏。Microsoftは現在、深層学習向けに自社でデザインしたFPGAのボードを、世界中のAzureのデータセンターに実装する作業を進めており、将来的にはすべてのリージョンでFPGAを利用できるようにするという。