IBMの新しいニューロチップ”TrueNorth”ざっと読んだまとめ

[2015年8月27日追記] 梶谷様が入院されたそうで、講演はキャンセルとなりました。とても残念です。お話を伺えるなんらかの機会が欲しいです。

[2015年6月5日追記] 今年の日本神経回路学会全国大会(9月2日-4日 電気通信大学)では、特別講演に日本IBMの梶谷浩一様をお招きして、「Neuromorphic Computing in IBM」という演題でご講演いただきます。TrueNorthのお話が聞けます!講演は9月3日夕方です。

最近Scienceに出た論文

A million spiking-neuron integrated circuit with a scalable communication network and interface
Paul A. Merolla et al.
Science 345, 668 (2014);
DOI: 10.1126/science.1254642

をざっと読んだまとめ。間違ってたらすみません。網羅的でもないし、電力とかルーティングの細かいところはちゃんと読んでません。

背景

2012年にIBMがSequoiaを使って、500×10億(billion)ニューロン・100×10京(trillion)シナプスのニューラルネットワークのシミュレーションをやった。ヒト全脳は100×10億ニューロン・100×10京シナプスと言われているので、それを上回る規模。ただし、計算時間が実時間の1500倍遅かった。

今回

1×100万(million)スパイキングニューロン・256×100万シナプスの実時間シミュレーションを行う専用チップ(TrueNorth)を開発した。

スペック

コア: ビルディングブロック

  • 256本の入力線(軸索, axon)と256本の出力線(ニューロン)からなるクロスバー構造
  • 256×256個の接続ポイント(シナプス)をプログラムする
  • コアあたり約10KB(104,448ビット)のローカルメモリ

チップの構成

  • 4096コアを2次元メッシュに配置し速いinterconnectで繋ぐ
  • チップの面積は4.3cm^{2}
  • 28nmプロセス
  • 全体で約42MBのオンチップメモリ (TY: 10KB/コア * 4096コア)
  • 消費電力は 20mW/cm^{2}

メモリ転送速度

  • トータルのバンド幅は160×100万スパイク/sec
  • 換算で5.44Gbits/sec

ネットワークのダイナミクス

  • 時間ステップは1ms
  • クロックは1kHz
  • コア間は非同期・並列に動作
  • スパイク伝達によるイベントドリブン
  • コア間でスパイクをルーティングさせる (TY: ルーティングに関して少し長い説明があった)
  • 効率良く動かすために以下が必要だが、大抵はうまくやれる
    • ほとんどの通信はコア内で完結すること
    • コア間をまたぐ情報はスパイク(1bit)のみ (TY: これは最初からそういう仕様)
    • 電力消費はメモリアクセスによるから、消費電力はスパイク数に比例。スパースなネットワークだと良い

細胞モデル

  • leaky integrate-and-fire モデル (積分されたフォーム・前方オイラー法で解くのと同じ) (TY: dt=1msだし計算が不安定にならないのだろうか)
  • シナプスが4種類あるみたいだけど詳細は不明。論文孫引きが必要。(TY: 多分AMPA, NMDA, GABA_A, GABA_B)
  • なのだけど、PSPのダイナミクス(expsynなのかalpha functionなのかとか)が入ってないっぽい。どうなってるんだろう。
  • ローカルメモリに保持される情報は以下の通り
    • シナプスの状態に65536ビット (TY: ということは1ニューロン・1シナプスあたり1ビットだから単に繋がってるかどうかのみ??あれ?w_{ij}は浮動小数点数って書いてあるけど。。。)
    • ニューロンの状態とパラメータに31232ビット
    • スパイクの送信先アドレスに6656ビット
    • axonal delayに1024ビット (TY: ということは1ニューロンあたり4bitなので0-15ミリ秒)

ソフトウェア

既存のいろんなので書く。例えば

  • convolutional network
  • liquid state machine
  • restricted boltzmann machine
  • hidden markov model
  • SVM

C++のAPIがあって (Corelets)、MPI, OpenMPと合わせて使う (TY: たぶんコア内はOpenMPで、コア間の通信をMPIで書くと思う)。

オフラインで学習(結合の強さを決める)させる (TY: たぶんこれ本質的な制約。動的にネットワークが変化しない/変化させられない)。

アプリケーション

400×200ピクセル・30フレーム/秒の動画からリアルタイムに物体認識ができ、消費電力は63ミリワット。

その他

SOPS (Synaptic Operations Per Sec)という概念を提唱している。46 x 10億 SOPS per Watt。

(TY: SOPSはOISTの五十嵐さんも提唱してた)

TY: 思ったこと

Science論文本体はほとんど宣伝なので、Supplementary Materialsを読むべし。

TY: 思ったこと 2

これASICじゃね?