(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-11
(45)【発行日】2023-05-19
(54)【発明の名称】3次元ネットワークオンチップによるスパイキングニューラルネットワーク
(51)【国際特許分類】
H04L 49/201 20220101AFI20230512BHJP
H04L 45/12 20220101ALI20230512BHJP
H04L 45/24 20220101ALI20230512BHJP
G06N 3/04 20230101ALI20230512BHJP
G06N 3/063 20230101ALI20230512BHJP
【FI】
H04L49/201
H04L45/12
H04L45/24
G06N3/04
G06N3/063
【外国語出願】
(21)【出願番号】P 2019124541
(22)【出願日】2019-07-03
【審査請求日】2022-03-28
【新規性喪失の例外の表示】特許法第30条第2項適用 (1)平成31年1月1日にhttp://web-ext.u-aizu.ac.jp/▲~▼benab/allprojects.htmlにて発表。 (2)平成31年3月1日にThe 6th IEEE International Conference on Big Data and Smart Computing(BigComp 2019)にて発表。 (3)平成31年3月12日にhttps://www.u-aizu.ac.jp/en/information/ieee.htmlにて発表。
(73)【特許権者】
【識別番号】506301140
【氏名又は名称】公立大学法人会津大学
(74)【代理人】
【識別番号】100094525
【氏名又は名称】土井 健二
(74)【代理人】
【識別番号】100094514
【氏名又は名称】林 恒徳
(72)【発明者】
【氏名】ベン アブダラ アブデラゼク
(72)【発明者】
【氏名】ヴー フィ テー
(72)【発明者】
【氏名】久田 雅之
【審査官】佐々木 洋
(56)【参考文献】
【文献】特表2019-505065(JP,A)
【文献】特開2019-092020(JP,A)
【文献】特開2015-119387(JP,A)
【文献】国際公開第2019/026523(WO,A1)
【文献】特開2010-199972(JP,A)
【文献】特開2007-221428(JP,A)
【文献】特開平07-239834(JP,A)
【文献】米国特許出願公開第2007/0097951(US,A1)
【文献】中国特許出願公開第106161270(CN,A)
【文献】大崎 功一 Koichi OHSAKI,多対多マルチキャストにおけるメンバークラスタリング手法 A Member-Clustering Scheme for Many to Many Multicast,情報処理学会研究報告 Vol.2001 No.59 IPSJ SIG Notes,日本,社団法人情報処理学会 Information Processing Society of Japan,2001年06月08日,第2001巻,pp. 101-106
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
H04L 41/00-101/695
G06N 3/063
G06N 3/04
(57)【特許請求の範囲】
【請求項1】
3次元ネットワークオンチップによるスパイキングニューラルネットワークであって、
複数の重心をランダムに決定し、
前記3次元ネットワークオンチップに実装された複数の送信先ルータのそれぞれから前記複数の重心のそれぞれまでの距離を算出し、
算出した前記距離に基づいて、前記複数の送信先ルータを前記複数の重心のそれぞれに対応する複数のサブグループのいずれかに割り当て、
前記複数のサブグループに対する前記複数の送信先ルータの割り当て結果に基づいて、前記複数の重心を再決定し、
前記3次元ネットワークオンチップに実装された送信元ルータから前記複数の送信先ルータに含まれる第1の送信先ルータに対してパケットが送信される場合、
再決定した前記複数の重心のうちの前記第1の送信先ルータに対応する第1の重心を特定し、
特定した前記第1の重心に対応するサブグループに割り当てられた前記複数の送信先ルータのうち、前記送信元ルータからの距離が最短である第2の送信先ルータを特定し、
特定した前記第2の送信先ルータを通過するように、前記パケットの送信経路を特定し、
特定した前記送信経路を用いて前記パケットを送信する、
ことを特徴とする3次元ネットワークオンチップによるスパイキングニューラルネットワーク。
【請求項2】
請求項1において、
前記割り当てる処理では、
前記複数の送信先ルータごとに、前記複数の重心のうち、算出した前記距離が最も短い第1の重心を特定し、
前記複数の送信先ルータのそれぞれを、各送信先ルータに対応する前記第1の重心に対応するサブグループに割り当てる、
ことを特徴とする3次元ネットワークオンチップによるスパイキングニューラルネットワーク。
【請求項3】
請求項1において、
前記算出する処理では、前記複数の送信先ルータのそれぞれから前記複数の重心のそれぞれまでのマンハッタン距離を算出する、
ことを特徴とする3次元ネットワークオンチップによるスパイキングニューラルネットワーク。
【請求項4】
請求項1において、
前記算出する処理と、前記割り当てる処理と、前記再決定を行う処理とを、再選択した前記複数の重心が変更されなくなるまで繰り返す、
ことを特徴とする3次元ネットワークオンチップによるスパイキングニューラルネットワーク。
【請求項5】
請求項1において、
前記
パケットの送信経路を特定する処理では、再決定した前記複数の重心のうちの前記第1の送信先ルータに対応する重心を通過するように、前記パケットの送信経路を特定する、
ことを特徴とする3次元ネットワークオンチップによるスパイキングニューラルネットワーク。
【請求項6】
請求項
1において、
前記
パケットの送信経路を特定する処理では、前記送信元ルータから前記第1の送信先ルータまでの間に位置する第3の送信先ルータと第4の送信先ルータとの間における複数の送信経路を特定し、
前記送信する処理では、特定した前記複数の送信経路のうちの第1の送信経路が使用可能である場合、前記第1の送信経路を用いて前記パケットを送信し、前記第1の送信経路が使用可能でない場合、特定した前記複数の送信経路のうちの第2の送信経路を用いて前記パケットを送信する、
ことを特徴とする3次元ネットワークオンチップによるスパイキングニューラルネットワーク。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、3次元ネットワークオンチップによるスパイキングニューラルネットワークに関する。
【背景技術】
【0002】
近年、神経科学の研究は、個々のニューロンの構造及び動作について多くのことを明らかにし、医療ツールによって、脳のさまざまな領域の神経活動が感覚刺激に従う様子についての理解が可能になってきている。また、ソフトウェアベースの人工知能(AI:Artificial Intelligence)の進歩は、従来のフォンノイマンコンピューティングスタイルのボトルネックを克服させる脳のような機能を有するデバイス及びシステムの構築技術の最先端に我々を到達させている。
【0003】
ニューロインスパイアードシステムまたはニューロモルフィックシステムと従来の情報処理システムとの間の主な違いは、ニューロインスパイアードシステムやニューロモルフィックシステムがメモリ構造及び組織を使用していることにある。フォンノイマンスタイルに基づくシステムが、メインメモリ領域から物理的に分離された1つまたは複数の中央処理装置を有しているのに対し、生物学的(スパイキング)ニューラルネットワークシステム及び人工ニューラルネットワークシステムのそれぞれでは、共局在化されたメモリ及び計算の分散が行われている。スパイキングニューラルネットワーク(Spiking Neural Networks:以下、SNNと呼ぶ)に基づくニューロインスパイアードテクノロジーは、脳についてのより良い理解を獲得し、そして、生物学に触発された新しい計算を探求するために注目を集めている。SNNは、視覚認識タスクや分類タスク等のいくつかのアプリケーションに正常に適用されている(非特許文献1)。また、ニューロモルフィックハードウェアの実装は、大規模ネットワークをリアルタイムで実行することを可能にする。これは、ニューロロボティクス制御、ブレインマシンインタフェース及びロボットによる意思決定を含むいくつかのアプリケーションにおいて重要な要件である。
【0004】
SNNは、スパイク事象を介して通信するニューロンの並列アレイに基づいて哺乳動物の脳における情報処理の模倣を試みる。ニューロンが各伝播サイクルにおいて発火する典型的な多層パーセプトロンネットワークとは異なり、SNNモデルのニューロンは、膜電位が特定の値に達したときにのみ発火する。SNNにおいて、情報は、一致符号化、レート符号化、時間符号化等のさまざまな符号化方式を用いることによって符号化される(特許文献1)。SNNでは、通常、他のニューロンからの外部刺激によって十分な刺激を受けた場合に、ニューロンが神経線維を伝達可能な電圧スパイク(スパイクあたり持続時間は約1ms)を生成する統合発火型ニューロンモデル(非特許文献2及び3)が採用される。これらのパルスは、振幅、形状及び持続時間が異なるが、一般的に、同一のイベントとして取り扱われる。また、Hodgkin-Huxleyのコンダクタンスに基づくニューロン(非特許文献4)は、生物学的ニューロンのイオンチャネルの非線形及び確率的な力を効率的にモデル化するためによく使用される。しかしながら、Hodgkin-Huxleyモデルは、大規模なシミュレーションやハードウェア実装に使用するには複雑すぎるという問題がある。
【0005】
近年、多数のディープSNNが提案されている(非特許文献5)。これらは、多くのスパイキングニューロンから構成されており、さまざまなパターン認識タスクにおいて成功している(非特許文献1及び6)。しかしながら、これらのモデルは、多層として知られているが、伝統的なディープニューラルネットワークと比較して多くの訓練可能な層を持っていないことに言及すべきである。これは、従来のANN(Artificial Neural Networks)の逆伝播のように、スパイキングディープネットワークを直接的に訓練するための効率的な学習規則がないためである(非特許文献5)。一方、大規模なSNNは、脳の複雑な活動をシミュレートするために求められる。例えば、Spanuと呼ばれる250万ニューロンモデルが存在している(非特許文献7)。Spanuは、神経解剖学、神経生理学及び心理的行動の多くの側面を捉え、数字認識タスクについても精度良く実行する。ディープSNNにおいて、ニューロン間の通信は、実装時に不可欠な役割を果たす。多数のニューロンを平面構造にマッピングし、その結果として得られる平面のダイを貫通シリコンビア(TSV:Through-Silicon via)を用いて積み重ねることによって、通信待ち時間を大幅に短縮することが可能になる。
【0006】
SNNのソフトウェアシミュレーションは、ニューロシステムの挙動を調べるための適切な方法である。しかしながら、ソフトウェアによる大規模な(深い)SNNシステムのシミュレーションは低速である。他の手法としては、独立したスパイクを正確に生成し、同時にスパイクをリアルタイムで出力する可能性を提供するハードウェア実装がある。ハードウェア実装は、ソフトウェアシミュレーションよりも計算速度が向上するという利点を有するため、固有の並列処理を行った場合における利点を最大限に活用することが可能である。そして、複数のニューロコアを持つ特殊なハードウェアキテクチャは、ニューラルネットワーク固有の並列処理を活用することで、低電力で高い処理速度を実現することが可能にある。そのため、SNNは、組み込みニューロモルフィックデバイスや制御アプリケーションに適している。
【0007】
大量のシナプスを持つスパイキングニューラルネットワークアーキテクチャ(ニューロモルフィック)をハードウェアで構築する際に解決する必要がある課題には、低消費電力での小型の超並列アーキテクチャ、効率的なニューロコーディングスキーム、及び、軽量なオンチップ学習アルゴリズムの構築が含まれる。他の主要な課題は、ニューロコアとそのコアに転送されるオフチップデータとの間でデータを通信させるオンチップ通信及びルーティングネットワークである。さらに、接続されるニューロンの数は、現在のマルチコア/マルチプロセッサSoC(System on a Chip)プラットフォームにおいて相互接続される必要があるPE(Processing Element)の数の少なくとも103倍である(非特許文献8)。上記の制約により、このような頭脳に似たIC(Integrated Circuit)の展開は、困難なオンチップ相互接続の問題となる(非特許文献9)。SNNにおいて、各ニューロンは、入力スパイク、シナプス荷重、現在の膜電位、及び、一定の漏れ係数を含むいくつかのパラメータの関数である内部膜電位を維持する(非特許文献10)。ニューロンの活動は、ニューロン及びニューラルシステムの機能的特性を決定する上で重要な役割を果たすニューロンの連結性によって制約されている。脳の連結性は、一般的に、以下のようないくつかのスケールで記述される:(1)個々のニューロンをマイクロスケールでリンクする個々のシナプス接続、(2)メソスケールにおいてニューロンの細胞集団を結ぶネットワーク、そして、(3)マクロスケールで線維経路によって結び付けられた脳領域。
【0008】
適切なニューロンとネットワークモデルとを備えた効率的なSNNにおいて、ニューロンへのディラックデルタ関数や整形後シナプス電位(EPSP:Excitatory PostSynaptic Potential/IPSP:Inhibitory PostSynaptic Potential)等のシナプス入力の到着時間は、ニューロンの出力(スパイク)の時間に大きな影響を与える。その結果、
図1に示すように、タイミング違反は、スパイキングニューロンの適切な機能(発火)やシステム全体のオンチップ学習機能に影響を与える。
【0009】
通信媒体としての共有バスは、マルチキャストルーティングを備えた大規模で複雑なSNNチップ/システムの実装に適していない。これは、ニューロンを追加すると、チップの通信容量が減少し、さらに、共有バスの長さが長くなるためにニューロンの発火率に影響を与える可能性があるからである。また、ニューラル接続における非線形の増加は、専用のポイントツーポイント通信方式を使用した直接的な実施において非常に重要である。
【0010】
二次元パケット交換ネットワークオンチップ(2D-Noc:Two-dimensional packet-switched Network-on-Chip)は、従来提案されてきたSNNに基づく共有通信媒体に見られる相互接続問題に対処するための潜在的な解決策として考えられてきた(非特許文献9及び12)。しかしながら、このような相互接続戦略は、特に大規模SNNチップにおいて、低い電力消費で高い拡張性を達成することを困難にする。パケット交換NoCとは別に、回線交換NoCを使用すると、さまざまなルーティング/スイッチングメカニズムのパフォーマンスを調べることが可能になる。回線交換NoCは、パケット交換と比較して、ハードウェアの複雑さが小さくエネルギー効率が高いが、セットアップ時間が長くなる。
【0011】
ここ数年で、3D-ICとメッシュベースのNoCの利点は、特にAIを搭載したチップにおいて、IC設計の新たな領域を開く有望なアーキテクチャに融合された。NoCの並列性は、短いワイヤ長と3D-ICの相互接続の低消費電力のおかげで、3次元において強化することが可能である。その結果、3D-NoCパラダイムは、将来のIC設計にとって最も先進的で好都合なアーキテクチャの1つであると考えられている。3D-NoCは、非常に高い帯域幅であって低消費電力の相互接続(非特許文献13)を提供し、新たな人工知能(AI)アプリケーションの高い要件を満たすことが可能になる。3D-NoCとSNNとを組み合わせる場合、スパイキングニューロンは、PE(ニューロコア)と見なすことが可能になる。ニューロン間の接続性は、拡張性のある相互接続ネットワークを介してスパイクパケットを送信する形で実装される。なお、この場合、PEは、3D-NoCルータに接続されたSNPC(Spiking Nueron Processing Core)を指しており、NoCチャネルは、ニューロンのシナプスに類似しており、さらに、NoCトポロジは、ニューロンがネットワーク内で相互接続される方法を指している。
【0012】
SNNのハードウェア実装の主な問題の1つは、それらの信頼性に関する可能性である。SNNには、生物学的神経モデルによって触発された大規模で平行な構造のおかげで、いくつかの固有のフォールトトレランス特性があると言われているが、実際の場合に関しては必ずしもそうではない(非特許文献14)。実際、半導体部品の継続的な縮小から引き継がれた課題により、ハードウェアでのSNNの実装は、さまざまな障害にさらされる(非特許文献14)。歩留まりが大きな問題となる場合、組み込みシステム向けの大規模なSNNの統合に進むにつれて、障害リスクはさらに重要になる(非特許文献15)。ニューロン間通信の信頼性を考慮する場合、特に重要なアプリケーション(航空宇宙、自動運転車、生物医学など)で発生する場合において、障害は、システムのパフォーマンスに影響を与える可能性がある。このような障害は、望ましくない不正確さ、または、不可逆的であって深刻な結果を招く可能性がある。SNNでは、ニューロン間接続に障害が発生すると、シナプス後ニューロンが無反応状態または無反応に近い状態(低発火活動状態)になる。
図1(c)に示すように、N1からN4への接続にリンク切れが存在する場合、N4の潜在的な膜では、
図1(b)の場合のように、出力スパイクを発火させる閾値に到達しない。これにより、シナプス後ニューロンの発火率が低下する。
【0013】
従って、レートコーディング方法に基づいたSNNモデルの全体的なパフォーマンスに影響を与える可能性がある(非特許文献16)。発火率が低いニューロンは、発火率のノイズと分散を増加させるスパイクの一時的なジッタの影響を受けやすくなる(非特許文献17)。その結果、効率的なフォールトトレラント技術が必要となる。このようなメカニズムでは、回復時間が重要な要件の1つになる。
図1(d)に示すように、フォールトトレラントルーティング方法の長い待ち時間が発火率に影響を与える可能性がある。特に、スパイク間の相対的なタイミングに基づく一時的なコーディング方法を使用するSNNモデルに影響を与える可能性がある。
【0014】
そのため、シリコンへの大規模なSNNの統合により、効率的なフォールトトレラントソリューションを見つけるという課題がより重要になる。
【先行技術文献】
【特許文献】
【0015】
【文献】米国特許出願公開第2014/0351190号明細書
【文献】特開2015-119387号公報
【非特許文献】
【0016】
【文献】Y. Cao, Y. Chen, and D. Khosla, “Spiking deep convolutional neural networks for energy-efficient object recognition,” Int. J. Comput. Vision, vol. 113, no. 1, pp. 54-66, May 2015.
【文献】N. Burkitt, “A review of the integrate-and-_re neuron model: I.homogeneous synaptic input,” Biol. Cybern., vol. 95, no. 1, pp. 1-19, Jun. 2006. [Online]. Available: http://dx.doi.org/10.1007/s00422-006-0068-6
【文献】K. Suzuki, Y. Okuyama, and A. B. Abdallah, “Hardware design of a leaky integrate and fire neuron core towards the design of a low-power neuro-inspired spike-based multicore soc,” in Information Processing Society Tohoku Branch Conference, February 2018.
【文献】J. H Goldwyn, N. S Imennov, M. Famulare, and E. Shea-Brown, ”Stochastic differential equation models for ion channel noise in hodgkin-huxley neurons,” in Phys. Rev. E, vol. 83, no. 1, 2011, pp. 4190-4208.
【文献】A. Tavanaei, M. Ghodrati, S. R. Kheradpisheh, T. Masquelier, and A. Maida, “Deep learning in spiking neural networks,” Neural Networks, 04 2018.
【文献】P. Diehl and M. Cook, “Unsupervised learning of digit recognition using spike-timing-dependent plasticity,” Frontiers in Computational Neuroscience, vol. 9, p. 99, 2015.
【文献】C. Eliasmith, T. C. Stewart, X. Choo, T. Bekolay, T. DeWolf, Y. Tang, and D. Rasmussen, “A large-scale model of the functioning brain.” Science, vol. 338 6111, pp. 1202-1205, 2012.
【文献】S. Furber and S. Temple, “Neural systems engineering,” Journal of the Royal Society Interface, vol. 4, no. 13, pp. 193-206, Sep 2006.
【文献】S. Carrillo, J. Harkin, L. J. McDaid, F. Morgan, S. Pande, S. Cawley, and B. McGinley, “Scalable hierarchical network-on-chip architecture for spiking neural network hardware implementations,” IEEE Transactions on Parallel and Distributed Systems, vol. 24, no. 12, pp. 2451-2461, Dec 2013.
【文献】W. Maas, “Networks of spiking neurons: The third generation of neural network models,” Trans. Soc. Comput. Simul. Int.,vol. 14, no. 4, pp. 1659-1671, Dec. 1997. [Online]. Available: http://dl.acm.org/citation.cfm?id=281543.281637
【文献】A. Ben Abdallah, Advanced Multicore Systems-On-Chip Architecture, On-Chip Network, Design. Springer, 2017.
【文献】R. Hojabr, M. Modarressi, M. Daneshtalab, A. Yasoubi, and A. Khonsari, “Customizing clos network-on-chip for neural networks,” IEEE Transactions on Computers, vol. 66, no. 11, pp. 1865-1877, Nov 2017.
【文献】K. N. Dang, A. B. Ahmed, Y. Okuyama, and B. A. Abderazek, “Scalable design methodology and online algorithm for tsv-cluster defects recovery in highly reliable 3d-noc systems,” IEEE Transactions on Emerging Topics in Computing, pp. 1-1, 2017.
【文献】C. Torres-Huitzil and B. Girau, “Fault and error tolerance in neural networks: A review,” IEEE Access, vol. 5, pp. 17322-17341, 2017.
【文献】P. M. Furth and A. G. Andreou, “On fault probabilities and yield models for vlsi neural networks,” IEEE Journal of Solid-State Circuits, vol. 32, no. 8, pp. 1284-1287, Aug 1997.
【文献】P. U. Diehl, D. Neil, J. Binas, M. Cook, S. Liu, and M. Pfeiffer, “Fast-classifying, high-accuracy spiking deep networks through weight and threshold balancing,” in 2015 International Joint Conference on NeuralNetworks (IJCNN), July 2015, pp. 1-8.
【文献】M. Pfeiffer and T. Pfeil, “Deep learning with spiking neurons: Opportunities and challenges,” Frontiers in Neuroscience, vol. 12, p. 774, 2018. [Online]. Available: https://www.frontiersin.org/article/10.3389/fnins.2018.00774
【文献】D. Vainbrand and R. Ginosar, “Scalable network-on-chip architecture for configurable neural networks," Microprocess. Microsyst., vol. 35, no. 2, pp. 152-166, Mar. 2011. [Online]. Available: http://dx.doi.org/10.1016/j.micpro.2010.08.005
【文献】B. A. Akram and B. A. Abderazek, “Adaptive fault-tolerant architecture and routing algorithm for reliable many-core 3d-noc systems,” J. Parallel Distrib. Comput., vol. 93, no. C, pp. 30-43, Jul. 2016.
【文献】W. Gerstner and W. Kistler, Spiking Neuron Models: Single Neurons, Populations, Plasticity. Cambridge University Press, 2002.
【文献】K. N. Dang, M. Meyer, Y. Okuyama, and A. B. Abdallah, “Reliability assessment and quantitative evaluation of soft-error resilient 3d network-on-chip systems,” in 2016 IEEE 25th Asian Test Symposium (ATS), Nov 2016, pp. 161-166.
【文献】X. Lin and L. M. Ni, “Multicast communication in multicomputer networks,” IEEE Transactions on Parallel and Distributed Systems, vol. 4, no. 10, pp. 1105-1117, Oct 1993.
【文献】S. H. Strogatz, “Exploring complex networks,” vol. 410, pp. 268-276, 03 2001.
【文献】F. Akopyan, J. Sawada, A. Cassidy, R. Alvarez-Icaza, J. Arthur, P. Merolla, N. Imam, Y. Nakamura, P. Datta, G. J. Nam, B. Taba, M. Beakes, B. Brezzo, J. B. Kuang, R. Manohar, W. P. Risk, B. Jackson, and D. S. Modha, “Truenorth: Design and tool flow of a 65 mw 1 million neuron programmable neurosynaptic chip,” IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 34, no. 10, pp. 1537-1557, Oct 2015.
【発明の概要】
【発明が解決しようとする課題】
【0017】
ルーティングアルゴリズムは、ニューロン通信のパフォーマンスに重要な役割を果たすために、SNNで最も効率的な回復メカニズムの1つと見なされている。ルーティングアルゴリズムは、ネットワーク全体の負荷分散と、障害のないシナリオでのシステムの全体的な遅延とに影響を与える可能性がある(非特許文献11)。与えられたSNNのトラフィックパターンは、シナプス前ニューロンがシナプス後ニューロンのサブセットにスパイクを送信する1対多の方法であるため、大規模なSNNでの従来のユニキャストベースのルーティングの使用は、非効率的である(非特許文献18)。さらに、フォールトトレランスの要件を考慮する場合、ニューロン間通信の遅延を最小限に抑えるために、ルーティングアルゴリズムを慎重に選択する必要がある。さもなければ、障害が回避されたという事実にもかかわらず、シナプス後ノードの精度が低下する可能性がある。
図1(d)は、このような場合の明確な例を示している。この図では、不適切なルーティングによる長い待ち時間が、シナプス後ニューロンによる出力スパイクのタイムリーな発火を妨げる可能性があることを示している。
【0018】
そこで、本発明の目的は、脳の固有の3D構造を活用し、大規模なSNNベースのコンピューティングシステムのシームレスな実装を可能にする新しいマルチキャストスパイクルーティングアルゴリズムを提案することにより、ニューロン間の通信遅延を削減することである。
【課題を解決するための手段】
【0019】
本発明の一態様では、3次元ネットワークオンチップによるスパイキングニューラルネットワークであって、複数の重心をランダムに決定し、前記3次元ネットワークオンチップに実装された複数の送信先ルータのそれぞれから前記複数の重心のそれぞれまでの距離を算出し、算出した前記距離に基づいて、前記複数の送信先ルータを前記複数の重心のそれぞれに対応する複数のサブグループのいずれかに割り当て、前記複数のサブグループに対する前記複数の送信先ルータの割り当て結果に基づいて、前記複数の重心を再決定し、前記3次元ネットワークオンチップに実装された送信元ルータから前記複数の送信先ルータに含まれる第1の送信先ルータに対してパケットが送信される場合、再決定した前記複数の重心に基づいて、前記パケットの送信経路を特定し、特定した前記送信経路を用いて前記パケットを送信する。
【発明の効果】
【0020】
脳の固有の3D構造を活用し、大規模なSNNベースのコンピューティングシステムのシームレスな実装を可能にする新しいマルチキャストスパイクルーティングアルゴリズムを提案することにより、ニューロン間の通信遅延を削減する。
【図面の簡単な説明】
【0021】
【
図1】
図1は、発火率に対する接続障害の影響の例を示す図である。
【
図2】
図2は、システムアーキテクチャの概要を示す図である。
【
図3】
図3は、SNPCアーキテクチャを示す図である。
【
図4】
図4は、FTMC-3DRアーキテクチャを示す図である。
【
図5】
図5は、KMCRマルチキャストルーティング擬似コードのアルゴリズムを示す図である。
【
図6】
図6は、6×3×2メッシュの3DNoCのKMCRアルゴリズムについての例を示す図である。
【
図7】
図7は、プライマリブランチとバックアップブランチとを示す図である。
【
図8】
図8は、プライマリブランチとバックアップブランチとのオフライン計算についてのFTMP-KMCRアルゴリズムを示す図である。
【
図9】
図9は、「son」、バックアップ時、「father」、「grandfather」に対応する各ルータに適用される障害管理アルゴリズムを示す図である。
【発明を実施するための形態】
【0022】
以下、図面を参照して本発明の実施の形態について説明する。各実施の形態は、本発明のより良い理解のために準備されている。ただし、かかる実施の形態は、本発明の技術的範囲を限定するものではない。また、本発明の範囲は、特許請求の範囲及びこれと同等のものを網羅している。
【0023】
最初に、スパイクトラフィックルーティング用の低遅延マルチキャストルーティングスキームに基づく本発明による3DFT-SNNアーキテクチャについて説明を行う。
図2は、システムアーキテクチャの概要を示す図である。
【0024】
図2に示されるように、システム100(3DFT-SNNシステム100)は、スパイキングニューラルタイル10がいくつかの積み重ねられた2D層からなり、従来の3D-NoCアーキテクチャに基づいている(非特許文献13及び19)。具体的に、
図2では、4×4の2D層からなるスパイキングニューラルタイル10が積み重ねられている例が示されている。
【0025】
スパイキングニューラルタイル10は、スパイキングニューラルプロセッシングコア(Spiking Neural Processing Core:以下、SNPC1と呼ぶ)と、フォールトトレラントマルチキャストルータ(Fault-Tolerant Multicast Router:以下、FTMC-3DR2とも呼ぶ)とから構成される。SNNに関連して、スパイクニューロンはPEを指しており、ニューロン間接続は、拡張性のある3D-NoCを介してスパイク(パケット)を送信する形で実装され、さらに、トポロジは、ネットワーク内でニューロンが相互接続される方法を指している。
図3に示すように、3DFT-SNNシステム100内の各SNPC1は、スパイキングニューロンのアレイを使用して着信スパイクを処理する。
【0026】
SNPC1は、システム100の主要な処理ユニットである。
図3に示す例では、入力スパイクが最初にデコードされて、それらのシナプス後ニューロンが決定される。重み値は、クロスバーベースのシナプスを介して、LIF(Leaky Integrate-and-Fire)ニューロンの配列に蓄積される(非特許文献20)。
【0027】
SNPC1は、クロスバーアプローチに基づいている。ここでは、オンチップSRAMを使用してN×Nクロスバー(Nはニューロンの数)を実装する。各シナプスは、5ビットで表され、シナプスタイプ(すなわち、興奮性及び抑制性)のために1ビットが用いられ、重みのために4ビットが用いられる。以下、SNPC1の主要コンポーネントについて説明を行う。
【0028】
デコーダ11は、着信スパイク(パケット)ごとにシナプス後ニューロンを決定する。宛先ニューラルタイルに到着すると、着信スパイクは、ローカルルータによってローカルのSNPC1に転送される。デコーダ11は、ニューロンIDに基づいて、ルックアップテーブル(LUT:Lookup Table)を検索してシナプス後ニューロンを決定する。この情報は、ニューラル計算のために制御ユニット12に送信される。
【0029】
制御ユニット12は、ニューラルコアの全体的な動作を制御するように設計されている。制御ユニット12は、ニューラルコアの構成モードと動作モードの両方を制御する。制御ユニット12は、単一のタイムステップの間にニューロンを更新することを保証する。
【0030】
シナプスクロスバーには、シナプスのクロスポイント配列が含まれている。各シナプスは、行(軸)と列(樹状突起)間の接続(シナプス)の表示するビットであって、読み取り、設定またはリセットが可能なビットを格納する。このビットは、デコードの完了後に書き込まれている間に、ニューラル計算のために読み取られる。
【0031】
シナプスメモリ13(以下、sym_mem13とも呼ぶ)は、クロスバーとシナプス強度の設定に使用されるシナプス情報を格納する場所である。シナプス情報は、トレーニングフェーズにおいて更新され、推論操作において読み取りが行われる。
【0032】
ニューラルメモリ14(以下、neu_mem14とも呼ぶ)は、ニューラルパラメータに使用される。各パラメータは、ニューラル計算のために読み取られる。そして、ニューラル計算が行われた後、各パラメータは、ニューロンの現在の状態を保存するために更新される。
【0033】
LIFアレイ15は、ニューラル計算が実行されるニュートロンコアの主要な計算ユニットである。データは、シナプスクロスバーから読み取られ、sym_mem13及びneu_mem14は、このユニットにおいて計算される。ここでは、複数のLIFニューロンが実装されている。より正確には、複数のニューロンが順次実行される間に、物理的なLIF計算ユニットが実装される。これは、デジタルロジックの高速動作を利用するだけでなく、エリアコストと消費電力を削減する。
【0034】
エンコーダ16は、LIFアレイ15から生成されたスパイクを詰めるように設計されている。ニューロンの膜電位が閾値を超えると、ニューロンは、スパイク(発火)を生成する。このスパイクは、エンコーダ16に送信され、そこでローカルルータを介してネットワークに流入される前にパケットに詰められる。
【0035】
構成情報17は、ニューラルコアの構成に使用される。この情報には、シナプス及びニューロンモデルに関連する構成パラメータが含まれている。ニューラルコアの構成は、システムが動作する前であってアプリケーションのマッピングが行われる間に実行される。
【0036】
次に、フォールトトレラントマルチキャスト3Dルータ(Fault-Tolerant Multicast 3D Router:以下、FTMC-3DR2)アーキテクチャについて説明を行う。
図4は、FTMC-3DRアーキテクチャを示す図である。
【0037】
各ニューロンは、数千の他のニューロンに接続できるため、FTMC-3DR2は、効率的なスパイク配信のためにマルチキャストルーティングをサポートする。FTMC-3DR2は、従来の3DRアーキテクチャに基づいている(非特許文献13、19及び21)。スパイク時間が情報のエンコードに使用されるため、FTMC-3DR2の遅延は、非常に短くなるはずである。システム10の各ルータ2には、最大7つの入力ポートと7つの出力ポートがあり、そのうちの6つの入力/出力ポートが隣接ルータ専用であり、1つの入力/出力ポートがスイッチをSNPC1に接続するために使用される。そして、FTMC-3DR2には、スイッチアロケーター22に加えて、各方向のそれぞれに対応する7つの入力ポートモジュール21が含まれる。また、FTMC-3DR2には、次のSNPC1へのスパイクの転送を処理するクロスバーモジュール23が含まれる。入力ポートモジュールは、入力バッファ21aとマルチキャストルーティングモジュール21bとの2つの主要な要素で構成されている。
【0038】
ルータ2は、バッファ書き込み(BW)、ルーティング計算(RC)、スイッチ調停(SA)、及びクロスバー横断(CT)の4つのパイプラインステージで設計されている。最初の段階において、着信スパイク(パケット)は、処理される前に入力バッファ21aに格納される。次に、パケットの送信元アドレス(XS;YS;ZS)が抽出及び計算され、出力ポートが決定される。ルーティング計算の後、選択された出力ポートを使用するために、リクエスト(sw_request信号)がスイッチアロケーター22に送信される。スイッチアロケーター22には、一般的なStall/Goフロー制御22a(非特許文献11)と、Matrix-arbiterスケジューラ22bとの2つの主要コンポーネントが含まれる。ここでは、高速計算、安価な実装及び強力な公平性を提供するために、優先度が最も低いMatrix-arbiterが採用されている(非特許文献11)。最後に、パケットは、(sw_grant信号を介して)許可された後、クロスバー23を通過する目的の出力ポートに送信される。
【0039】
ルータ2は、ルーティングパイプラインステージでのソフトエラーに加えて(非特許文献21)、入力バッファ21a、クロスバー23及びリンクにおけるハードの欠点を処理するための冗長構造リソースを使用したシステム再構成に基づく高度な回復技術に依存している(非特許文献13及び19)。これらのメカニズムは、システムにおいて発生する障害を軽減することを目的としている。
【0040】
次に、マルチキャストスパイクルーティングアルゴリズムに基づくK-meansクラスタリング(K-means Clustering:以下、KMCRと呼ぶ)について説明を行う。
【0041】
前述のように、3DメッシュのNoCは、拡張性を有する状態で複数の2D-NNレイヤーを積み重ねて大規模ネットワークを作成するのに適している。SNNでは、通常、1つのニューロンが他の多くのニューロンに接続される。したがって、ニューラルプロセッシングコア間には、大量の1対多の通信が存在する。
【0042】
本発明におけるルーティングアルゴリズムは、K-meansクラスタリング法とツリーベースのルーティングとの組み合わせに基づいている。ツリーベースのメカニズムは、マルチキャスト通信で使用される一般的な方法である。このルーティングメカニズムでは、宛先グループがソースノードから分割されて、パケットの「ツリー」ルーティングパスが形成される。ツリーベースの方法の主な欠点の1つは、中間ノードでパケットがブロックされる可能性が高いために、トラフィックが競合することである(非特許文献22)。この問題に対処するために、本発明では、宛先セットをサブセットに分割するK-meansを採用している。K-meansの採用は、シナプス後ニューロンがしばしば互いに隣接しているという観察結果から得られている。従来の研究では、SNNのニューロン間通信の局所性が高いことを示している(非特許文献23)。これにより、同じ領域内にあるニューロングループは、着信スパイクを共有することが可能になる。したがって、3D-NoCシステムにマッピングされると、SNNレイヤーのニューロンは、1つのコアまたは近くのコアに分散される。これにより、K-meansを最大限に活用して効果的なパーティションを取得し、トラフィック負荷のバランスを取るとともにNoCシステムの高い輻輳を緩和することが可能になる。
【0043】
したがって、
図5のアルゴリズムに示すように、提案されたルーティング方法は、最初に宛先をいくつかのサブグループに分割する。これを行うために、提案されたルーティング方法では、K-meansクラスタリングメカニズムを採用して、サブセットの重心と、そのラベル付きの目的地を見つける。ここでの重心は、そのサブグループ内の他のすべてとの平均距離が最小のノードである。
【0044】
アルゴリズムは、重心を決定するために、まず、利用可能なターゲットからランダムに重心を選択する。次に、アルゴリズムは、次のステップを計算する。
【0045】
(1)
図5のアルゴリズムの10行目に示すように、各目的地から重心までの距離は、マンハッタン距離を使用して計算される。
【0046】
(2)これらの距離に基づいて、目的地は、最も近い重心を持つサブグループに割り当てられる。
【0047】
(3)最後に、サブグループが一時的に形成された後、すべての要素の平均を取ることにより、重心の位置が更新される。そして、これらの更新は、重心が変更されなくなるまで反復して行われる。
【0048】
重心を決定した後、ソースノードからターゲットへのルーティングパスは、2段階によって形成される。第1段階では、一般的な方法である次元順序ルーティング(Dimension Order Routing:以下、DORと呼ぶ)を使用して、各ソースから重心までのルートを決定する(非特許文献11)。この点から、与えられたソースから重心への同じルートがマージされる。これにより、ユニキャストベースの方法と比較して、ソースから送信する必要があるスパイクパケットの数を減らすことが可能になる。XYZやZYX等のDORの特定のバリエーションを使用することは、
図6に示す例においてさらに説明されているように、最適化されてバランスが取れたトラフィックを得るためのアプリケーションマッピング方法に依存する。なお、ZYXは、Z次元がルーティング計算で最初に実行され、次にY、Xが実行されることを意味している。そして、この段階の終わりに、ソースから重心までの「ツリー」の一部が形成される。続いて、第2段階では、第1段階と同様のルーティング計算を行い、重心から目的地までの「ツリー」の他の部分を確立する。2つの段階の後、与えられた送信元ノードからその宛先への「ツリー」ルートが構築され、さらに、計算されたルーティング情報を使用することによって、ルータに接続されたルーティングテーブルが更新される。
【0049】
次に、6×3×2の3DNoC-SNNシステムにマッピングされた18×18の完全に接続されたSNNアプリケーションの例について説明を行う。ここでは、各スパイキングタイルがSNPCにおいて1つのニューロンを持っているものと仮定する。
【0050】
図6に示すように、L1におけるタイル/ノード(ソースノード)は、L2におけるすべてのノード(宛先ノード)に出力を送信する。特定の場合において、レイヤーL1におけるソースノードであるノード3(以下、このような場合、ノード3を「3」と表記する)は、レイヤーL2におけるすべてのノードにスパイクパケットを送信する必要がある。クラスター数kが2の場合、宛先セットは、「26」及び「29」を重心とする2つのサブセットに分割される(
図6(a))。次に、
図6(b)に示すように、ソースから両方の重心への「ツリー」ルートが決定される。このマッピング方法では、DORにおけるZYXバージョンが選択されている。これにより、スパイクが複数の層間リンクを通過するため、第1層の中間ノード(すなわち、「8」及び「11」)のトラフィック競合を緩和できる。一方、XYZまたはYXZのいずれかを使用する場合、L1におけるすべてのソースノードは、「11」及び「8」を介してスパイクを重心(すなわち、「26」及び「29」)に送信する必要がある。そのため、「11」と「26」とのレイヤー間のリンク、及び、「8」と「29」とのレイヤー間のリンクにおいて高いトラフィック輻輳が発生する。
図6(c)に示すように、重心から目的地へのルートが計算された後、ツリーの他の部分が形成される。最後に、
図6(d)に示すように、「3」からL2におけるそれぞれへのルーティング「ツリー」が形成される。
【0051】
最適なクラスター数の選択:前述のように、クラスターの数(k)は、提案されたルーティングアルゴリズム(KMCR)を適用する前に決定する必要がある。直感的に、kが小さい場合、宛先セットは、大きなサブセットに分割される。これにより、中間ノード(すなわち、重心)での輻輳が大きくなり、ネットワークの輻輳が大きくなる可能性がある。一方、kが大きい場合、各ソースノードは、与えられたパケットの複数のコピーを重心に送信できる。これにより、待ち時間が長くなる場合がある。kが宛先の数と等しい場合、本発明におけるルーティングアルゴリズムは、ユニキャストベースのマルチキャストのように動作する。kの選択は、主に宛先ノードの分布に依存することに言及することが重要である。幸いなことに、kの最適値を選択するために採用可能ないくつかの優れた観測が存在する。まず、前述のように、SNNには、高いニューロン間通信の局所性がある。これにより、同じグループ(レイヤー)内のニューロンが近くのニューラルプロセッシングコアにマッピングされる状況が発生する。これは、K-meansクラスタリングアルゴリズムを効率的に機能させることを可能にする。第二に、一般的なSNNアプリケーションにおける宛先ノードの数は多くない。実際、レイヤー内のニューロンの数は、多層モデルに基づいた深層学習の場合、数百から数千であり、それぞれ数百のニューロン(SNPCの場合は256のニューロン)を含めることが可能な数十のコアに収容することが可能である(非特許文献24)。したがって、SNNアプリケーションをマッピングした後、宛先の分布を視覚化することによってクラスターの数を決定することが可能になる。ただし、特定の場合における最適なkの値を選択するには、k以外の異なる値によってパフォーマンスシステムを評価する必要がある。
【0052】
上記の観察結果に基づいて、最適なkは、次の2つのステップによって決定することが可能である。
【0053】
(1)SNNアプリケーションをマッピングした後、宛先セットを視覚化することによってクラスターの数を見つける。
【0054】
(2):kの値((1)で見つけられたクラスターの数及び他のいくつかの値を含む)を変化させることによってシステムを評価し、最適なケースを選択する。
【0055】
次に、マルチキャストルーティングアルゴリズムに基づく最短経路のK-meansクラスタリング(Shortest Path K-means Clustering:以下、SP-KMCRと呼ぶ)について説明を行う。
【0056】
前述のように、KMCRでは、送信元ノードがスパイクパケットを重心に送信し、次に重心がスパイクを宛先に送信する。重心の使用において、重心から目的地までの全体の距離が最小であることが保証される。ただし、これにより、異なるソースからのトラフィックが重心に集中するため、重心へのリンクにおいてトラフィックの輻輳が発生する可能性がある。
【0057】
この問題に対処するために、本発明では、新しいルーティング方法の提案を行う。K-meansを採用することによって宛先サブセットを決定した後、本発明では、初めに、与えられたソースからサブセット内のすべてのノードまでのホップ数を計算する。次に、本発明では、各サブセットについて、ソースへの最短パスを持つノードを選択する。KMCRの場合とは異なり、ソースは、重心ノードではなく各サブセットの最短パスノードにスパイクパケットを送信する。以下、この方法をSP-KMCRと呼ぶ。これにより、トラフィックの輻輳の潜在的な問題が解消され、平均遅延も削減される。なお、新しい方法では、KMCRと比較した場合、最短パスを見つけるためにより多くの計算が必要になる。ただし、新しい方法とKMCRの両方の計算は、オフラインで実行される。したがって、実行時のオーバーヘッドは、両方のアルゴリズムで同じになる。
【0058】
次に、マルチキャストルーティングアルゴリズムに基づくフォールトトレラントにおける最短経路のK-meansクラスタリング(Fault-Tolerant Shortest Path K-means Clustering:以下、FTSP-KMCRと呼ぶ)について説明を行う。FTSP-KMCRは、SP-KMCRに基づいている。
【0059】
FTSP-KMCRの基本的な考え方は、次の通りである。
【0060】
(1)与えられたソースノードからその宛先へのプライマリルーティングツリー及びバックアップルーティングブランチのオフライン計算が実行される。
【0061】
(2)オフライン計算の後、ルーティングテーブルが構成される。
【0062】
図7は、プライマリ及びバックアップルーティングブランチを示す図である。障害のあるプライマリブランチが検出された場合、事前に計画されたバックアップブランチが使用され、障害のあるリンクが回避される。SP-KMCRメカニズムは、プライマリブランチ(実線)を計算するために使用される。一方、バックアップブランチは、プライマリブランチの代替ルートである。そして、検討中のルータ(すなわち、「son」)のために、プライマリ接続において障害が発生した場合に使用されるバックアップブランチ(破線)が計算される。例えば、「father」と「son」との間のプライマリ接続において障害がある場合(すなわち、pl
1)、bl
1及びbl
2は、「father」と「son」との間のトラフィックを維持するために使用されるバックアップブランチである。これは、pl
2とpl
1との両方に障害がある場合においても同じである。
【0063】
アルゴリズムでは、プライマリルートとバックアップルートの計算は重要な計算タスクである。これらの計算は、オフラインで実行される。これにより、提案されたルーティングアルゴリズムの実行時におけるオーバーヘッドを削減することが可能になり、SNNで発生する可能性があるタイミング違反を回避する。
図8のアルゴリズムに示されているように、ソース及び宛先アドレス(S;T)及びサブセットの数(k)は、入力として事前に定義され、出力部分は、各ソースから宛先へのプライマリツリー(P
pr)及びバックアップブランチ(P
bk)である。
【0064】
その後、次の手順に従ってルーティングの計算が行われる。
【0065】
ステップ1:6行目~19行目に示すように、宛先アドレスから、K-meansを採用して宛先サブセットを決定する。
【0066】
ステップ2:20行目~25行目に示すように、各ソースから各サブセットのノードまでの最短経路を見つける。
【0067】
ステップ3:プライマリツリーの最初の部分は、ソースノードからSPノードまで形成されます。これは、ソースから各SPノードへの次元順序ルーティング(DOR)アルゴリズムを採用し、同じルートとマージすることにより行われる。次に、DORの代替バリエーションを採用してバックアップブランチを計算し、バックアップブランチがプライマリルートから分離されることを保証する。例えば、プライマリツリーの形成においてZYXのDORが使用されている場合、バックアップブランチには、YZXやXZY等の他のバリエーションのDORを使用する。
【0068】
ステップ4:ステップ2と同じ計算に従って、SPノードから同じグループに含まれるその宛先へのプライマリツリーの2番目の部分とバックアップブランチとを計算する。
【0069】
なお、プライマリ及びバックアップルーティングパスのみがオフライン計算であることに注意が必要である。これらの計算結果は、ルータにおけるルーティングテーブルの構成に使用される。設定プロセスは、実行前のアプリケーションマッピング中に行われるため、シナプス強化(重み)が更新されるオンライン学習プロセスのカテゴリに影響しない。さらに、これにより、バックアップブランチの計算オーバーヘッドが、提案されたルーティングアルゴリズムの回復時間に影響を与えないことが保証され、システムに必要なハードウェアコストも削減される。
【0070】
次に、障害管理アルゴリズムについて説明する。ルーティング情報が構成された後、
図9に示すように、着信パケットを処理するために障害管理アルゴリズムが実装される。
【0071】
S1:与えられた着信パケットについて、そのパケットがプライマリブランチにあるかバックアップブランチにあるかを示すために、fault_flag_valが抽出される。同時に、送信元アドレスは、予想されるプライマリ出力ポートの計算にも使用される。
【0072】
S2及びS3:fault_flag_val=0である場合(すなわち、ルータが「father」または「grandfather」の役割を果たしている場合)、計算された出力ポートでは、各ルータに接続された障害検出器を使用することによって障害があるかどうかが判定される。
【0073】
S4:予想される出力ポートが判定されると、転送する前においてfault_flag_valがパケットに付加される。
【0074】
S5:これ以外の場合、出力ポートは、バックアップブランチを使用するように切り替えられ、このパケットがバックアップブランチ上にあることを次のバックアップルータに通知するために、fault_flag_valに初期値(バックアップパスにおけるホップ数と等しい値)を設定する。
【0075】
S6:fault_flag_val≠0である場合(すなわち、ルータの役割がバックアップまたは「son」ルータである場合)、出力ポートは、バックアップルートを介してルーティングされ、さらに、fault_flag_valは、0になってバックアップパスが終了するまで1ずつ減少される。
【符号の説明】
【0076】
1:SNPC
2:FTMC-3DR
10:スパイキングニューラルタイル
100:3DFT-SNNシステム