特表2019-537093(P2019-537093A)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧
特表2019-537093極度のスループットのニューラル・ネットワークのためのスケーラブル・ストリーム・シナプス・スーパーコンピュータ
<>
  • 特表2019537093-極度のスループットのニューラル・ネットワークのためのスケーラブル・ストリーム・シナプス・スーパーコンピュータ 図000003
  • 特表2019537093-極度のスループットのニューラル・ネットワークのためのスケーラブル・ストリーム・シナプス・スーパーコンピュータ 図000004
  • 特表2019537093-極度のスループットのニューラル・ネットワークのためのスケーラブル・ストリーム・シナプス・スーパーコンピュータ 図000005
  • 特表2019537093-極度のスループットのニューラル・ネットワークのためのスケーラブル・ストリーム・シナプス・スーパーコンピュータ 図000006
  • 特表2019537093-極度のスループットのニューラル・ネットワークのためのスケーラブル・ストリーム・シナプス・スーパーコンピュータ 図000007
  • 特表2019537093-極度のスループットのニューラル・ネットワークのためのスケーラブル・ストリーム・シナプス・スーパーコンピュータ 図000008
  • 特表2019537093-極度のスループットのニューラル・ネットワークのためのスケーラブル・ストリーム・シナプス・スーパーコンピュータ 図000009
  • 特表2019537093-極度のスループットのニューラル・ネットワークのためのスケーラブル・ストリーム・シナプス・スーパーコンピュータ 図000010
  • 特表2019537093-極度のスループットのニューラル・ネットワークのためのスケーラブル・ストリーム・シナプス・スーパーコンピュータ 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】特表2019-537093(P2019-537093A)
(43)【公表日】2019年12月19日
(54)【発明の名称】極度のスループットのニューラル・ネットワークのためのスケーラブル・ストリーム・シナプス・スーパーコンピュータ
(51)【国際特許分類】
   G06N 3/04 20060101AFI20191122BHJP
   G06N 3/063 20060101ALI20191122BHJP
【FI】
   G06N3/04 190
   G06N3/063
