やじうまPC Watch
中国が開発した深層学習用プロセッサ「寒武紀」
2017年4月11日 18:05
近年、深層学習(ディープラーニング)に関する技術開発が活発だ。GoogleやMicrosoftといった大手企業について、もう改めて説明するまでもないと思うが、実はお隣の中国は、国の機関が総力を挙げて開発しているようだ。
中国科学院 計算技術研究所は、その開発の最先端を突っ走っている組織。この研究所は、フランス国立情報学自動制御研究所(Institut National de Recherche en Informatique et en Automatique:INRIA)と共同で深層学習に関する研究を進めてきており、2014年に世界で初めて深層学習に特化したプロセッサ、およびその命令セットを開発した歴史を持つ。
このプロセッサのアーキテクチャおよび命令セットについては、プログラミング言語やOSに対する構築サポートに関する国際会議「ASPLOS 2014」で、INRIAのOlivier Temam博士とともに開発の方向性を検討したという。なお、Temam博士は現在Googleに就職している。
深層学習は、人間の神経回路(ニューラルネットワーク)をシミュレーションして行なう。現在、深層学習はCPUやGPUといった汎用プロセッサを用いて行なわれているが、当然汎用プロセッサにデータを投げて演算命令を実行しただけでは、そのようなシミュレーションを行なうことはできず、神経ネットワークをソフトウェアで実装する必要がある。
加えて、深層学習で構築される(人工)ニューラルネットワークはニューロン(神経細胞)とシナプス(信号伝達などの神経活動にかかわる接合部位)の仕組みを模したものであり、これをCPUやGPUといった汎用プロセッサで実装しようとすると数百から数千の命令が必要となり、性能を大きく制限する。このため、高速に深層学習を実行するためには、数千から数万ものプロセッサで構築された大規模なコンピュータシステムが必要となる。
深層学習では大規模なデータの移動もボトルネックとなる。ディスクやメモリ上からデータを読み出してプロセッサに運ぶ際に必要な電力は、演算自身にかかる電力よりも高いという試算もある。
中国科学院 計算技術研究は、深層学習に特化した命令セット「DianNaoYu」とプロセッサアーキテクチャ「寒武紀(Cambricon)」を開発。傘下の「寒武紀科技」でIPとして商用化を始めた。ちなみに寒武紀は中国語でカンブリア紀を示す。余談だが、ソフトバンクがARMを買収したときに孫正義氏が語っていた“カンブリア爆発”を髣髴とさせる。
Cambriconのアーキテクチャの概要については、2014年に西安電子科技大学で行なわれた第12回の中国機械学習およびその応用に関する討論会(MLA2014)で、少し明らかにされている。基本的な考え方としては、オンチップのメモリ配置および階層を最適化することで、メモリアクセスを減らす方向性のようだ。また、ニューロンの出力元と出力先を順次切り替える方式を採用することにより、シンプル化を図っている。
今のところ、Cambriconの製品に関する詳細情報はかなり少ないが、いくつかのバリエーションが存在することが確認できる。「Cambricon-X」は16基のプロセッシングエレメント(PE)と、1つのインデックシングモジュール(IM)を持つプロセッサだ。IMが演算に必要なニューロンを効率よくPEに対して選択/転送することで、高い処理能力を実現。TSMCの65nmプロセスで試作したものは、ダイサイズが6.38平方mm、消費電力が954mWでありながら、544GOP/sもの処理性能を実現するという。
一方「Cambricon-1A」は1秒間に160億ものニューロンを処理でき、2兆にも上るシナプスを演算可能。CPUとGPUを超える性能を、それらより少ない消費電力で実現するという。
このように、GoogleのTPUに対抗しうる性能を持った深層学習向けのプロセッサ開発が、中国で行なわれている。今後はますます中国製プロセッサから目が離せなくなりそうだ。