人間の脳を解明するための国際プロジェクト「ヒューマン・ブレイン・プロジェクト」を支える大規模コンピューター環境「SpiNNaker」システムの実態に迫る
「ヒューマン・ブレイン・プロジェクト」(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%しか達成できていないように感じるかもしれませんが、現在はソフトウェアの調整段階で、これが終われば目標は達成できる見込みです。
・関連記事
ニューラルネットワークを用いた画像認識は簡単にだますことができることを示すムービー - GIGAZINE
重力レンズの分析にニューラルネットワークを導入、作業は従来の1000万倍高速化 - GIGAZINE
ニューラルネットワークでポケモンの名前&特性を自動生成 - GIGAZINE
ニューラルネットワークが持つ欠陥「破滅的忘却」を回避するアルゴリズムをDeepMindが開発 - GIGAZINE
お絵かき途中の線をニューラルネットワークが受け継いでイラストを完成させてくれる「Sketch-RNN」 - GIGAZINE
・関連コンテンツ