「ヒューマン・ブレイン・プロジェクト」(HBP)とは「人間の脳を解明し、コンピューター上に脳を作り出す」ことを目的に2013年から続く学際的研究プロジェクトです。そのサブプロジェクトである「SpiNNaker」プロジェクトは脳の働きをシミュレートするための大規模な並列コンピューティング環境であり、10億個のニューロンから構成されるネットワークをシミュレートしようとするものです。YouTubeのComputerphileチャンネルで投稿されているムービーを見ると、「SpiNNaker」システムの仕組みがよくわかるようになっています。

Research Groups: APT - Advanced Processor Technologies (School of Computer Science - The University of Manchester)

http://apt.cs.manchester.ac.uk/projects/SpiNNaker/

Silicon Brain: 1,000,000 ARM cores - Computerphile - YouTube

「『SpiNNaker』は、スパイキングニューラルネットワークアーキテクチャを実現するもので、将来的にはリアルタイムに脳のモデリングを実現するため、ARMのプロセッサコアを100万個搭載し、10億個のニューロンをシミュレーションできるマシンを構築することです」と語るのはマンチェスター大学のSteve Furber教授。iOSやAndroidのスマートフォンなどでも使用されるARMアーキテクチャを最初に開発したパイオニアとしても知られています。



「SpiNNaker」は一般的なデータセンターにある19インチラックを占有しています。このラックの大きさは、幅が約2.2m、深さ1m、高さは約1.8m〜2.1mのごく一般的なサイズ。このラック1つで、約10万個のARMプロセッサコアが稼動していて、ねずみ1匹の脳と同規模のネットワークが構成できるとされています。



「SpiNNaker」は非常に合理的な設計をしています。1プロセッサには18個のコアがあり、A4サイズのボードに48個のプロセッサをのせています。すると、1枚のボードで約1000オーダー単位のコア分の処理が可能になります。さらに、ラックマウント用のカードフレームに24ボード搭載し、それをラック内に5台積んでいるので、1ラックにつき約10万ものARMプロセッサコアが稼動している計算になります。



これが「SpiNNaker」のボードで、ボード上に48個のチップが配置されています。ボードの側面には高速のコネクタがあり、複数のボードを並行に接続して大規模なシステムを構築することができます。



机の上にあるラックマウント用のカードフレームには、24枚の「SpiNNaker」ボードを搭載し、並行に接続されているので、この1台で約2万個のARMプロセッサコアを搭載しています。



上部を見ると、ボードが全て高速のリンクで接続されています。



下部はネットワークスイッチを介してイーサネットで接続されていて……



この「SpiNNaker」ボードを搭載したロボットにソフトウェアをロードして、テストするために利用しています。



これが10万個のARMプロセッサコアを搭載した「SpiNNaker」システムです。カードフレームをラック内に5台搭載していて……



イーサネットで接続されているので、リモート制御が可能になっています。



ボード間をギュウギュウに詰めれば、もっと多くのプロセッサコアを1台のカードフレームで動作できると考える人がいるかも知れませんが、少し空間があるのは、冷却のためです。「SpiNNaker」ボードは温度の上昇が起きにくいような設計になっているものの、完全に密着してボードを設置することはできていません。



中には「SpiNNaker」は従来の大規模な並列コンピューターという認識を持っている人がいると思います。もし、従来通りであれば、プログラミングでプロセスを記述する形となることでしょう。しかし、「SpiNNaker」では脳のモデルをリアルタイムシミュレートすることを目的とするため、イベントドリブン型のプログラミングモデルを採用しています。つまり、「ニューロンが到着した」などのイベントをトリガーとして、「何をしているのか?」「この入力が、いつスパイクしたのか?」などの処理を呼び出すものとなり、実際に脳が視覚や嗅覚・聴覚から信号を受け付けて、どんな処理をするかという動きをシミュレーションできるというわけです。



「SpiNNaker」の設計目標はARMプロセッサの1コアあたり約1000個のニューロンをリアルタイムでモデル化することで、現時点では1コアあたり256個のモデル化に成功しています。25%しか達成できていないように感じるかもしれませんが、現在はソフトウェアの調整段階で、これが終われば目標は達成できる見込みです。