SpiNNakerのプログラムはPyNNスクリプトで記述
SpiNNakerのプログラムはPyNNスクリプトで記述する。それをsPyNNakerソフトウェアでPyNNの版数に依存しない形式に変換して、SpiNNFrontEndCommonのフロントエンド機能を使ってアプリケーションをSpiNNakerマシンで実行する形式に変換する。
そして、SpiNNFrontEndCommonで作られる実行形式とプレコンパイルした命令コードをSpiNNakerハードウェアで実行する。実行結果はフロントエンドを使って表示される。
SpiNNakerチップは18個のArmコアを持ち、SpiNNakerボードには48チップが搭載される。HBP(Human Brain Project)のプラットフォーム全体では11キャビネットに合計1M個を超えるarmコアが詰め込まれている。このマシンは2016年の3月30日に稼働を開始した。
このHBPプラットフォームの2,901コアを使って、77,169ニューロン、285Mシナプスの1mm2分の大脳皮質のシミュレーションを行った。
また、37Kニューロン、86Mシナプスを使い、制約ソルバーで数独を解いたり、地図の塗分け問題、イジングスピン系の解を求める問題を解いたとのことである。
人の脳全体のシミュレーションを目指す「SpiNNaker2」
引き続いて、160個のArmコアを集積するSpiNNaker2の開発を行っている。SpiNNaker2は22nmプロセスを使用し、人の脳全体のシミュレーションを目指す(なお、Furber教授の発表は28nmプロセスを使用するSpiNNaker2のプロトタイプに基づくものであるようである。この発表の図ではルーターの両側に4個のQPEが書かれているが、22nmプロセスで作られるSpiNNaker2ではこの部分は周辺回路となっており、コア数は144となっている)。
SpiNNaker2はPoPで8GBのLPDDR4 DRAMチップをロジックチップの上に乗せた構造になっている。また、チップ間のリンクが1本増えて7本となっている。
ロジックチップは4つのPEとメモリがまとめられたQPE(Quad PE)が単位となっており、40個のQPEが1チップに集積されている。
SpiNNaker2では、ダイナミックなニューラル電力制御、指数関数アクセラレータ、乱数発生器などの採用によりハードウェア的に消費電力の削減、性能の改善を行っている。
SpiNNaker2のPEでは、パワーゲートを採用し、ダイナミックに電力を制御している。また、SRAMはクロスバ経由でつながっており、コア間でメモリを共用することができ、柔軟性の高いメモリの使用ができるようになっている。
そして、Multiply-Accumulate(MAC)アクセラレータの搭載でマシンラーニングの演算性能を改善している。
-
SpiNNaker2ではパワーゲートを取り入れてエネルギー効率を改善。クロスバを経由したメモリアクセスにより隣接Coreとメモリ共有の柔軟性を改善。積和演算のアクセラレータの搭載などで電力効率を改善している
また、各PEに16×4のMACアレイを搭載した。このMACアレイは8bit整数入力で積を計算し、29bitのアキュムレータに足し込みを行う。そして、このMACアレイはローカルSRAMとNoC(Network on Chip)に接続されており、ローカルRAMやNoCからデータを受け取ったり、計算結果をローカルRAMに格納したり、NoC経由で他のコアに送ったりすることができる。
MACアレイは自律的に動くことができるので、8bit精度の整数で良い場合は積和演算の負荷をCPUからオフロードすることができる。250MHzクロックの場合、MACアレイのピーク演算性能は4.6TOPSである。消費電力は約0.72Wなので、6.4TOPS/Wのエネルギー効率である。
Deep Rewiringは実際に配線を変更するわけではないが、数値的に大きな影響を与えない項を削除するなどによりシナプスを減らし、その結果、場合によってはニューロン自体も削除する。これによりLeNet 300の場合、0.6%の接続まで接続を簡単化しても96.2%の認識率が得られたという。
この接続の簡単化により、重みのメモリ量が1080KBから36KBに減少し、x86での元のネットワークの学習の実行に比べて100xの電力削減が出来たという。
SpiNNakerは20年前から構想され、この10年間開発を行ってきた。世界中に研究グループがあり、約90種のボードが開発された。そして、100万コアのマシンが完成した。ソフトウェアの開発はHBPがサポートしてくれている。
産業界ではスパイク型でないニューロンが多く使われているが、スパイク型は非常に高いエネルギー効率を実現できる可能性がある。SpiNNakerは低電力ニューラルネットの理想的な研究プラットフォームである。