【審査請求】未請求
【予備審査請求】未請求
【全頁数】19
(21)【出願番号】特願2019-514276(P2019-514276)
(86)(22)【出願日】2017年9月26日
(85)【翻訳文提出日】2019年3月14日
(86)【国際出願番号】IB2017055830
(87)【国際公開番号】WO2018060840
(87)【国際公開日】20180405
(31)【優先権主張番号】15/282,705
(32)【優先日】2016年9月30日
(33)【優先権主張国】US
(81)【指定国】 AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JO,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.SMALLTALK
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】モダ、ダーメンドラ
(57)【要約】
【課題】 極度のスループットのニューラル・ネットワークのためのスケーラブル・ストリーム・シナプス・スーパーコンピュータを提供すること。
【解決手段】 第1のニューロシナプス・コアの複数のニューロンの発火状態が実質的に並列に判定される。複数のニューロンの発火状態が、少なくとも1つの付加的なニューロシナプス・コアに実質的に並列に送達される。
【選択図】 図1
【特許請求の範囲】
【請求項1】
第1のニューロシナプス・コアの複数のニューロンの発火状態を実質的に並列に判定することと、
前記複数のニューロンの前記発火状態を少なくとも1つの付加的なニューロシナプス・コアに実質的に並列に送達することと、
を含む、方法。
【請求項2】
前記第1のニューロシナプス・コア及び前記少なくとも1つの付加的なニューロシナプス・コアが、第1のチップ上に位置する、請求項1に記載の方法。
【請求項3】
実質的に並列な送達が、コア間ネットワークを介する、請求項2に記載の方法。
【請求項4】
実質的に並列な送達が、置換ネットワーク、Closネットワーク、又はバタフライ・ネットワークによって行われる、請求項3に記載の方法。
【請求項5】
前記複数のニューロンの前記発火状態をパイプライン化することをさらに含む、請求項1〜4のいずれか1項に記載の方法。
【請求項6】
前記複数のニューロンの前記発火状態に対応するバイナリ・ベクトルを構築することと、
前記バイナリ・ベクトルを前記少なくとも1つの付加的なニューロシナプス・コアに伝送することと、
をさらに含む、請求項1〜5のいずれか1項に記載の方法。
【請求項7】
前記第1のニューロシナプス・コアが第1のチップ上に位置し、前記少なくとも1つの付加的なニューロシナプス・コアが第2のチップ上に位置する、請求項1〜6のいずれか1項に記載の方法。
【請求項8】
前記複数のニューロンの前記発火状態を、前記第1のチップと前記第2のチップとを接続するチップ間ネットワークを介して伝送すること、
をさらに含む請求項7に記載の方法。
【請求項9】
前記チップ間ネットワークは、前記第1のチップの出ポート及び前記第2のチップの入りポートを含む、請求項8に記載の方法。
【請求項10】
前記チップ間ネットワークは、前記第1のチップの入りポートに接続された前記第1のチップの出ポートを含む、請求項8に記載の方法。
【請求項11】
前記第1及び第2のチップが第1のボード上に位置する、請求項7から請求項10までのいずれか1項に記載の方法。
【請求項12】
前記第1のチップが第1のボード上に位置し、前記第2のチップが第2のボード上に位置し、前記第1のボードと前記第2のボードとが接続されている、請求項7から請求項10までのいずれか1項に記載の方法。
【請求項13】
前記第1のボード及び前記第2のボードを含む複数のボードが階層的に配置され、前記第1のボードと前記第2のボードとがルータの階層を介して接続される、請求項12に記載の方法。
【請求項14】
複数のニューロシナプス・コアであって、前記ニューロシナプス・コアが、複数の軸索、複数のシナプス、及び複数のニューロンを含む、複数のニューロシナプス・コアと、
前記複数のニューロシナプス・コアを接続する第1のコア間ネットワークと、
を含むシステムであって、
前記第1のコア間ネットワークは、前記複数のニューロシナプス・コアの第1のニューロシナプス・コアから少なくとも1つの付加的なニューロシナプス・コアに、前記第1のニューロシナプス・コアの前記複数のニューロンの発火状態を実質的に並列に送達するように適合された、
システム。
【請求項15】
前記コア間ネットワークが、置換ネットワーク、Closネットワーク、又はバタフライ・ネットワークを含む、請求項14に記載のシステム。
【請求項16】
前記第1のコア間ネットワークは、第1のチップ上に位置し、第2のコア間ネットワークは、第2のチップ上に位置し、前記少なくとも1つの付加的なニューロシナプス・コアは、前記第2のコア間ネットワークに接続されている、請求項14又は請求項15のいずれか1項に記載のシステム。
【請求項17】
前記第1のチップ及び前記第2のチップが隣接している、請求項16に記載のシステム。
【請求項18】
前記第1のコア間ネットワークを前記第2のコア間ネットワークに接続するポートをさらに含む、請求項16又は請求項17のいずれか1項に記載のシステム。
【請求項19】
前記第1のコア間ネットワークをそれ自体に接続するポートをさらに含む、請求項14から請求項18までのいずれか1項に記載のシステム。
【請求項20】
前記第1及び第2のチップが第1のボード上に位置する、請求項16から請求項19までのいずれか1項に記載のシステム。
【請求項21】
前記第1のチップが第1のボード上に位置し、前記第2のチップが第2のボード上に位置し、前記第1のボードと前記第2のボードとが接続されている、請求項16から請求項19までのいずれか1項に記載のシステム。
【請求項22】
前記第1のボード及び前記第2のボードを含む複数のボードが階層的に配置され、前記第1のボードと前記第2のボードとがルータの階層を介して接続される、請求項21に記載のシステム。
【請求項23】
複数のニューロシナプス・コアをシミュレーションすることであって、シミュレーションされるニューロシナプス・コアが、複数のシミュレーションされる軸索、複数のシミュレーションされるシナプス、及び複数のシミュレーションされるニューロンを含む、複数のニューロシナプス・コアをシミュレーションすることと、
前記複数のシミュレーションされるニューロシナプス・コアを接続するネットワークをシミュレーションすることと、
シミュレーションされるニューロシナプス・コアのうちの第1のものの、複数のシミュレーションされるニューロンの発火状態の判定をシミュレーションすることと、
前記複数のシミュレーションされるニューロンの前記発火状態の、シミュレーションされるニューロシナプス・コアのうちの少なくとも1つの付加的なものへの送達をシミュレーションすることと、
を含む、方法。
【請求項24】
シミュレーションされる前記ネットワークが、コア間ネットワークを含む、請求項23に記載の方法。
【請求項25】
シミュレーションされる前記ネットワークが、チップ間ネットワークを含む、請求項23に記載の方法。
【請求項26】
シミュレーションされる前記ネットワークが、ボード間ネットワークを含む、請求項23に記載の方法。
【請求項27】
ニューロシナプス・ネットワークを動作させるためのコンピュータ・プログラム製品であって、
請求項1から請求項13までのいずれかに記載の方法を行うために処理回路によって実行される命令を格納した、前記処理回路によって可読のコンピュータ可読ストレージ媒体を含む、
コンピュータ・プログラム製品。
【請求項28】
コンピュータ可読媒体上に格納された、デジタル・コンピュータの内部メモリにロードすることができるコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されたときに請求項1から請求項13までのいずれか1項に記載の方法をコンピュータに実行させるソフトウェアコード部分を含む、コンピュータ・プログラム。
【請求項29】
ニューロシナプス・ネットワークをシミュレーションするためのコンピュータ・プログラム製品であって、
請求項23から請求項26までのいずれか1項に記載の方法を行うために処理回路によって実行される命令を格納した、前記処理回路によって可読のコンピュータ可読ストレージ媒体を含む、
コンピュータ・プログラム製品。
【請求項30】
コンピュータ可読媒体上に格納された、デジタル・コンピュータの内部メモリにロードすることができるコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されたときに請求項23から請求項26までのいずれか1項に記載の方法をコンピュータに実行させるソフトウェアコード部分を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、ニューロモルフィック・システムに関し、より詳細には、極度のスループットのニューラル・ネットワークのためのスケーラブル・ストリーム・シナプス・スーパーコンピュータに関する。
【背景技術】
【0002】
ニューロモルフィック・システムは、神経生物学的システムによって触発された電子回路を含む超大規模集積(VLSI)システムである。既存のこのようなニューロモルフィック・システムの短所には、高いエネルギー消費(運転費用)及び面積(機器費用)が含まれる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
従って、当該分野において上記課題に対処することが必要とされている。
【課題を解決するための手段】
【0004】
本開示の実施形態によれば、ニューラル・ネットワークを動作させる方法及びそのためのコンピュータ・プログラム製品が提供される。第1のニューロシナプス・コアの複数のニューロンの発火状態が、実質的に並列に判定される。複数のニューロンの発火状態が、少なくとも1つの付加的なニューロシナプス・コアに実質的に並列に送達される。
【0005】
本開示の実施形態によれば、ニューロモルフィック・システムが提供される。システムは、複数のニューロシナプス・コアを含む。ニューロシナプス・コアは、複数の軸索、複数のシナプス、及び複数のニューロンを含む。コア間ネットワークが、複数のニューロシナプス・コアを接続する。コア間ネットワークは、複数のニューロシナプス・コアの第1のニューロシナプス・コアから少なくとも1つの付加的なニューロシナプス・コアに、第1のニューロシナプス・コアの複数のニューロンの発火状態を実質的に並列に送達する。
【0006】
本開示の実施形態によれば、ニューラル・ネットワークをシミュレーションする方法及びそのためのコンピュータ・プログラム製品が提供される。複数のニューロシナプス・コアがシミュレーションされる。シミュレーションされるニューロシナプス・コアは、複数のシミュレーションされる軸索、複数のシミュレーションされるシナプス、及び複数のシミュレーションされるニューロンを含む。複数のシミュレーションされるニューロシナプス・コアを接続するネットワークがシミュレーションされる。シミュレーションされるニューロシナプス・コアのうちの第1のものの複数のシミュレーションされるニューロンの発火状態の実質的に並列な判定が、シミュレーションされる。複数のシミュレーションされるニューロンの発火状態の、シミュレーションされるニューロシナプス・コアのうちの少なくとも1つの付加的なものへの実質的に並列な送達が、シミュレーションされる。
【0007】
本発明をここで、単に例示の目的で、以下の図面に示されるような好ましい実施形態を参照して説明する。
【図面の簡単な説明】
【0008】
図1】本開示の実施形態によるニューロシナプス・コアを示す。
図2】本開示の実施形態によるニューロシナプス・コア及びメッシュ・ルータを示す。
図3】本開示の実施形態によるニューロシナプス・コアの数学的表現を示す。
図4】本開示の実施形態によるチップ間通信のための例示的なアーキテクチャを示す。
図5】本開示の実施形態によるニューロシナプス・ネットワークを動作させるための例示的な方法を示す。
図6】本開示の実施形態によるニューロシナプス・ネットワークをシミュレーションするための例示的な方法を示す。
図7】本開示の実施形態によるニューロモルフィック・システムの例示的なレイアウトを示す。
図8】本開示の実施形態によるニューロモルフィック・システムの例示的なレイアウトを示す。
図9】本発明の実施形態によるコンピューティング・ノードを示す。
【発明を実施するための形態】
【0009】
ニューロシナプス・コアと呼ばれる極度に低パワーのニューロシナプス処理ユニットのアレイは、エクサスケールのビッグデータ問題を解くアーキテクチャを提供する。これらのコアは、スパイクを用いて情報をコード化する。ニューロシナプス・コアのネットワークにおいて、各コア上のニューロンは、他のいずれかのニューロシナプス・コア(それ自体を含む)のいずれかの軸索と接続することができる。ニューロンは、スパイクすると、宛先コア上の標的軸索に送達されるスパイク・パケットを送る。
【0010】
デジタル・スパイキング・ニューロモルフィック・システムにおいて、情報は、スパイクによって表され、かつ送達され、各スパイクは、1又はそれより多くのビットを運ぶ、情報のデジタル・パケットである。例えば、IBM(登録商標)TrueNorthチップは、デジタル・スパイキング・ニューロモルフィック・システムであり、各スパイクは単一ビットの情報を運ぶ(バイナリスパイク)。TrueNorthのようなスパイキング・ニューラル・ネットワークは、情報のパケットをスイッチ通信ワイヤ上で送達することに基づくものであり、これにより、必要とされる配線が著しく削減される。スパイクの存在は、1を受け取ったものとして処理され、その不存在は、0を表す。いくつかの異なるスパイクコード化スキームを用いて、より多くの値をバイナリスパイクにコード化することができる。IBMは、インターナショナル・ビジネス・マシーンズ・コーポレーションの商標であり、世界中の多くの管轄区域で登録されている。
【0011】
ソースコア上のソース・ニューロンから宛先コア上の標的軸索へのスパイク通信は、宛先コア上の標的軸索に送達されるためには、水平若しくは垂直のいずれか又は両方の組合せで2Dグリッド内のルータを経由して特定の数のホップ(hop)をトラバースすることを事実上必要とする。スパイク・パケットが各ホップをトラバースするたびに、パワー及びエネルギーが消費される。
【0012】
TrueNorthのような例示的なニューロモルフィック・システム内で、スパイクがそのソース・ニューロンからその宛先軸索まで移動するのに許される時間は固定量である。この固定窓は、チック(tick)と呼ばれる。スパイクがその行程(journey)に必要とする時間は、スパイクが移動しなければならない距離、並びにスパイクが横切って移動する2Dメッシュ・ルーティング、チップ及びボードのインタフェースの数に基づいて変化する。
【0013】
各チックにおいて、コア内のニューロンが第1のニューロンから開始して最後のニューロンまで連続して逐次的に処理される。従って、上記で論じた伝送の遅延に加えて、各スパイクはまた、コア上のどのニューロンがそのスパイクを生成したかに基づいて、なんらかの付加的な固定量だけ遅延する。例えば、1コア当たり256個のニューロンを有するTrueNorthのような例示的なニューロモルフィック・システムにおいて、256番目のニューロンは、先行する255ニューロンが処理されるまで処理されない。
【0014】
本開示の種々の実施形態によれば、ニューロシナプス・プログラムは、ニューロシナプス・ネットワークを表す。ニューロシナプス・プログラムは、ニューロシナプス・ネットワークに関連した情報を含む。いくつかの実施形態において、情報は、入力スパイクに対する電子的なニューロンの応答を決定する、ニューロンの性質及び動力学を含む。例えば、ニューロンの性質及び動力学は、閾値パラメータ、漏れパラメータ、遅延パラメータ、又はリセットパラメータを含むことができる。いくつかの実施形態において、ニューロシナプス・プログラム情報は、ニューロンのシナプス接続(例えば、シナプス・クロスバーによって作成されたシナプス接続)を含む。いくつかの実施形態において、ニューロシナプス・プログラム情報は、軸索の性質(例えば、軸索のタイプ)を含む。いくつかの実施形態において、ニューロシナプス・プログラム情報は、ニューロンの出力スパイクが送達されるべき1つ又は複数の宛先(例えば、標的軸索)を含む。
【0015】
種々の実施形態によれば、ニューロシナプス・ネットワークは、ニューロシナプス・プログラムのインスタンス化を表す。ニューロシナプス・ネットワークは、ハードウェア、シミュレーション、又はその両方でインスタンス化することができる。例えば、ニューロシナプス・プログラムは、ニューロシナプス・ネットワークの1つ又は複数のインスタンスを生じさせることができ、インスタンスは、単一コア、多重コア、又は多重チップ上に存在することができる。
【0016】
種々の実施形態によれば、ニューロモルフィック・コア回路は、ニューロシナプス・プログラムによって記述される例示的なニューロシナプス・ネットワークを表す。
【0017】
種々の実施形態によれば、コアレット(corelet)又はCoreletプログラミング言語は、ニューロシナプス・プログラムの抽象化を提供するソフトウェアを表す。ニューロシナプス・プログラムの構成は、コアレットを構成することによって作成することができる。
【0018】
TrueNorthプログラムは、その外部入力及び出力に加えてニューロシナプス・コアのネットワークの完全な仕様である。種々の実施形態において、分割統治(divide−and−conquer)手法が採用され、これによりニューロシナプス・コアの大型のネットワークは、ニューロシナプス・コアのより小型のネットワークの集合を相互接続することによって構築され、小型のネットワークの各々は、それ自体がさらに小型のネットワークの集合を相互接続することによって構築することができ、以下同様に、単一のニューロシナプス・コアから成るネットワークまで下降し、これが、基本的な非分割可能な構築ブロックである。このプログラミング・パラダイムは、Coreletプログラミングと呼ばれる。
【0019】
本開示の実施形態によれば、ニューラル・ネットワークは、面積及びエネルギーの理論的下界に近づく一方で、スループットの理論的上界に近づくように最適化される。これらの3つの計量を同時に最小化することはできないことは明らかである。しかしながら、本明細書で示す方法によれば、2つを同時に最適化することができる。具体的には、エネルギー消費(これは運転費用に対応する)及び面積(これは機器費用に対応する)を可能な限り低く保つ一方で、ニューラル・ネットワーク内で利用可能な並列性を活用して、かつてないほどのスループットを生み出す。
【0020】
エネルギー消費及び面積を最小化する一方で、可変の速度で能力及びスループットを生み出すことにより、資本、運転費用、及びプログラミング費用が同様に最小化される。
本開示の実施形態によれば、極度の並列性が、高スループットを可能にする。
【0021】
図1を参照すると、本開示の実施形態によるニューロシナプス・コアが示される。いくつかの実施形態において、ニューロシナプス・コア100は、行で示される軸索101と、列で示される樹状突起102と、行と列との接合部で示されるシナプス103と、樹状突起からの入力を受けるニューロン104とを含む。いくつかの実施形態において、256個のシナプスと、256個の軸索と、256個のニューロンとが存在する。このような実施形態において、256×256=65,536シナプスが存在する。情報は、軸索101から、シナプス103によって変調されて、ニューロン104に流れる。
【0022】
いくつかの実施形態において、複数のニューロシナプス・コアがチップ上にタイル状に配置される。例示的な実施形態において、64×64グリッドのコアがタイル状に配置されて4,096コアがもたらされ、合計で1,048,576ニューロン及び268,435,456シナプスである。このような実施形態において、ニューロン、シナプス、及び短距離接続性は、物理的である。長距離接続性は、論理的である。例示的な実施形態が図2に示される。メッシュ・ルータ201がコア間の通信を提供する。所与のコア上に、ニューロン対コア202及びコア対軸索203の通信リンクも提供される。
【0023】
図3を参照すると、ニューロシナプス・コアの数学的表現が示される。数学的には、ニューロシナプス・コアは、シナプス302を介して軸索301をニューロン303に相互接続する二部グラフを実装する。各入力軸索は、1つのニューロン、すべてのニューロン、又はそれらの任意の部分集合に接続することができる。入力軸索の任意の集合からニューロンの任意の集合への接続をプログラムすることができ、フレキシブルで有能なニューラル・ネットワーク・モジュールを作り出す。
【0024】
本開示の種々の実施形態によれば、ニューロシナプス・チップの新たなアーキテクチャが提供される。このようなアーキテクチャにおいて、ニューロシナプス・コアの集合がネットワーク・オンチップによって相互接続される。いくつかの実施形態において、ネットワークをスケール変更するために、チップ間接続機能が提供される。
【0025】
いくつかのこのようなアーキテクチャにおいて、各時間ステップ(すなわちチック)内で、コア内のニューロンは、逐次的には処理されない。代わりに、コア内のすべてのニューロンが1つの軸索上で一度に並列に動作する。各ニューロンがチック内で発火したかどうかを示すベクトルが構築される。上記の例を採用すると、256個のニューロンを有するコアの発火状態は、256次元のバイナリ・ベクトルとしてコード化することができる。この発火ベクトルは、ニューロシナプス・コア間で通信される。いくつかの実施形態において、すべてのニューロンは、パイプライン化され、複数の軸索を高速動作のための待ち行列に入れることができる。
【0026】
本開示の実施形態によれば、コア間の接続性を、置換の観点で考えることができる。例えば、N個のニューロン及びN個の軸索を各々が有するC個のコアを考える。ニューロン発火活動の合計ベクトルは、長さC×Nのバイナリ・ベクトルである。このC×Nベクトルは、C×N軸索に通信される。それゆえ、これはC×NニューロンからC×N軸索への置換として考えることができる。従って、種々の実施形態において、オンチップのネットワークは、置換ネットワーク、Closネットワーク、バタフライ・ネットワーク、平坦化バタフライ・ネットワーク(flattened butterfly network)、又は当該分野で知られた他のネットワークとして実装することができる。
【0027】
ここで図4を参照すると、チップ間通信のための例示的なアーキテクチャが示されている。上述のような置換ネットワークとして実装された所与のチップ401は、5つの入りポート(incoming port)411・・・415と、5つの出ポート(outgoing port)421・・・425とを含む。それゆえ、オンチップ・ネットワークは、ウェスト(West)ポート、イースト(East)ポート、ノース(North)ポート、及びサウス(South)ポートから、並びにチップ内から、ニューロン発火のバイナリ・ベクトルを5つまで受け取る。これは、これら5つのバイナリ・ベクトルを5つまでの宛先、すなわちウェスト・ポート、イースト・ポート、ノース・ポート、及びサウス・ポート並びにチップ内のコアにルーティングする。いくつかの例示的な実施形態において、チップのレイアウトを説明するのに東西南北の方位が使用されているが、本開示はあらゆるチップレイアウトに適用可能であることが認識されるであろう。本開示は、4つより多い又は少ない隣接チップを有するアーキテクチャにも適用可能である。例えば、チップの3次元レイアウトは、6つまでの隣接チップを含むことができ、その結果、7つまでの入りポート及び7つまでの出ポートがもたらされる。
【0028】
本開示の実施形態は、極度に高速のコア動作のために、コア内のニューロンの完全な並列性、並びにパイプライン化された動作を利用する。各コアは、データの局所性を提供する。コア間の通信は、極度に高速のネットワーク動作のために、時間に拘束された(time-bound)、かつ並列な様式で提供され、このことは、2Dメッシュルータ・アーキテクチャ内でメッセージをシリアル化する必要性を排除し、各コアの並列性を利用する。これら2つの利点を組み合わせることで、モジュール方式の、スケーラブルな、タイル状に配置可能な設計で、かつてないスループットを達成することが可能になる。
【0029】
いくつかの実施形態において、各ニューロシナプス・コアは、時分割多重化される。いくつかの実施形態において、係数Tを適用して、コア当たり異なる軸索とコア当たり異なるニューロンとがコアを横断して同じシナプス行列を介して相互接続されたT個のコアを実装する。このような実施形態において、各時間ステップ(すなわちチック)は、T個のサブ時間ステップに分割される。同期的に、各サブ時間ステップt:0...T−1内で、各軸索は、送達されることを必要とするスパイクについてチェックされる。スパイクが送達されることを必要とする場合、ニューロンjごとに、その状態がシナプス重みsijの関数として更新される。ニューロンjごとに、その新たなニューロン状態が、その以前の状態、そのパラメータ、及びその入力の関数として計算され、次いでスパイクについてチェックされる。スパイクを有する場合、その宛先位置が探索され、スパイク・パケットが生成され、ニューロンjが静止状態に戻る前にネットワーク上で送られる。非同期的に、スパイク・パケットがネットワークから受け取られ、軸索バッファが更新される。
【0030】
いくつかの実施形態において、所与のコア上の各ニューロンに対して同じパラメータが用いられ、それゆえストレージが低減される。いくつかの実施形態において、クロックゲーティングを用いた同期設計が使用される。高いネットワーク複雑性を有するいくつかの実施形態において、入力ポートの最大可能数mと、C個のコアとを有するオンチップ・ネットワークが提供される。このような実施形態において、コア当たりのニューロン回路の数は、m/Cである。
【0031】
いくつかの実施形態において、16×16コア・アレイを有するネットワークが64分割の時分割多重化で提供される。しかしながら、種々の他の実施形態において、コアの数は、ネットワーキングに起因するオーバーヘッドが計算を圧倒しないように選択される。一般に、所与のネットワークの速度は、最長のワイヤの長さがボトルネックになるか又はそれによって制限される。同様に、ネットワークの速度は、種々のポートにおけるインタフェースの速度によって制限される。それゆえ、オフチップ・ネットワークとオンチップ・ネットワークとの間の速度の差がボトルネックとなり得る。
【0032】
上記の説明から認識されるように、本開示の実施形態によれば、樹状突起手法の代わりに軸索手法が採用される。メッシュ・ルーティングから置換ネットワークへのシフトは、非同期回路をクロックゲーティングされた同期回路で置き換えることを可能にすることが認識されるであろう。このようにして、開発の時間及び労力が低減される。組込み及びその後の改訂の容易さが、このような実施形態を実質的により簡素にする。
【0033】
ここで図5を参照すると、本開示の実施形態によるニューロシナプス・ネットワークを動作させるための例示的な方法が示される。501において、第1のニューロシナプス・コアの複数のニューロンの発火状態が判定される。いくつかの実施形態において、発火状態は、実質的に並列に判定される。502において、複数のニューロンの発火状態が、少なくとも1つの付加的なニューロシナプス・コアに送達される。いくつかの実施形態において、発火状態は、実質的に並列に送達される。いくつかの実施形態において、発火状態は、チップ内ネットワークを介して送達される。
【0034】
図6を参照すると、本開示の実施形態によるニューロシナプス・ネットワークをシミュレーションするための例示的な方法が示される。601において、複数のニューロシナプス・コアがシミュレーションされる。いくつかの実施形態において、シミュレーションされるニューロシナプス・コアは、複数のシミュレーションされる軸索及び複数のシミュレーションされるニューロンを含む。602において、複数のシミュレーションされるニューロシナプス・コアを接続するコア間ネットワークが、シミュレーションされる。603において、シミュレーションされるニューロシナプス・コアのうちの第1のものの、複数のシミュレーションされるニューロンの発火状態が判定される。いくつかの実施形態において、発火状態は、実質的に並列に判定される。604において、複数のシミュレーションされるニューロンの発火状態は、シミュレーションされるニューロシナプス・コアのうちの少なくとも1つの付加的なものに送達される。いくつかの実施形態において、発火状態は、実質的に並列に送達される。いくつかの実施形態において、発火状態は、チップ内ネットワークを介して送達される。
【0035】
図7及び図8を参照すると、本開示の実施形態によるニューロモルフィック・システムの例示的なレイアウトが示される。ボード701は、チップ702のような複数のチップを含む。チップ702のような各チップは、コア703のような複数のコアを含む。コア703のような各コアは、ネットワーク704によって接続され、これは上述のような置換ネットワークとすることができる。
【0036】
ここで図9を参照すると、コンピューティング・ノードの例の模式図が示される。コンピューティング・ノード10は、好適なコンピューティング・ノードの一例にすぎず、本明細書で説明される本発明の実施形態の使用又は機能の範囲に関するなんらかの制限を示唆することを意図するものではない。上記に関係なく、コンピューティング・ノード10は、本明細書で上述された機能のいずれかを実装及び/又は実施することができる。
【0037】
コンピューティング・ノード10内に、他の多数の汎用又は専用コンピューティング・システム環境又は構成で動作可能な、コンピュータ・システム/サーバ12が存在する。コンピュータ・システム/サーバ12と共に用いるのに好適であり得る周知のコンピューティング・システム、環境、及び/又は構成の例として、これらに限定されるものではないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式又はラップトップ型デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セットトップボックス、プログラム可能民生電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、及び上記のシステム若しくはデバイス等のいずれかを含む分散型クラウド・コンピューティング環境が含まれる。
【0038】
コンピュータ・システム/サーバ12は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム/サーバ12は、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で実施することができる。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカル及び遠隔両方のコンピュータ・システム・ストレージ媒体に配置することができる。
【0039】
図9に示されるように、コンピューティング・ノード10のコンピュータ・システム/サーバ12は、汎用コンピューティング・デバイスの形で示される。コンピュータ・システム/サーバ12のコンポーネントは、これらに限定されるものではないが、1つ又は複数のプロセッサ又は処理ユニット16、システム・メモリ28、及びシステム・メモリ28を含む種々のシステム・コンポーネントをプロセッサ16に結合するバス18を含むことができる。
【0040】
バス18は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む、いくつかのタイプのバス構造のうちのいずれかの1つ又は複数を表す。限定ではなく例としては、このようなアーキテクチャは、業界標準アーキテクチャ(Industry Standard Architecture、ISA)バス、マイクロ・チャネル・アーキテクチャ(Micro Channel Architecture、MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカル・バス、及びPeripheral Component Interconnect(PCI)バスを含む。
【0041】
コンピュータ・システム/サーバ12は、典型的には、種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ12がアクセス可能ないずれかの利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体の両方と、取り外し可能媒体及び取り外し不能媒体の両方とを含む。
【0042】
システム・メモリ28は、ランダム・アクセス・メモリ(RAM)30及び/又はキャッシュ・メモリ32など、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ12は、他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取り外し不能の不揮発性磁気媒体(図示されておらず、典型的には「ハード・ドライブ」と呼ばれる)との間の読み出し及び書き込みのために、ストレージ媒体34を設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク(例えば、「フロッピー・ディスク」)との間の読み出し及び書き込みのための磁気ディスク・ドライブと、CD−ROM、DVD−ROM又は他の光媒体などの取り外し可能な不揮発性光ディスクとの間の読み出し及び書き込みのための光ディスク・ドライブとを設けることができる。このような例においては、それぞれを、1つ又は複数のデータ媒体インタフェースによって、バス18に接続することができる。以下でさらに示され説明されるように、メモリ28は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。
【0043】
限定ではなく例として、メモリ28内に、プログラム・モジュール42のセット(少なくとも1つ)を有するプログラム/ユーティリティ40、並びにオペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データを格納することができる。オペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの何らかの組み合わせの各々は、ネットワーキング環境の実装を含むことができる。プログラム・モジュール42は、一般に、本明細書で説明される本発明の実施形態の機能及び/又は方法を実行する。
【0044】
コンピュータ・システム/サーバ12は、キーボード、ポインティング・デバイス、ディスプレイ24等のような1つ又は複数の外部デバイス14;ユーザがコンピュータ・システム/サーバ12と対話することを可能にする1つ又は複数のデバイス;及び/又はコンピュータ・システム/サーバ12が1つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス(例えば、ネットワーク・カード、モデム等)と通信することもできる。このような通信は、入力/出力(I/O)インタフェース22を経由して行うことができる。さらにまた、コンピュータ・システム/サーバ12は、ネットワーク・アダプタ20を介して、ローカル・エリア・ネットワーク(LAN)、汎用広域ネットワーク(WAN)、及び/又は公衆ネットワーク(例えば、インターネット)などの1つ又は複数のネットワークと通信することもできる。示されるように、ネットワーク・アダプタ20は、バス18を介して、コンピュータ・システム/サーバ12の他のコンポーネントと通信する。図示されないが、コンピュータ・システム/サーバ12と共に他のハードウェア及び/又はソフトウェア・コンポーネントを使用できることを理解されたい。例として、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部のディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システム等が含まれる。
【0045】
本発明は、システム、方法、及び/又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに、本発明の態様を実行させるためのコンピュータ可読プログラム命令をそこに有するコンピュータ可読ストレージ媒体(単数又は複数)を含むことができる。
【0046】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持し、格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの:即ち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブルなコンパクト・ディスク読み出し専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチカード若しくはそこに命令が記録された溝内の隆起構造などの機械的符号化デバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波又は他の自由に伝搬する電磁波、導波路若しくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、又は配線を通じて伝送される電気信号のような、一時的信号それ自体として解釈されるべきではない。
【0047】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、及び/又は無線ネットワークなどのネットワークを介して外部コンピュータ若しくは外部ストレージ・デバイスに、ダウンロードすることができる。ネットワークは、銅製伝送ケーブル、光伝送ケーブル、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び/又はエッジ・サーバを含むことができる。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体内に格納するためにコンピュータ可読プログラム命令を転送する。
【0048】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、ミリコード、ファームウェア命令、状態設定データ、又はSmalltalk、C++等などのオブジェクト指向型プログラミング言語、及び、「C」プログラミング言語、若しくは同様のプログラミング言語のような従来の手続き型プログラミング言語を含む1つ又は複数のプログラミング言語のいずれかの組み合わせで書かれたソース・コード若しくはオブジェクト・コードのいずれかとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、スタンドアロンのソフトウェア・パッケージとして、一部がユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある(例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて)。いくつかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又はプログラム可能論理アレイ(PLA)を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を用いて電子回路を個人化することによって、コンピュータ可読プログラム命令を実行することができる。
【0049】
本発明の態様は、本発明の実施形態による方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図及び/又はブロック図を参照して、本明細書で説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【0050】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するための手段を作り出すようにすることができる。これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、及び/又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、内部に命令が格納されたコンピュータ可読ストレージ媒体が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む製品を含むようにすることもできる。
【0051】
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実装プロセスを生成し、それにより、コンピュータ、他のプログラム可能装置、又は他のデバイス上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実行するようにもできる。
【0052】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態によるシステム、方法及びコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含むモジュール、セグメント、又は命令の部分を表すことができる。いくつかの代替的な実装において、ブロック内に記載された機能は、図面内に記載された順序とは異なる順序で行われ得ることもある。例えば、連続して示された2つのブロックが、関与する機能に応じて、実際には、実質的に同時に実行されることもあり、又は、ときにはブロックが逆順に実行されることもある。また、ブロック図及び/又はフローチャート図の各ブロック、並びにブロック図及び/又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を行う専用ハードウェア・ベースのシステムによって、又は専用ハードウェアとコンピュータ命令との組み合わせによって実装できることにも留意されたい。
【0053】
本発明の種々の実施形態の説明が例証の目的のために提示されたが、これらは、網羅的であること、又は本発明を開示された形態に制限することを意図するものではない。当業者には、説明される実施形態の範囲から逸脱することなく、多くの修正及び変形が明らかであろう。本明細書で用いられる用語は、実施形態の原理、実際の適用、又は市場で見られる技術に優る技術的改善を最もよく説明するため、又は、当業者が、本明細書に開示される実施形態を理解するのを可能にするために選択された。
【符号の説明】
【0054】
10:コンピューティング・ノード
100:ニューロシナプス・コア
101、301:軸索
102:樹状突起
103、302:シナプス
104、303:ニューロン
201:メッシュ・ルータ
401:チップ
411、412、413、414、415:入りポート
421、422、423、424、425:出ポート
701:ボード
702:チップ
703:コア
704:ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
【国際調査報告】