脳の仕組みとコンピュータ
SC18において英マンチェスター大学のSteve Furber教授が生物学的な脳を模した超並列コンピューティングを行う「SpiNNaker」について招待講演を行った。
大脳皮質はスパイク(電気パルス)で動作する。そして、次の図に示すような複雑な情報の流れを持っている。大脳皮質は2次元の広がりを持ち、ニューロン間の接続は10%未満と疎な接続になっている。
そして、フィードフォワードの出力とフィードバックの出力を持ち、それらは他のニューロンのフィードフォワードの入力とフィードバックフィードバックの入力に接続されている。
大脳皮質モデルのシミュレーションには効率的なスパイク通信ができ、疎行列の計算能力の高いJUQUEENスパコンを使用している。
また、大脳皮質を模擬する専用ハードウェアも開発している。計算回路の近くにメモリを配置し、低電力でリアルタイムに計算ができ、消費電力は62mWである。
産業界ではスパイク型ではないニューロンを用いるものが多いが、IBMのTrueNorthやIntelのLoihiなどスパイク型のニューロンモデルを使うものも出てきている。
SpiNNakerのハードウェア構成
SpiNNakerプロジェクトは100万個の携帯電話のプロセサを使って1台のコンピュータを作るプロジェクトで、大体、ヒトの脳の1%程度の規模のニューラルネットワークのシミュレーションができる。また、これはネズミの脳で言えば10匹程度の規模である。
なお、SpiNNakerのノード間は、神経細胞と同様に、非同期の通信を行う。
各ノードはSpiNNakerチップとDRAMからなり、ノード間のリンクは双方向通信ができるようになっている。接続トポロジは、2次元のTriangularトーラスになっている。
次の図にSpiNNakerチップの外観とダイ写真を示す。このチップはUMCの130nmプロセスで作られている。
チップの中央にはルーターがあり、スパイクパケットのルーティングを行う。ルーティングテーブルもこの部分に格納されている。
中央のルーターの上下の4つの横方向の帯状の領域に合計16個のプロセサがあり、左右にも2個のプロセサがあるので、全部で18コアとなっている。各プロセサコアはニューロンとシナプスの状態を計算する。
各プロセサに隣接して6つのTightly Coupled RAMがある。この部分はData MemoryやRAM Portと書かれているが、これは用途の違いで、物理的には同じメモリである。
RAMポートは、シナプスの状態を記憶する。また、RAMポートはアクティビティのログを記憶する。そして、データメモリはカーネルの状態やニューロンの状態を記憶する。
ルーターは18個のコアと6本のリンクとの接続ポートを持ち、それらとの間でパケットの送受を行うことができる。6本のリンクは東西南北と北東、南西方向の接続に使われ、6リンク並列に動作する。このようなマルチキャストの通信の場合、小規模な構成の場合は、次元順に経路を選択するDimension Routing(次元ルーティング)でよいが、大規模になると効率が悪くなることから、4種のルーティングアルゴリズムを考案し、使い分けを行っているという。