SpiNNakerのプログラムはPyNNスクリプトで記述

SpiNNakerのプログラムはPyNNスクリプトで記述する。それをsPyNNakerソフトウェアでPyNNの版数に依存しない形式に変換して、SpiNNFrontEndCommonのフロントエンド機能を使ってアプリケーションをSpiNNakerマシンで実行する形式に変換する。

そして、SpiNNFrontEndCommonで作られる実行形式とプレコンパイルした命令コードをSpiNNakerハードウェアで実行する。実行結果はフロントエンドを使って表示される。

  • SpiNNakerのソフトウェアのハイレベルフロー

    SpiNNakerのソフトウェアのハイレベルフロー

SpiNNakerチップは18個のArmコアを持ち、SpiNNakerボードには48チップが搭載される。HBP(Human Brain Project)のプラットフォーム全体では11キャビネットに合計1M個を超えるarmコアが詰め込まれている。このマシンは2016年の3月30日に稼働を開始した。

  • SpiNNakerチップには18コアが集積

    SpiNNakerチップには18コアが集積され、SpiNNakerボードには864コア(48チップ)が搭載されている。HBPプラットフォーム全体では1Mを超えるコアが使われている

このHBPプラットフォームの2,901コアを使って、77,169ニューロン、285Mシナプスの1mm2分の大脳皮質のシミュレーションを行った。

  • 大脳皮質のフルスケールのシミュレーション

    2901コアを使って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は22nmプロセスを採用

    SpiNNaker2は22nmプロセスを使い、160コア(144コアという論文もある)を集積する。また、PoPで8GBのLPDDR4メモリをCPUチップと重ねて搭載している

SpiNNaker2では、ダイナミックなニューラル電力制御、指数関数アクセラレータ、乱数発生器などの採用によりハードウェア的に消費電力の削減、性能の改善を行っている。

  • SpiNNaker2

    SpiNNaker2では、ダイナミックな電力制御、指数関数アクセラレータ、乱数発生のハードウェア化などの改善により、電力効率の改善と性能向上を行っている

SpiNNaker2のPEでは、パワーゲートを採用し、ダイナミックに電力を制御している。また、SRAMはクロスバ経由でつながっており、コア間でメモリを共用することができ、柔軟性の高いメモリの使用ができるようになっている。

そして、Multiply-Accumulate(MAC)アクセラレータの搭載でマシンラーニングの演算性能を改善している。

  • SpiNNaker2ではエネルギー効率を改善

    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のエネルギー効率である。

  • PEごとに16×4のMACアレイがある

    PEごとに16×4のMACアレイがある。入力は8bit整数で、29bitのアキュムレータに積を足し込む。MACアレイは自律的に動けるのでCPUの負荷をオフロードすることができる

Deep Rewiringは実際に配線を変更するわけではないが、数値的に大きな影響を与えない項を削除するなどによりシナプスを減らし、その結果、場合によってはニューロン自体も削除する。これによりLeNet 300の場合、0.6%の接続まで接続を簡単化しても96.2%の認識率が得られたという。

この接続の簡単化により、重みのメモリ量が1080KBから36KBに減少し、x86での元のネットワークの学習の実行に比べて100xの電力削減が出来たという。

  • MNISTの手書き数字の画像認識

    計算に大きな影響を与えない項を削除して0.6%の接続まで減らしても、MNISTの手書き数字の画像認識の場合では96.2%の認識率が得られた

SpiNNakerは20年前から構想され、この10年間開発を行ってきた。世界中に研究グループがあり、約90種のボードが開発された。そして、100万コアのマシンが完成した。ソフトウェアの開発はHBPがサポートしてくれている。

産業界ではスパイク型でないニューロンが多く使われているが、スパイク型は非常に高いエネルギー効率を実現できる可能性がある。SpiNNakerは低電力ニューラルネットの理想的な研究プラットフォームである。

  • SpiNNakerは20年前から構想された

    SpiNNakerは20年前から構想され、10年前から建造が行なわれている。スパイク型のニューロンは、現在産業界で使われている非スパイク型のニューロンに比べて消費電力が小さく、電力効率を改善できる可能性がある。SpiNNakerは低電力ニューラルネットの研究に最適のプラットフォームである