(57)【要約】【課題】マルチコア・ニューロモーフィック・システムのためのアーキテクチャを提供する。【解決手段】様々な実施形態において、ニューラル・ネットワーク記述が読取られる。このニューラル・ネットワーク記述は複数の論理コアを表現する。これら複数の論理コアの間の複数のプレシデンス型順序関係が判断される。複数のタイム・スライスにおいて、複数のプレシデンス型順序関係に基づいて、複数の論理コアを複数の物理コアに割り当てるスケジュールが生成される。このスケジュールに基づいて、ニューラル・ネットワーク記述の複数の論理コアが複数の物理コア上で実行される。【選択図】図１
2020505666.tif 000002
【特許請求の範囲】
【請求項１】
複数の論理コアを表現するニューラル・ネットワーク記述を読み取るステップと、
前記複数の論理コアの間の複数のプレシデンス型順序関係を決めるステップと、
前記複数のプレシデンス型順序関係に基づいて、複数のタイム・スライスにおいて、前記複数の論理コアを複数の物理コアに割り当てるスケジュールを生成するステップと、
を含む方法。
【請求項２】
前記スケジュールに基づいて、前記複数の物理コア上で、前記ニューラル・ネットワーク記述の前記複数の論理コアを実行するステップ、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記ニューラル・ネットワーク記述が、前記複数の論理コア間に複数の有向エッジを含む、
請求項１に記載の方法。
【請求項４】
前記スケジュールを生成するステップが、前記複数の論理コアに対応する有向非巡回グラフを生成するステップを含む、請求項３に記載の方法。
【請求項５】
前記複数の論理コアの数が前記複数の物理コアよりも多い、請求項１に記載の方法。
【請求項６】
前記ニューラル・ネットワーク記述が、ニューロン・バイアス、ニューロン宛先、またはシナプス重みを含む、請求項１に記載の方法。
【請求項７】
前記複数のタイム・スライスの一タイム・スライス内で、前記割り当てられた論理コアに従って、前記複数の物理コアを設定するステップ、
をさらに含む、請求項１に記載の方法。
【請求項８】
前記複数の論理コアの間の複数のアイデンティティ関係性を判断するステップ、
をさらに含み、
前記スケジュールを生成するステップが、連続するタイム・スライスにおいて、同一の論理コアを同じ物理コアに優先的に割り当てるステップを含む、
請求項１に記載の方法。
【請求項９】
ニューロモーフィック・コアを再設定するステップと、
前記ニューロモーフィック・コアへの複数の入力を受信するステップと、
第一タイム・スライスにおいて、ニューロモーフィック・コアの第一の複数の出力を計算するステップと、
前記ニューロモーフィック・コアの第二の複数の出力を送信するステップであって、前記第二の複数の出力は第二タイム・スライスで生成され、前記第二タイム・スライスは前記第一タイム・スライスより先行する、前記送信するステップと、
を含む方法。
【請求項１０】
前記計算するステップが、前記受信するステップと同時並行に行われ、
前記送信するステップが、前記計算するステップと同時並行に行われる、
請求項９に記載の方法。
【請求項１１】
前記ニューロモーフィック・コアを再設定するステップが、コア外メモリから複数の設定パラメータを読み取るステップを含む、請求項１０に記載の方法。
【請求項１２】
前記コア外メモリが、前記ニューロモーフィック・コアと同じチップ上にある、請求項１１に記載の方法。
【請求項１３】
前記コア外メモリが、前記ニューロモーフィック・コアとは異なるチップ上にある、請求項１１に記載の方法。
【請求項１４】
前記複数の設定パラメータが、ニューロン・バイアス、ニューロン宛先、またはシナプス重みを含む、請求項１１に記載の方法。
【請求項１５】
前記第二の複数の出力が、コア間ネットワークを介して送信される、請求項１０に記載の方法。
【請求項１６】
前記複数の入力がコア間ネットワークを介して受信され、前記方法が、
前記複数の入力を前記ニューロモーフィック・コアの軸索バッファに書き込むステップ、
をさらに含む、請求項１０に記載の方法。
【請求項１７】
前記複数の入力が、コア外メモリから読み取られる、請求項１０に記載の方法。
【請求項１８】
前記複数の入力が、前記ニューロモーフィック・コアに連結された軸索バッファから読み取られる、請求項１０に記載の方法。
【請求項１９】
複数の軸索および複数のニューロンを含む、再設定可能ニューロモーフィック・コアと、
前記複数の軸索に連結された軸索バッファと、
前記ニューロモーフィック・コアに連結されたコア外メモリと、
前記ニューロモーフィック・コアに連結されたコア間ネットワークと、
を含むシステムであって、
前記再設定可能ニューロモーフィック・コアが、
前記コア外メモリから複数の設定パラメータを読み取り、
前記複数の設定パラメータに沿って再設定し、
複数の入力を受信し、
第一タイム・スライスにおいて第一の複数の出力を計算し、
第二タイム・スライスで生成された出力を、前記コア間ネットワークを介して送信し、前記第二タイム・スライスは前記第一タイム・スライスより先行するように動作可能である、
システム。
【請求項２０】
前記計算が、前記受信と同時並行に行われ、
前記送信が、前記計算と同時並行に行われる、
請求項１９に記載のシステム。
【請求項２１】
前記複数の設定パラメータが、ニューロン・バイアス、ニューロン宛先、またはシナプス重みを含む、請求項２０に記載のシステム。
【請求項２２】
前記ニューロモーフィック・コアが、前記コア間ネットワークを介して前記第二の複数の出力を送信するように動作可能である、請求項２０に記載のシステム。
【請求項２３】
前記ニューロモーフィック・コアが、コア間ネットワークを介して前記複数の入力を受信するように動作可能であり、前記ニューロモーフィック・コアが、前記複数の入力を前記軸索バッファに書き込むように動作可能である、請求項２０に記載のシステム。
【請求項２４】
前記ニューロモーフィック・コアが、前記コア外メモリから前記複数の入力を読み取るように動作可能である、請求項２０に記載のシステム。
【請求項２５】
前記ニューロモーフィック・コアが、前記軸索バッファから前記複数の入力を読み取るように動作可能である、請求項２０に記載のシステム。
【請求項２６】
ニューラル・ネットワークを設定するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、媒体に具現化されたプログラム命令を有するコンピュータ可読ストレージ媒体を含み、前記プログラム命令は、請求項１〜１８のいずれか一項に記載の前記方法をプロセッサに実行させるため、前記プロセッサによって実行可能である、コンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の諸実施形態は、マルチコア・ニューロモーフィック・システムのためのアーキテクチャに関し、さらに具体的には、面積高効率、再設定可能、エネルギ高効率、速度高効率のニューラル・ネットワーク基板に関する。
【背景技術】
【０００２】
ニューロシナプティック・コアと呼ばれる極めて低電力のニューロシナプティック処理ユニットは、エクサスケールビッグデータ問題を解決するためのアーキテクチャを提供する。これらのコアは、情報を符号化するためにスパイクを使用する。ニューロシナプティック・コアのネットワークにおいて、各コア上のニューロンは任意の他のニューロシナプティック・コアの（自分を含めた）任意の軸索に連結することが可能である。ニューロンがスパイクするとき、該ニューロンはスパイク・パケットを送信し、それが宛先コア上の標的軸索に配信される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
面積高効率、再設定可能、エネルギ高効率、速度高効率のニューラル・ネットワークのための方法、システム、およびコンピュータ・プログラム製品を提供する。
【課題を解決するための手段】
【０００４】
本発明の様々な実施形態によれば、ニューラル・ネットワークを設定するための方法およびコンピュータ・プログラム製品が提供される。ニューラル・ネットワーク記述が読み取られる。このニューラル・ネットワーク記述は複数の論理コアを表現する。これら複数の論理コアの間の複数のプレシデンス型順序関係が決められる。複数のタイム・スライスにおいて、複数のプレシデンス型順序関係に基づいて、複数の論理コアを複数の物理コアに割り当てるスケジュールが生成される。このスケジュールに基づいて、ニューラル・ネットワーク記述の複数の論理コアが、複数の物理コア上で実行される。
【０００５】
本発明の様々な実施形態によれば、ニューラル・ネットワークを動作するための方法およびコンピュータ・プログラム製品が提供される。ニューロモーフィック・コアが再設定される。ニューロモーフィック・コアへの複数の入力が受信される。複数の入力を受信するのとほぼ同時並行に、ニューロモーフィック・コアの第一の複数の出力が第一タイム・スライスで計算される。この計算とほぼ同時並行に、該ニューロモーフィック・コアの第二の複数の出力が送信される。第二の複数の出力は、第二タイム・スライスで生成される。第二タイム・スライスは第一タイム・スライスより先行する。
【０００６】
本発明の様々な実施形態によれば、ニューロシナプティック・システムが提供される。複数の軸索および複数のニューロンを含む再設定可能ニューロモーフィック・コアが提供される。軸索バッファがこれら複数の軸索に連結される。コア外のメモリがニューロモーフィック・コアに連結される。コア間ネットワークがニューロモーフィック・コアに連結される。この再設定可能ニューロモーフィック・コアは、コア外メモリから複数の設定パラメータを読み取るように動作可能である。再設定可能なニューロモーフィック・コアは、複数の入力を処理する前に、複数の設定パラメータに沿って再設定するように動作可能である。再設定可能ニューロモーフィック・コアは、複数の入力を受信するように動作可能である。再設定可能ニューロモーフィック・コアは、第一タイム・スライスにおいて、複数の入力を受信するのとほぼ同時並行に第一の複数の出力を計算するように動作可能である。再設定可能ニューロモーフィック・コアは、この計算とほぼ同時並行に、第二タイム・スライスで生成された出力を、コア間ネットワークを介して送信するように動作可能である。第二タイム・スライスは第一タイム・スライスより先行する。
【図面の簡単な説明】
【０００７】
【図１】本発明の諸実施形態による、ニューロシナプティック・コアを表す。
【図２】本発明の諸実施形態による、ニューロシナプティック・コアおよびメッシュ・ルータを表す。
【図３】本発明の諸実施形態による、例示的な、論理から物理へのスケジューリング・プロセスを示す。
【図４】本発明の諸実施形態による、コア・バッファの例示的なレイアウトを示す。
【図５】本発明の諸実施形態による、ニューラル・ネットワークを設定するための例示的なプロセスを示す。
【図６】本発明の諸実施形態による、コンピューティング・ノードを表す。
【発明を実施するための形態】
【０００８】
ニューロシナプティック・コアと呼ばれる極めて低電力のニューロシナプティック処理ユニットは、エクサスケールビッグデータ問題を解決するためのアーキテクチャを提供する。これらのコアは、情報を符号化するためにスパイクを使用する。ニューロシナプティック・コアのネットワークにおいて、各コア上のニューロンは任意の他のニューロシナプティック・コアの（自分を含めた）任意の軸索に連結することが可能である。ニューロンがスパイクするとき、該ニューロンはスパイク・パケットを送信し、それが宛先コア上の標的軸索に配信される。
【０００９】
デジタル・スパイキング・ニューロモーフィック・システムでは、情報はスパイクで表現され配信され、各スパイクは、１つ以上のビットを搬送する情報のデジタル・パケットである。例えば、ＩＢＭのＴｒｕｅＮｏｒｔｈ（ＩＢＭ社の登録商標）チップは、各スパイクが単一ビットの情報を搬送する（バイナリ・スパイク）デジタル・スパイキング・ニューロモーフィック・システムである。ＴｒｕｅＮｏｒｔｈ（ＩＢＭ社の登録商標）などのスパイキング神経ネットワークは、交換通信線を介した情報パケットの配信に基づいており、これにより、必要な配線を大幅に削減している。スパイクの存在は１の受信として、その不在は０を表すとして取り扱われる。いくつかの異なるスパイク符号化スキームを用いて、もっと多くの値をバイナリ・スパイクの中に符号化することができる。
【００１０】
発信元コア上の発信元ニューロン(source neuron)から、宛先コア上の標的軸索へのスパイク通信は、該宛先コア上の標的軸索への配信を行うために、２Ｄ格子中のルータを経由して水平方向もしくは垂直方向または両者を組合せて、いくつかの数のホップを通過することが実際上必要となろう。スパイク・パケットが通過する各ホップは、電力およびエネルギを消費する。
【００１１】
ＴｒｕｅＮｏｒｔｈ（ＩＢＭ社の登録商標）などの典型的なニューロモーフィック・システム内では、スパイクがその発信元ニューロンから宛先軸索に進むために一定の時間長が許される。この固定ウィンドウは、ティックと言われる。スパイクがその行程のために必要とする時間は、スパイクが進まなければならない距離、ならびにスパイクが通過する２−Ｄメッシュ経路、チップ、およびボード・インターフェースの数に基づいて変化する。
【００１２】
コア中のニューロン群は、第一ニューロンから開始され連続して最後のニューロンまで、ティック毎に順次に処理される。したがって、上記の伝送遅延に加えて、各スパイクは、コア上のニューロンがそれを生成したことによるいくらかの追加的な一定長の遅延を受ける。例えば、コア当たり２５６のニューロンを有するＴｒｕｅＮｏｒｔｈ（ＩＢＭ社の登録商標）などの典型的なニューロモーフィック・システムでは、２５６番目のニューロンは、先行する２５５個のニューロンが処理されるまで処理されない。
【００１３】
本発明の様々な実施形態によれば、ニューロシナプティック・プログラムは、ニューロシナプティック・ネットワークを表す。ニューロシナプティック・プログラムは、ニューロシナプティック・ネットワークに関する情報を含む。いくつかの実施形態において、この情報は、入力スパイクに対する電子ニューロンの応答を決めるニューロンの特性および動態を含む。例えば、ニューロンの特性および動態は、閾値パラメータ、リーク・パラメータ、遅延パラメータ、またはリセット・パラメータを含み得る。本発明のいくつかの実施形態において、ニューロシナプティック・プログラム情報は、ニューロンのシナプス結合（例えば、シナプス・クロスバによって作られたシナプス結合）を含む。本発明のいくつかの実施形態において、ニューロシナプティック・プログラム情報は軸索特性（例えば軸索の型）を含む。本発明のいくつかの実施形態では、ニューロシナプティック・プログラム情報は、当該ニューロンの出力スパイクが配信されるべき１つ以上の宛先（例えば標的軸索）を含む。
【００１４】
本発明の様々な実施形態によれば、ニューロシナプティック・ネットワークは、ニューロシナプティック・プログラムのインスタンス化を表す。ニューロシナプティック・ネットワークは、ハードウェアの中で、シミュレーションの中で、またはその両方でインスタンス化することが可能である。例えば、ニューロシナプティック・プログラムは、ニューロシナプティック・ネットワークの１つ以上のインスタンスを生起させることが可能で、それらのインスタンスは、単一のコア、複数のコア、または複数のチップ上に駐在させることができる。
【００１５】
本発明の様々な実施形態によれば、ニューロモーフィック・コア回路は、ニューロシナプティック・プログラムによって記述された、一例のニューロシナプティック・ネットワークを表す。
【００１６】
本発明の様々な実施形態によれば、コアレットまたはコアレット・プログラミング言語は、ニューロシナプティック・プログラムの抽出を提供するソフトウェアを表す。ニューロシナプティック・プログラムの構成はコアレットを組成することによって生成することができる。
【００１７】
ＴｒｕｅＮｏｒｔｈ（ＩＢＭ社の登録商標）プログラムは、ニューロシナプティック・コアのネットワークの、その外部入力および出力併せての完全仕様（complete specification）である。本発明の様々な実施形態では、分割統治式アプローチが用いられ、これによりニューロシナプティック・コアの大きなネットワークが、ニューロシナプティック・コアのより小さなネットワークのセットを相互連結することによって構築され、同様に、これらのより小さなネットワークの各々は、さらに小さなネットワークのセットと、順々に、基本的な不可分の基礎要素である単一ニューロシナプティック・コアから成るネットワークにまで下げて相互連結して構築することができよう。このプログラミング・パラダイムは、コアレット・プログラミングと言われる。
【００１８】
上記の典型例の説明から、ニューラル・ネットワークが、基本的に並列化され分散されており、これにより様々な実施形態で利用できる本来的な速度上の利点が得られることがよく理解できよう。同様に、ニューラル・ネットワークは、ローカル化されたメモリの使用およびイベント駆動型計算によって、基本的にエネルギ高効率でもある。但し、ニューラル・ネットワークは、ニューロン毎に専用のハードウェアを必要とし得る。専用ハードウェアの必要性は、再書込み可能性および再プログラム可能性を活用する一般的なＣＭＯＳ技法には背反する。これに応じ、本開示は、プレーナ型ＣＭＯＳ技術内の専用ハードウェアに固有の制限を軽減しながら、ニューラル・ネットワークの並列処理およびエネルギ高効率の利点を保つことを可能にする。
【００１９】
脳からインスパイアされる（またはニューロモーフィック）コンピューティングは、タイル構成性（tileability）を使ってエネルギ高効率と速度高効率とを組合せる。但し、これらの利点は、一般に、面積効率を犠牲にして得られ、これは、従来型のフォンノイマン・アーキテクチャでは一般に、より高コストである。したがって、様々な実施形態において、本開示は、面積を最適化しながら、エネルギ上の利点およびニューロモーフィック・コンピューティングの並列処理を維持するニューロモーフィック・システムを提供する。具体的に、様々な実施形態において、物理ネットワークの上に論理ネットワークを折り畳むことによって面積が節減される。このようにすれば、エネルギ増加の対価によって繰り返し計算が利用できる。様々な実施形態において、再設定可能なシナプス重み、ニューロン・パラメータ、ニューロン・バイアス、およびニューロン宛先が、折り畳みプロセスを可能にする。
【００２０】
図１を参照すると、本発明の諸実施形態による、ニューロシナプティック・コアが表されている。本発明のいくつかの実施形態において、ニューロシナプティック・コア１００は、行として表されている軸索１０１、列として表されている樹状突起１０２、行と列との接合点として表されているシナプス１０３、および樹状突起からの入力を受信するニューロン１０４を含む。本発明のいくつかの実施形態では、２５６個の軸索および２５６個のニューロンがある。本発明のかかる実施形態においては、２５６×２５６＝６５，５３６のシナプスがある。情報は、軸索１０１から、シナプス１０３に調節されてニューロン１０４に流れる。本発明の様々な実施形態において、これらシナプスはバイナリであってよく、シナプス重みに関連付けることができる。
【００２１】
本発明のいくつかの実施形態において、複数のニューロシナプティック・コアがチップ上にタイル構成される。ある例示的な実施形態において、コアの６４×６４格子がタイル構成され、合計１，０４８，５７６のニューロンと２６８，４３５，４５６のシナプスに対する４，０９６のコアが得られる。本発明のかかる実施形態において、このコア回路によって、ニューロン、シナプス、および短距離接続性が実装される。長距離接続性は論理上のものである。或る例示的な実施形態が図２に表されている。メッシュ・ルータ２０１は、コア間の通信を提供する。また、所与のコア上では、ニューロンからコアへの通信リンク２０２、およびコアから軸索への通信リンク２０３が設けられる。
【００２２】
本発明の様々な実施形態による論理コアは、ａ個の入力（受取り）エッジおよびｎ個の出力（送出）エッジを備えたノードとして定義することができる。論理コアｃは、数式１による計算を実行し、Ｎｃを標的Ｔｃに送信する。数式１において、ＮとＢとは、出力ニューロンとバイアスとのｎ×１のベクトルであり、Ａは入力軸索のａ×１のベクトルであり、Ｗはｎ×ａの重みマトリックスであり、σｃは関数である。
Ｎｃ＝σｃ（Ｗｃ×Ａｃ＋Ｂｃ）          数式１
【００２３】
本発明の様々な実施形態による論理コアのネットワークＮは、数式２によって定義することができ、この式のＣは論理コアのセットを指し、Ｅは論理コアの間の有向エッジ(directed edge)のセットを指し、Ｉは入力コアを指す、Ｃのサブセットであり、Ｏは出力コア指す、Ｃのサブセットである。
Ｎ＝（Ｉ，Ｃ，Ｅ，Ｏ）              数式２
【００２４】
Ｎが有向非巡回グラフ（ＤＡＧ：ｄｉｒｅｃｔｅｄ  ａｃｙｃｌｉｃ  ｇｒａｐｈ）である場合について考えてみよう。ＸがコアＩへの入力を指し、ＹがコアＯの出力を指すとしよう。時点ｔにおいて、入力Ｘτがこのネットワークに渡され、ネットワークはＯτを計算する。時点から時点への時点識別子τは重要ではない。
【００２５】
かかるＤＡＧは、論理コアの間のプレシデンス型順序関係を設定するために用いることができる。上記の例では、Ｉの入力コアは先行コアを持たない。コアの間のプレシデンス型順序関係は、物理コアに受取りエッジを送信する全ての論理コアがスケジュールを完了した後でだけ、論理コアがその物理コア上での計算のためスケジュールされることを確実にするため用いられる。
【００２６】
２つの論理コアｃ＝（Ｗｃ，Ａｃ，Ｂｃ，σｃ）とｄ＝（Ｗｄ，Ａｄ，Ｂｄ，σｄ）とは、Ｗｃ＝Ｗｄ；Ｂｃ＝Ｂｄ；σｃ＝σｄであり、ｃがｄに先行せず且つｄがｃに先行しない場合に同一であると言われる。同一のコアのさらなる最適化を行うために、システム中の各コアは、全ての同一のコアがおなじ識別番号を受け取るようにして、識別番号を割り当てられる。
【００２７】
物理コアは、論理コアｃに対するパラメータ（Ｗｃ，Ａｃ，Ｂｃ，σｃ）を受信することが可能である。これらのパラメータを与えられて、物理コアは、論理コアｃをエミュレートし、Ｎｃを計算し、それらをＴｃに送信することができる。
【００２８】
物理コアが、論理コアｃに対するパラメータ（Ｗｃ，Ａｃ，Ｂｃ，σｃ）を既にロードされていると仮定しよう。このとき、効率上の理由から、これらのパラメータを再受信するよりも再使用するのが望ましい。したがって、同じ物理コア上の同一のコアをエミュレートすることが望ましい。
【００２９】
このシステム中にＰ個の物理コアがあると仮定する。これらのコアがロックステップで動作すると仮定しよう。全てのコアは、計算ステップ、その後に通信ステップ、その後に準備ステップを遂行する。全ての通信および準備が完了したことを確実にするために、Ｏ（ｌｏｇＰ）時間を要する通信バリアを置くことができ、この間に全てのコアは、それらが作業完了し全てのメッセージが配信されたことを確認する。
【００３０】
本発明様々な実施形態によれば、スケジュールは、論理コアのセットを、シーケンス番号とともにシステム中の物理コアにマップする。論理コア間のプレシデンス型順序関係およびアイデンティティ関係性を所与とすれば、エネルギ効率のため、同一の論理コアを同じ物理コアにマップし、ネットワークを使う合計実行時間を最小化するように論理コアを物理コアにマップすることが望ましい。本発明のいくつかの実施形態において、これら２つの優先性は、相矛盾し得て、いくつかの実施形態では一方かまたは他方が最適化される。
【００３１】
本発明のいくつかの実施形態において、スケジュールを生成するためのスケジューラが設けられる。様々な実施形態によれば、スケジューラは、所与の物理コアおよび所与のシーケンス番号に対し、当該コアが全ての必要な構成要素を有していることを確実にする。具体的に、スケジューラは、所与の物理コアが（Ｗｃ，Ａｃ，Ｂｃ，σｃ）によって適切に設定されていること、および計算後にＮｃを受信するためのＴｃが利用可能であることを確実にする。
【００３２】
本発明のいくつかの実施形態によれば、ニューロンのバイアスおよび宛先は定期的なスケジュールでロードされる。いくつかの実施形態において、重みは、重みの再使用の如何によって不定期なスケジュールでロードされる。本発明のいくつかの実施形態では、ニューロン発火は、送信元の物理コアから、各計算ステップの後、宛先物理コアに移動する。
【００３３】
ここで図３を参照すると、本発明の諸実施形態による、論理から物理への例示的なスケジューリング・プロセスが示されている。複数の物理コア３０１…３０４が、オンチップ・コア間ネットワーク３０５…３０７によって接続されている。本発明のいくつかの実施形態において、物理コア３０１…３０４は、シナプスによって連結された軸索およびニューロンを有する、上記のニューロシナプティック・コアである。各物理コアは、そのコアのための再設定情報を包含する、コア外ストレージ・メモリ３０８…３１１と対にされている。本発明のいくつかの実施形態において、隣接するコアはコア外ストレージを共用することが可能であるが、本発明のいくつかの実施形態では、各コアは自分専用のコア外ストレージを有する。このようにして、１つの論理コアは、計算ステップ毎に物理コアによってエミュレートされる。
【００３４】
所与の時間ステップτで、物理コア３０１は計算３２０を実行する。計算は、あらゆる物理コアにおいて並行して行われる。本発明のいくつかの実施形態において、各コア内の全てのニューロンもまた並行して更新される。本発明のいくつかの実施形態では、各コア内で、軸索は順次的に処理される。
【００３５】
計算ステップ３２０とほぼ同時並行して、前の計算ステップτ−１のローカルの結果が、コア間ネットワーク３２２を介して通信される３２１。ステップτ−１（前のステップ）で発火したあらゆるニューロンに対し、メッセージが作成され送信される。
【００３６】
計算ステップ３２０および通信ステップ３２１とほぼ同時並行して、前の計算ステップτ−２の結果が処理される３２３。かかる結果は、コア間ネットワーク３２２を介した他の物理コアに由来するものであっても、ループバック・インターフェースを介した当該ローカル物理コアで生成されたものであってもよい。あらゆる物理コアで、全ての受取りメッセージが処理される。処理は、ローカル・コアのローカル軸索バッファを適切な入力で更新すること、またはそのメッセージを後での読み出しのため、より大きなメモリに格納することを含んでよい。
【００３７】
また、処理ステップ３２３の一部として、次の計算ステップτ＋１に対しローカル物理コアを設定するために必要なデータが、コア外ストレージ３０８からフェッチされる。
【００３８】
本発明のいくつかの実施形態には、同期用バリア３２４が含まれる。バリア３２４は、τからτ＋１に進む前に、ステップ３２０、３２１、および３２３が完了していることを確実にする。
【００３９】
τにおける所与の計算ステップ３２０が、τ−３またはそれより前の結果に依存する実施形態において、スケジューリングの制約は、上記のステップ３２０、３２１、３２３を逐次化(sequentializing)することによって緩和することが可能である。本発明のいくつかの実施形態において、前の結果を収容するために、連続する非空の計算ステップの間に２つの空の計算ステップを設けることができる。
【００４０】
本発明のいくつかの実施形態において、コア間メッセージは、構造化メッセージであってよい。かかるメッセージは、上記のように、計算ステップτの間に、送信元のコア上でニューロンが発火すると発信される。本発明のいくつかの実施形態では、この構造化メッセージは、構成成分［ｑ，Δ，Ａ，Ｎ］を含むことが可能で、このｑは標的コアであり、Δは、当該メッセージが計算ステップτ＋Δで使用されることになる隔たりであり、Ａは標的軸索であり、Ｎはニューロンの発火値である。当然のことながら、Δの限界は、最大ネットワークのサイズを規定することになる。本発明のいくつかの実施形態において、標的コアに対しては相対アドレスが用いられる。このようにして、コアをチップ上にタイル構成可能にできる。
【００４１】
或るコアで、例えば、上記の［ｑ，Δ，Ａ，Ｎ］形式のメッセージが受信されるとそのメッセージが処理される。具体的に、宛先コアへの初期経路設定のため、ｑ値が使用される。Δ値に基づいて、メッセージがスケジュールされる。本発明のいくつかの実施形態において、例えば、入力バッファのサイズの限度によって、或るメッセージがコアでローカルにスケジュールできない場合、そのメッセージをコア外ストレージに格納することが可能である。メッセージがコアでローカルにスケジュールできる場合は、標的軸索Ａがニューロン発火値Ｎで更新される。Δが将来の時間ウィンドウを示している場合、軸索バッファ中の適切なスロットが更新される。
【００４２】
コアがまだ初期化されていない場合、コア外ストレージから設定パラメータがフェッチされる。バイアス、宛先、およびシナプス重みは、バッファのサイズの如何により、ロードされるか、もしくは将来においてスケジュールされる。また、本発明のいくつかの実施形態において、初期化は、受信されてコア外に格納されたいずれかの以前のニューロン発火メッセージをフェッチすることも含む。
【００４３】
本発明のいくつかの実施形態において、所与のコア中の各軸索バッファは有効ビットを含む。このビットがゼロの場合、コアは、所与の計算ステップ内では何も計算しない。有効な軸索バッファが使われた後、この有効ビットはゼロにセットされ、使われた軸索バッファはクリアされる。
【００４４】
ここで図４を参照すると、本発明の諸実施形態による、コア・バッファの例示的なレイアウトが示されている。当然のことながら、表されたバッファ・サイズは単なる例示であり、本発明の様々な実施形態による使用のためには様々なバッファ・サイズが適している。所与のコア４０１は、軸索バッファ４０２を含み、該バッファは、他のコアからまたはコア外ストレージから、上記の諸値を受信する。本発明のいくつかの実施形態において、さらに上記のように、軸索バッファ４０２は個別の時間ステップに対応することができ、しかして、将来の時間ステップに対する入力の待ち行列設定をサポートする。上記のように、本発明のいくつかの実施形態では、軸索バッファが収容できるよりもさらに先にスケジュールされる入力は、将来での読出しのためコア外ストレージに送信されてよい。
【００４５】
ニューロン・バイアス・バッファ４０３は、コア４０１を設定するために、コア外ストレージからニューロン・バイアスを受信する。上記のように、ニューロン・バイアス・バッファ４０３は、個別の時間ステップに対応ができ、しかして、将来の時間ステップに対する設定パラメータの待ち行列をサポートする。シナプス・バッファ４０４は、コア４０１を設定するために、コア外ストレージからシナプス設定情報を受信する。上記のように、シナプス・バッファ４０４は、個別の時間ステップに対応ができ、しかして、将来の時間ステップに対する設定パラメータの待ち行列をサポートする。当然のことながら、本発明のいくつかの実施形態では、コアへの直接書込みを可能にして、または所与のスケジュールが或る不変のパラメータを有することを必要条件にして、これらバッファの１つ以上を省略することが可能である。例えば、本発明のいくつかの実施形態では、シナプス・バッファ４０４が省略される。
【００４６】
ニューロン出力は、ニューロン膜電位レジスタ４０５に集められる。コア外ストレージから宛先がロードされ、次いで、宛先コアに適宜に送信される。
【００４７】
本発明のいくつかの実施形態において、軸索バッファは、軸索毎に符号付き４ビット値を付与する。本発明のいくつかの実施形態では、ニューロン・バイアスは、ニューロン毎の符号付き４ビット値である。本発明のいくつかの実施形態では、シナプスは、シナプス毎に符号付き１ビット値を与えられる。本発明のいくつかの実施形態では、軸索バッファは、巡回待ち行列として実装される。
【００４８】
本発明の或る実施形態において、コア外ストレージは、［ｑ，Δ］から、関連する軸索バッファ、ニューロン・バイアス、ニューロン宛先、シナプス重み、ニューロン機能、および再使用ビットまでのマップとして実装される。但し、本開示によれば、当然ながら、様々なデータ構造体が設定情報を格納するのに適している。
【００４９】
当然のことながら、本発明の諸実施形態によるネットワークは、畳み込みネットワークに限定されない。但し、本発明のいくつかの実施形態において、畳み込みネットワークは、重みの再使用の結果として、より高いエネルギ効率および速度を有する。本発明の様々な実施形態によるネットワークは、フィード・フォワードおよび繰り返し的な接続性をサポートする。当然のことながら、ネットワークのサイズは、エネルギと速度との間の望ましいトレードオフが得られるように調整することが可能である。
【００５０】
図５を参照すると、本発明の諸実施形態による、ニューラル・ネットワークを設定するための例示的なプロセスが示されている。５０１で、ニューラル・ネットワーク記述が読み取られる。このニューラル・ネットワーク記述は複数の論理コアを表現する。いくつかの実施形態において、ニューラル・ネットワーク記述は、ネットワークを記述するモデル・ファイル、およびコアの相対的配置を記述する配置ファイルを含む。
【００５１】
５０２で、複数の論理コアの間の複数のプレシデンス型順序関係が判断される。５０３で、これら複数のプレシデンス型順序関係に基づいて、複数のタイム・スライスにおいて、複数の論理コアを複数の物理コアに割り当てるスケジュールが生成される。このスケジュールに基づいて、ニューラル・ネットワーク記述の複数の論理コアが、複数の物理コア上で実行される。
【００５２】
ここで図６を参照すると、コンピューティング・ノードの一例の概略図が示されている。コンピューティング・ノード１０は、適したコンピューティング・ノードの単なる一例であって、これによって、本明細書に記載の本発明の諸実施形態の用途または機能の範囲についていかなる限定をも示唆する意図はされていない。上記と関係なく、コンピューティング・ノード１０は、本明細書に上記された機能のいずれをも実装もしくは実行し、またはその両方を行うことが可能である。
【００５３】
コンピューティング・ノード１０には、コンピュータ・システム／サーバ１２があり、これは、他の汎用または特殊用途コンピューティング・システム環境または構成中のニューロンと共に動作可能である。コンピュータ・システム／サーバ１２と共に使用するに適してい得る周知のコンピューティング・システム、環境、もしくは構成、またはこれらの組合せの例には、以下に限らないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブル消費者電子装置、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、ならびに上記のシステムまたはデバイス、および同様のもののいずれをも含む分散型クラウド・コンピューティング環境が含まれる。
【００５４】
コンピュータ・システム／サーバ１２は、プログラム・モジュールなど、コンピュータ・システムによって実行される、コンピュータ・システム実行可能命令の一般的な文脈で記述することが可能である。一般に、プログラム・モジュールは、特定のタスクを実行する、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造体などを含み得る。コンピュータ・システム／サーバ１２は、通信ネットワークを介してリンクされた遠隔の処理デバイスによってタスクが実行される、分散型クラウド・コンピューティング環境中で実行されてよい。分散型クラウド・コンピューティング環境では、プログラム・モジュールは、ローカルおよび遠隔コンピュータ・システムの両方の、メモリ・ストレージ・デバイスを含むストレージ媒体に配置することができる。
【００５５】
図６に示されるように、コンピューティング・ノード１０中のコンピュータ・システム／サーバ１２は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム／サーバ１２のコンポーネントには、以下に限らないが、１つ以上のプロセッサまたは処理ユニット１６、システム・メモリ２８、およびシステム・メモリ２８からプロセッサ１６への連結を含め、様々なシステムコンポーネントを連結しているバス１８が含まれてよい。
【００５６】
バス１８は、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレイティッド・グラフィックス・ポート、および様々なバス・アーキテクチャのいずれかを用いたプロセッサまたはローカル・バス、を含め、いくつかの型のバス構造体のいずれかの１つ以上を表す。限定ではなく例として、かかるアーキテクチャは、業界標準アーキテクチャ（ＩＳＡ：Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、マイクロチャネル・アーキテクチャ（ＭＣＡ：Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、拡張ＩＳＡ（ＥＩＳＡ：Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション（ＶＥＳＡ：Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカル・バス、および周辺構成要素相互接続（ＰＣＩ：Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスを含む。
【００５７】
コンピュータ・システム／サーバ１２は、通常、様々なコンピュータ・システム可読媒体を含む。かかる媒体は、コンピュータ・システム／サーバ１２によるアクセスが可能な任意の媒体であってよく、これには、揮発性および不揮発性媒体、着脱可能および固定式媒体の両方が含まれる。
【００５８】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）３０もしくはキャッシュ・メモリ３２またはその両方など、揮発性メモリの形でコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ１２は、他の着脱可能／固定式、揮発性／不揮発性のコンピュータ・システム・ストレージ媒体をさらに含んでよい。単なる例として、固定式の不揮発性磁気媒体から読み取り、これに書き込むために、ストレージ・システム３４（図示しないが、通常、「ハードドライブ」と呼ばれる）を設けることができる。図示されていないが、着脱可能、不揮発性磁気ディスク（例えば、フレキシブルディスク）から読み取り、これに書き込むための磁気ディスク・ドライブ、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭまたは他の光媒体など、着脱可能の不揮発性光ディスクから読み取り、これに書き込むための光ディスク・ドライブを設けることも可能である。かかる例において、そのそれぞれは、１つ以上のデータ媒体インターフェースによってバス１８に接続することができる。下記でさらに提示し説明するように、メモリ２８は、本発明の諸実施形態の機能を遂行するように構成されたプログラム・モジュールの（例えば、少なくとも１つの）セットを備えた少なくとも１つのプログラム製品を含むことが可能である。
【００５９】
メモリ２８中には、プログラム・モジュール４２の（少なくとも１つの）セットを備えたプログラム／ユーティリティ４０、ならびに、限定でなく例として、オペレーティング・システム、１つ以上のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データが格納されてよい。オペレーティング・システム、１つ以上のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはこれらの何らかの組合せの各々は、ネットワーキング環境の実装を含むことが可能である。プログラム・モジュール４２は、一般に、本明細書に記載された本発明の諸実施形態の機能もしくは方法またはその両方を実行する。
【００６０】
また、コンピュータ・システム／サーバ１２は、ユーザがコンピュータ・システム／サーバ１２とやり取りできるようにする１つ以上のデバイスである、キーボード、ポインティング・デバイス、ディスプレイ２４などの１つ以上の外部デバイス１４、もしくは、コンピュータ・システム／サーバ１２が１つ以上の他のコンピューティング・システムと通信できるようにする任意のデバイス（例えば、ネットワーク・カード、モデムなど）、またはそれらの両方と通信することができる。かかる通信は、入力／出力（Ｉ／Ｏ：Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）インターフェース２２を介して行うことが可能である。さらに、コンピュータ・システム／サーバ１２は、ネットワーク・アダプタ２０を介し、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、一般広域ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、もしくは公衆ネットワーク（例えばインターネット）などの１つ以上のネットワークと通信することができる。図示のように、ネットワーク・アダプタ２０は、バス１８を介してコンピュータ・システム／サーバ１２の他のコンポーネントと通信する。なお、図示はされていないが、他のハードウェアもしくはソフトウェア・コンポーネントまたはその両方を、コンピュータ・システム／サーバ１２と併せて用いることもできよう。これらの例には、以下に限らないが、マイクロコード、デバイス・ドライバ、追加の処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、データ・アーカイバル・ストレージ・システムなどが含まれる。
【００６１】
本発明は、システム、方法、もしくはコンピュータ・プログラム製品またはこれらの組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体（または媒体群）を含むことが可能である。
【００６２】
このコンピュータ可読ストレージ媒体は、命令実行デバイスが使用するための命令を保持し格納できる有形のデバイスとすることができる。このコンピュータ可読ストレージ媒体は、例えば、以下に限らないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または上記の任意の適切な組合せであってよい。コンピュータ可読ストレージ媒体のさらに具体的な例の非包括的リストには、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、消去およびプログラム可能読み取り専用メモリ（ＥＰＲＯＭ：ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙまたはフラッシュ・メモリ）、静的ランダム・アクセス・メモリ（ＳＲＡＭ：ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、携帯型コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、デジタル多用途ディスク（ＤＶＤ：ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）、メモリ・スティック、フレキシブル・ディスク、パンチカードまたは記録された命令を有する溝中の嵩上げ構造体などの機械的符号化デバイス、および上記の任意の適切な組合せが含まれる。本明細書で用いられるコンピュータ可読ストレージ媒体は、無線波または他の自由に伝播する電磁波、ウェーブガイドまたは他の送信媒体を介して伝播する電磁波（例えば、光ファイバを通過する光パルス）、またはワイヤを通って送信される電気信号など、本質的に一時的な信号、と解釈されるべきでない。
【００６３】
本明細書に述べられたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から、それぞれのコンピューティング／処理デバイスに、または、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワークもしくはワイヤレス・ネットワークまたはこれらの組合せなどのネットワークを介して、外部のコンピュータもしくは外部のストレージ・デバイスにダウンロードすることが可能である。このネットワークは、銅送信ケーブル、光送信ファイバ、ワイヤレス通信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバまたはこれらの組合せを含んでもよい。それぞれのコンピューティング／処理デバイス中のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そのコンピュータ可読プログラム命令を、ストレージのため、それぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体の中に転送する。
【００６４】
本発明のオペレーションを実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ：ｉｎｓｔｒｕｃｔｉｏｎ−ｓｅｔ−ａｒｃｈｉｔｅｃｔｕｒｅ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋もしくは同様のものなどのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語もしくは類似のプログラミング言語などの従来式の手続き型プログラミング言語を含む、１つ以上のプログラミング言語の任意の組合せで記述されたソース・コードもしくはオブジェクト・コードであってよい。このコンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとしてユーザのコンピュータで専ら実行することも、ユーザのコンピュータで部分的に実行することもでき、一部をユーザのコンピュータで一部を遠隔コンピュータで実行することもでき、あるいは遠隔のコンピュータまたはサーバで専ら実行することもできる。後者の場合は、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）または広域ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）を含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することもでき、あるいは（例えばインターネット・サービス・プロバイダを使いインターネットを介し）外部のコンピュータへの接続を行うことも可能である。いくつかの実施形態において、例えば、プログラム可能論理回路、フィールドプログラム可能ゲート・アレイ（ＦＰＧＡ：ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、またはプログラム可能論理アレイ（ＰＬＡ：ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ａｒｒａｙ）を含む電子回路は、本発明の諸態様を実行すべく、該電子回路をカスタマイズするためコンピュータ可読プログラム命令の状態情報を利用することによって、該コンピュータ可読プログラム命令を実行することができる。
【００６５】
本発明の諸態様は、本発明の諸実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら本明細書で説明されている。当然のことながら、フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実装することが可能である。
【００６６】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラム可能データ処理装置のプロセッサに提供し、そのコンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックもしくはブロック群中に特定されている機能群／動作群を実装するための手段を生成するようにすることができる。また、コンピュータ、プログラム可能データ処理装置、もしくは他のデバイスまたはこれらの組合せに対し特定の仕方で機能するよう命令することが可能なこれらのコンピュータ可読プログラム命令を、コンピュータ可読ストレージ媒体に格納し、格納された命令を有するコンピュータ可読ストレージ媒体が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に特定されている機能／動作の諸態様を実装する命令群を包含する製造品を構成するようにすることができる。
【００６７】
さらに、これらコンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードし、そのコンピュータ上で、他のプログラム可能装置上で、または他のデバイス上で一連のオペレーション・ステップを実施させて、コンピュータ実装のプロセスを作り出し、当該コンピュータ上で、他のプログラム可能装置上でもしくは他のデバイス上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックもしくはブロック群中に特定されている機能群／動作群を実装するためのプロセスを提供するようにすることも可能である。
【００６８】
図面のフローチャートおよびブロック図は、本発明の様々な実施形態による、システム、方法、およびコンピュータ・プログラム製品の可能となる実装のアーキテクチャ、機能性、およびオペレーションを示している。この点に関し、フローチャートまたはブロック図中の各ブロックは、特定の論理機能（単数または複数）を実装するための一つ以上の実行可能命令を含む、モジュール、セグメント、または命令の部分を表し得る。一部の別の実装においては、ブロック中に記載された機能が、図面に記載された順序から外れて行われ得る。例えば、連続して示された２つのブロックが、関与する機能性に応じ、実際にはほぼ同時に実行されることがあり、時にはこれらのブロックが逆の順序で実行されることもあり得る。さらに、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方中のブロック群の組み合わせは、特定の機能または動作を実施する特殊用途ハードウェア・ベースのシステムによって実装でき、または特殊用途ハードウェアとコンピュータ命令との組み合わせによって実行できることにも留意すべきである。
【００６９】
本発明の様々な実施形態の記述は、説明の目的で提示されたものであり、網羅的であることも、または本発明を開示した形態に限定することも意図されていない。当業者には、本発明の説明された実施形態の範囲および趣旨から逸脱することのない多くの変更および変形が明白であろう。本明細書で用いられた用語は、本発明の原理、実際上の応用、または市販の技術の技術的な改良を最善に説明し、他の当業者が本発明を理解できるように選択されたものである。
【図１】
2020505666.tif 000003
【図２】
2020505666.tif 000004
【図３】
2020505666.tif 000005
【図４】
2020505666.tif 000006
【図５】
2020505666.tif 000007
【図６】
2020505666.tif 000008
【手続補正書】
【提出日】令和1年9月18日(2019.9.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の論理コアを表現するニューラル・ネットワーク記述を読み取るステップと、
前記複数の論理コアの間の複数のプレシデンス型順序関係を決めるステップと、
前記複数のプレシデンス型順序関係に基づいて、複数のタイム・スライスにおいて、前記複数の論理コアを複数の物理コアに割り当てるスケジュールを生成するステップと、
を含む方法。
【請求項２】
前記スケジュールに基づいて、前記複数の物理コア上で、前記ニューラル・ネットワーク記述の前記複数の論理コアを実行するステップ、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記ニューラル・ネットワーク記述が、前記複数の論理コア間に複数の有向エッジを含む、
請求項１に記載の方法。
【請求項４】
前記スケジュールを生成するステップが、前記複数の論理コアに対応する有向非巡回グラフを生成するステップを含む、請求項３に記載の方法。
【請求項５】
前記複数の論理コアの数が前記複数の物理コアよりも多い、請求項１に記載の方法。
【請求項６】
前記ニューラル・ネットワーク記述が、ニューロン・バイアス、ニューロン宛先、またはシナプス重みを含む、請求項１に記載の方法。
【請求項７】
前記複数のタイム・スライスの一タイム・スライス内で、前記割り当てられた論理コアに従って、前記複数の物理コアを設定するステップ、
をさらに含む、請求項１に記載の方法。
【請求項８】
前記複数の論理コアの間の複数のアイデンティティ関係性を判断するステップ、
をさらに含み、
前記スケジュールを生成するステップが、連続するタイム・スライスにおいて、同一の論理コアを同じ物理コアに優先的に割り当てるステップを含む、
請求項１に記載の方法。
【請求項９】
ニューロモーフィック・コアを再設定するステップと、
前記ニューロモーフィック・コアへの複数の入力を受信するステップと、
第一タイム・スライスにおいて、ニューロモーフィック・コアの第一の複数の出力を計算するステップと、
前記ニューロモーフィック・コアの第二の複数の出力を送信するステップであって、前記第二の複数の出力は第二タイム・スライスで生成され、前記第二タイム・スライスは前記第一タイム・スライスより先行する、前記送信するステップと、
を含む方法。
【請求項１０】
前記計算するステップが、前記受信するステップと同時並行に行われ、
前記送信するステップが、前記計算するステップと同時並行に行われる、
請求項９に記載の方法。
【請求項１１】
前記ニューロモーフィック・コアを再設定するステップが、コア外メモリから複数の設定パラメータを読み取るステップを含む、請求項１０に記載の方法。
【請求項１２】
前記コア外メモリが、前記ニューロモーフィック・コアと同じチップ上にある、請求項１１に記載の方法。
【請求項１３】
前記コア外メモリが、前記ニューロモーフィック・コアとは異なるチップ上にある、請求項１１に記載の方法。
【請求項１４】
前記複数の設定パラメータが、ニューロン・バイアス、ニューロン宛先、またはシナプス重みを含む、請求項１１に記載の方法。
【請求項１５】
前記第二の複数の出力が、コア間ネットワークを介して送信される、請求項１０に記載の方法。
【請求項１６】
前記複数の入力がコア間ネットワークを介して受信され、前記方法が、
前記複数の入力を前記ニューロモーフィック・コアの軸索バッファに書き込むステップ、
をさらに含む、請求項１０に記載の方法。
【請求項１７】
前記複数の入力が、コア外メモリから読み取られる、請求項１０に記載の方法。
【請求項１８】
前記複数の入力が、前記ニューロモーフィック・コアに連結された軸索バッファから読み取られる、請求項１０に記載の方法。
【請求項１９】
複数の軸索および複数のニューロンを含む、再設定可能ニューロモーフィック・コアと、
前記複数の軸索に連結された軸索バッファと、
前記ニューロモーフィック・コアに連結されたコア外メモリと、
前記ニューロモーフィック・コアに連結されたコア間ネットワークと、
を含むシステムであって、
前記再設定可能ニューロモーフィック・コアが、
前記コア外メモリから複数の設定パラメータを読み取り、
前記複数の設定パラメータに沿って再設定し、
複数の入力を受信し、
第一タイム・スライスにおいて第一の複数の出力を計算し、
第二タイム・スライスで生成された出力を、前記コア間ネットワークを介して送信し、前記第二タイム・スライスは前記第一タイム・スライスより先行するように動作可能である、
システム。
【請求項２０】
前記計算が、前記受信と同時並行に行われ、
前記送信が、前記計算と同時並行に行われる、
請求項１９に記載のシステム。
【請求項２１】
前記複数の設定パラメータが、ニューロン・バイアス、ニューロン宛先、またはシナプス重みを含む、請求項２０に記載のシステム。
【請求項２２】
前記ニューロモーフィック・コアが、前記コア間ネットワークを介して前記第二の複数の出力を送信するように動作可能である、請求項２０に記載のシステム。
【請求項２３】
前記ニューロモーフィック・コアが、コア間ネットワークを介して前記複数の入力を受信するように動作可能であり、前記ニューロモーフィック・コアが、前記複数の入力を前記軸索バッファに書き込むように動作可能である、請求項２０に記載のシステム。
【請求項２４】
前記ニューロモーフィック・コアが、前記コア外メモリから前記複数の入力を読み取るように動作可能である、請求項２０に記載のシステム。
【請求項２５】
前記ニューロモーフィック・コアが、前記軸索バッファから前記複数の入力を読み取るように動作可能である、請求項２０に記載のシステム。
【請求項２６】
プロセッサに、請求項１〜１８のいずれか一項に記載の前記方法を実行させるためのプログラム。
【国際調査報告】
2020505666.tif 000009
2020505666.tif 000010
2020505666.tif 000011