IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 公立大学法人会津大学の特許一覧

特開2024-82516ホモジニアスコンピューティングシステム及びホモジニアスコンピューティングデバイスのマイグレーションフローの生成プログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024082516
(43)【公開日】2024-06-20
(54)【発明の名称】ホモジニアスコンピューティングシステム及びホモジニアスコンピューティングデバイスのマイグレーションフローの生成プログラム
(51)【国際特許分類】
   G06N 3/063 20230101AFI20240613BHJP
   G06N 99/00 20190101ALI20240613BHJP
   G06N 3/126 20230101ALI20240613BHJP
   G06F 15/80 20060101ALI20240613BHJP
   G06F 9/38 20180101ALI20240613BHJP
   G06F 11/20 20060101ALN20240613BHJP
【FI】
G06N3/063
G06N99/00 180
G06N3/126
G06F15/80
G06F9/38 370A
G06F11/20 630
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022196416
(22)【出願日】2022-12-08
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り (1)令和3年12月22日にhttps://ieeexplore.ieee.org/document/9661057及びhttps://ieeexplore.ieee.org/abstract/document/9661057にて発表。
(71)【出願人】
【識別番号】506301140
【氏名又は名称】公立大学法人会津大学
(74)【代理人】
【識別番号】110003421
【氏名又は名称】弁理士法人フィールズ国際特許事務所
(72)【発明者】
【氏名】ダン ナム カイン
(72)【発明者】
【氏名】ベン アブダラ アブデラゼク
【テーマコード(参考)】
5B013
5B034
【Fターム(参考)】
5B013DD01
5B013DD03
5B034BB01
5B034CC01
5B034CC02
(57)【要約】
【課題】ホモジニアスコンピューティングデバイスの欠陥ニューロンのマイグレーション後の推論時の演算効率の低下を抑制するマイグレーションフローを生成する。
【解決手段】ホモジニアスコンピューティングデバイスは、複数の物理ニューロンを有するコアを複数有し、ネットワークを介して物理ニューロンの演算結果をコア間で送信する。デバイスは、ニューラルネットワークモデルのニューロンが物理ニューロンにマッピングされモデルの演算を実行する。デバイス内の物理ニューロンに欠陥が発生すると、欠陥物理ニューロンのタスクデータを他のスペア物理ニューロンにマイグレートして欠陥を修復する。複数の欠陥物理ニューロンをマイグレートするマイグレーションフローを、前記モデルのニューロンがマッピングされた前記デバイスに対応する有向グラフに基づいて、近接するコア間のマイグレーションフローをチェイン状に有するように生成し、マイグレーション後の推論時の演算効率の低下を抑制するよう生成する。
【選択図】図5
【特許請求の範囲】
【請求項1】
ホモジニアスコンピューティングデバイスと、ホストコンピュータを有するホモジニアスコンピューティングシステムであって、
前記ホモジニアスコンピューティングデバイスは、
それぞれニューラル演算器を有する複数の物理ニューロンをそれぞれ有する複数のニューラルコンピューティングコア(以下、コアと称する。)と、
前記複数のコア間を接続するネットワークと、
前記複数のコアそれぞれに対応して設けられ、前記ネットワーク上を送信するパケットを中継し、対応するコア宛のパケットを取得する複数のルータを有し、
ニューラルネットワークモデルが有する複数のニューロン演算モデルが、前記複数の物理ニューロンにそれぞれマッピングされ、コア内の第1の物理ニューロンの演算出力が前記パケットにより別のコア内の第2の物理ニューロンに送信され、
前記ホストコンピュータは、
ホモジニアスコンピューティングデバイスにおける欠陥物理ニューロンを修復するマイグレーションフローを生成する工程と、
前記ホモジニアスコンピューティングデバイスに、前記マイグレーションフローに基づいて、前記ニューロン演算モデルがマッピングされ欠陥を有する欠陥物理ニューロンのタスクデータを、前記ニューロン演算モデルがマッピングされていないスペア物理ニューロンに移動するマイグレーションを実行させて、前記欠陥を修復する工程を実行し、
前記マイグレーションフローが、第1のコア内の前記欠陥物理ニューロンのタスクデータを、第2のコア内の前記スペア物理ニューロンに移動するコア間マイグレーションフローをチェイン状に有するチェインマイグレーションフローを有し、
前記マイグレーションフローを生成する工程は、
前記ニューラルネットワークモデルの複数のニューロンがマッピングされた前記ホモジニアスコンピューティングデバイスに対応する有向グラフであり、ソース頂点と、シンク頂点と、前記複数のコアに対応する複数のコア頂点と、前記ソース頂点と前記複数のコア頂点との間に設けられ前記複数のコア頂点のコア内の未修復の欠陥物理ニューロン数で重み付けされた第1のエッジと、前記スペア物理ニューロンを有するコアの前記複数のコア頂点と前記シンク頂点との間に設けられ前記複数のコア頂点のコア内のスペア物理ニューロン数で重み付けされた第2のエッジと、前記複数のコア頂点の所定距離以内のコア頂点間に設けられ前記コア頂点のコア間でマイグレーション可能な数で重み付けされた複数の第3のエッジとを有する有向グラフを生成する有向グラフ生成工程と、
前記有向グラフに基づいて、前記第1のエッジに接続された複数のコア頂点から前記第2のエッジに接続された複数のコア頂点までの間で、前記第1のエッジの重みを、前記第3のエッジの重みの範囲で後段のコア頂点にマイグレートすることを繰り返し、最終的に前記第2のエッジの重みの範囲で前記シンク頂点に達する前記チェインマイグレーションフローを生成する工程を有する、ホモジニアスコンピューティングシステム。
【請求項2】
前記マイグレーションフローを生成する工程は、
前記欠陥物理ニューロンを修復するマイグレーションフローをそれぞれ有するK個(Kは複数)のマイグレーション解をランダムに生成する工程と、
前記K個のマイグレーション解から、マイグレーションに要する時間のマイグレーションコストとマイグレーション後の前記ニューラルネットワークモデルの推論実行時のコア間通信に要する時間の通信コストとを含む統合コストを小さくするマイグレーション解を生成する工程とを有し、
前記K個のマイグレーション解をランダムに生成する工程は、
前記有向グラフ生成工程と、
前記チェインマイグレーションフローを生成する工程により前記K個のマイグレーション解を生成する工程を有する、請求項1に記載のホモジニアスコンピューティングシステム。
【請求項3】
前記マイグレーションフローが、コア内で前記欠陥物理ニューロンのタスクデータを同じコア内の前記スペア物理ニューロンに移動するコア内マイグレーションフローを更に有し、
前記有向グラフは、前記コア内マイグレーションフローによるマイグレーション後の前記ホモジニアスコンピューティングデバイスについて生成される、請求項1に記載のホモジニアスコンピューティングシステム。
【請求項4】
前記統合コストを小さくするマイグレーション解を生成する工程では、前記K個のマイグレーション解に遺伝アルゴリズムを適用し、
前記マイグレーション解は、複数の欠陥物理ニューロンをそれぞれマイグレートする複数のマイグレーションフローを有し、
前記遺伝アルゴリズムの交差で、複数のマイグレーション解の間で、前記複数のマイグレーションフローの一部のマイグレーションフローを交換して、新たに複数のマイグレーション解を生成する、請求項2に記載のホモジニアスコンピューティングシステム。
【請求項5】
ホモジニアスコンピューティングデバイスにおける欠陥物理ニューロンを修復するマイグレーションフローの生成手順をコンピュータに実行させるマイグレーションフロー生成プログラムであって、
前記ホモジニアスコンピューティングデバイスは、
それぞれニューラル演算器を有する複数の物理ニューロンをそれぞれ有する複数のニューラルコンピューティングコア(以下、コアと称する。)と、
前記複数のコア間を接続するネットワークと、
前記複数のコアそれぞれに対応して設けられ、前記ネットワーク上を送信するパケットを中継し、対応するコア宛のパケットを取得する複数のルータを有し、
ニューラルネットワークモデルが有する複数のニューロン演算モデルが、前記複数の物理ニューロンにそれぞれマッピングされ、コア内の第1の物理ニューロンの演算出力が前記パケットにより別のコア内の第2の物理ニューロンに送信され、
前記ニューロン演算モデルがマッピングされ欠陥を有する欠陥物理ニューロンのタスクデータを、前記ニューロン演算モデルがマッピングされていないスペア物理ニューロンに移動するマイグレーションが実行されて、前記欠陥が修復され、
前記マイグレーションのマイグレーションフローが、第1のコア内の前記欠陥物理ニューロンのタスクデータを、第2のコア内の前記スペア物理ニューロンに移動するコア間マイグレーションフローをチェイン状に有するチェインマイグレーションフローを有し、
前記マイグレーションフローの生成手順は、
前記ニューラルネットワークモデルの複数のニューロンがマッピングされた前記ホモジニアスコンピューティングデバイスに対応する有向グラフであり、ソース頂点と、シンク頂点と、前記複数のコアに対応する複数のコア頂点と、前記ソース頂点と前記複数のコア頂点との間に設けられ前記複数のコア頂点のコア内の未修復の欠陥物理ニューロン数で重み付けされた第1のエッジと、前記スペア物理ニューロンを有するコアの前記複数のコア頂点と前記シンク頂点との間に設けられ前記複数のコア頂点のコア内のスペア物理ニューロン数で重み付けされた第2のエッジと、前記複数のコア頂点の所定距離以内のコア頂点間に設けられ前記コア頂点のコア間でマイグレーション可能な数で重み付けされた複数の第3のエッジとを有する有向グラフを生成する有向グラフ生成工程と、
前記有向グラフに基づいて、前記第1のエッジに接続された複数のコア頂点から前記第2のエッジに接続された複数のコア頂点までの間で、前記第1のエッジの重みを、前記第3のエッジの重みの範囲で後段のコア頂点にマイグレートすることを繰り返し、最終的に前記第2のエッジの重みの範囲で前記シンク頂点に達する前記チェインマイグレーションフローを生成する工程を有する、ホモジニアスコンピューティングデバイスのマイグレーションフローの生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ホモジニアスコンピューティングシステム及びホモジニアスコンピューティングデバイスのマイグレーションフローの生成プログラムに関する。
【背景技術】
【0002】
ホモジニアスコンピューティングデバイスまたはチップは、例えばニューロモルフィックチップである。ニューロモルフィックチップは、ニューロンを模したコンピューティングチップであり、例えばスパイキングニューラルネットワーク推論モデルの推論計算を実行するスパイキングニューラルネットワーク推論プロセッサとして使用されている。
【0003】
スパイキングニューラルネットワーク推論モデルでは、ニューラルネットワーク内のノードは、前の層のノードから送信されたスパイクをノード間のエッジの重みによって重み付けし、重み付けされたスパイクを累積し、累積値が閾値を超えるとスパイク出力を次の層のノードに出力する。ノードの計算が簡素化されているので、各ノードに対応するハードウエアである演算器が小面積になる。そのため、多数の演算器(ノード)をチップ内ネットワークで接続するホモジニアスコンピューティングデバイスによりスパイキングニューラルネットワーク推論モデルを実現できる。スパイキングニューラルネットワーク推論モデルは、スパイキングニューラルネットワーク推論プロセッサに対応し、スパイキングニューラルネットワーク推論プロセッサは、一種のニューロモルフィックなホモジニアスコンピューティングデバイス(チップ)である。
【0004】
スパイキングニューラルネットワーク推論プロセッサは、複数のニューラルコンピューティングコアと、複数のニューラルコンピューティングコアを相互接続する1つの ネットワークオンチップ とを有する。
【0005】
複数のニューラルコンピューティングコアのそれぞれは、ネットワークオンチップ(チップ内ネットワーク)と相互接続するネットワークインターフェース、パラメータおよび重みを記憶する重みメモリ 、およびニューロンモデルの演算を実行するニューロンアレイを含む。
【0006】
従来のハードウェアニューロモルフィックシステムは、例えば、複数のニューロンを複数のクラスタに分割する。各クラスタは通常、同数のニューロンを有する。ニューロンクラスタはネットワークオンチップを介して通信する。重み(ニューロン結合の強さ)はクラスタ内のメモリに保存される。ニューロン回路と入力接続の重みをニューロンモデルとみなす。ニューロモルフィックチップは、多数のニューロン回路と重みメモリを有するため、ニューロン回路や重みメモリに欠陥がたびたび発生する。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】国際公開第2019/131141号
【非特許文献】
【0008】
【非特許文献1】Edmonds, Jack; Karp, Richard M. (1972). "Theoretical improvements in algorithmic efficiency for network flow problems" (PDF). Journal of the ACM. 19 (2): 248-264. doi:10.1145/321694.321699
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明では、ニューロン回路や重みメモリに発生する欠陥について考察する。このタイプの障害は不正確な出力を生成するため、システムを修正する必要がある。ニューロン回路等の欠陥は、ニューロン回路の欠陥または重みメモリの欠陥のいずれかと考えられる。
【0010】
本発明では、スペアの物理的ニューロンと重みメモリブロックをクラスタ内に配置して、マイグレーションメソッドで欠陥を修復することによって、障害を許容する。マイグレーションメソッドは、(1)欠陥ニューロンをそのクラスタ(コア)内の健全なニューロンに置き換えることと、(2)欠陥ニューロンを他のクラスタ(コア)内の健全なニューロンに置き換えることとを有する。
【0011】
従来提案されているニューロモルフィックチップの欠陥修復のためのマイグレーション方法は、短時間でニューロン回路や重みメモリブロックをスペアニューロンやスペアメモリブロックにマイグレートする。しかし、マイグレーションを短時間で行うことができても、マイグレーション後のモデルの推論のための演算効率が低下するのは好ましくない。
【0012】
そこで、本実施の形態の第1の側面の目的は、マイグレーション後のモデルの推論の演算効率の低下を抑制できるマイグレーションを行うホモジニアスコンピューティングシステム及びホモジニアスコンピューティングデバイスのマイグレーションフロー生成プログラムを提供することにある。
【課題を解決するための手段】
【0013】
本実施の形態の第1の側面は、ホモジニアスコンピューティングデバイスと、ホストコンピュータを有するホモジニアスコンピューティングシステムであって、
前記ホモジニアスコンピューティングデバイスは、それぞれニューラル演算器を有する複数の物理ニューロンをそれぞれ有する複数のニューラルコンピューティングコア(以下、コアと称する。)と、前記複数のコア間を接続するネットワークと、前記複数のコアそれぞれに対応して設けられ、前記ネットワーク上を送信するパケットを中継し、対応するコア宛のパケットを取得する複数のルータを有し、
ニューラルネットワークモデルが有する複数のニューロン演算モデルが、前記複数の物理ニューロンにそれぞれマッピングされ、コア内の第1の物理ニューロンの演算出力が前記パケットにより別のコア内の第2の物理ニューロンに送信され、
前記ホストコンピュータは、
ホモジニアスコンピューティングデバイスにおける欠陥物理ニューロンを修復するマイグレーションフローを生成する工程と、
前記ホモジニアスコンピューティングデバイスに、前記マイグレーションフローに基づいて、前記ニューロン演算モデルがマッピングされ欠陥を有する欠陥物理ニューロンのタスクデータを、前記ニューロン演算モデルがマッピングされていないスペア物理ニューロンに移動するマイグレーションを実行させて、前記欠陥を修復する工程を実行し、
前記マイグレーションフローが、第1のコア内の前記欠陥物理ニューロンのタスクデータを、第2のコア内の前記スペア物理ニューロンに移動するコア間マイグレーションフローをチェイン状に有するチェインマイグレーションフローを有し、
前記マイグレーションフローを生成する工程は、
前記ホモジニアスコンピューティングデバイスへの前記ニューラルネットワークモデルの複数のニューロンのマッピングに対応する有向グラフであり、ソース頂点と、シンク頂点と、前記複数のコアに対応する複数のコア頂点と、前記ソース頂点と前記複数のコア頂点との間に設けられ前記複数のコア頂点のコア内の未修復の欠陥物理ニューロン数で重み付けされた第1のエッジと、前記スペア物理ニューロンを有するコアの前記複数のコア頂点と前記シンク頂点との間に設けられ前記複数のコア頂点のコア内のスペア物理ニューロン数で重み付けされた第2のエッジと、前記複数のコア頂点の所定距離以内のコア頂点間に設けられ前記コア頂点のコア間でマイグレーション可能な数で重み付けされた複数の第3のエッジとを有する有向グラフを生成する有向グラフ生成工程と、
前記有向グラフに基づいて、前記第1のエッジに接続された複数のコア頂点から前記第2のエッジに接続された複数のコア頂点までの間で、前記第1のエッジの重みを、前記第3のエッジの重みの範囲で後段のコア頂点にマイグレートすることを繰り返し、最終的に前記第2のエッジの重みの範囲で前記シンク頂点に達する前記チェインマイグレーションフローを生成する工程を有する、ホモジニアスコンピューティングシステムである。
【発明の効果】
【0014】
第1の側面によれば、マイグレーション後のモデルの推論の演算効率の低下を抑制できるマイグレーションフローを生成することができる。
【図面の簡単な説明】
【0015】
図1】本実施例におけるホモジニアスコンピューティングデバイスまたはチップの一つである、ニューロモルフィックチップとホストコンピュータを有するシステムの構成例を示す図である。
図2】スパイキングニューラルネットワークモデル11の構成例を示す図である。
図3】スパイキングニューラルネットワークモデルをニューロモルフィックチップにマッピングする方法を示す図である。
図4】ニューロモルフィックチップ1内のネットワークインターフェース4の構成例を示す図である。
図5】本実施の形態における欠陥物理ニューロン及び欠陥重みメモリブロックを修復するマイグレーションを示す図である。
図6】コア間マイグレーションプロセスの一つの形態であるチェインマイグレーションプロセスを示す図である。
図7】本実施の形態例における欠陥ニューロンをマイグレートする方法のトップレベルのフローチャートを示す図である。
図8】コア内マイグレーションのフローチャートを示す図である。
図9】コア間マイグレーション30のフローチャートを示す図である。
図10】有向グラフを生成するフローチャートを示す図である。
図11】ニューロモルフィックチップの例とその有向グラフの例を示す図である。
図12】有向グラフに基づいて抽出したマイグレーションフローの例を示す図である。
図13】チェインマイグレーションを有さないコア間マイグレーションフローの一例を示す図である。
図14】チェインマイグレーションを有するコア間マイグレーションフローの一例を示す図である。
図15】第2の実施の形態のコア間マイグレーション30のフローチャートを示す図である。
図16】本実施の形態における遺伝アルゴリズムによるマイグレーションフロー最適化のフローチャートを示す図である。
図17】遺伝アルゴリズムによるマイグレーションフロー最適化方法の具体例を示す図である。
図18】遺伝アルゴリズムによるマイグレーションフロー最適化方法の具体例を示す図である。
図19】遺伝アルゴリズムによるマイグレーションフロー最適化方法の具体例を示す図である。
図20】遺伝アルゴリズムによるマイグレーションフロー最適化方法の具体例を示す図である。
図21】遺伝アルゴリズムによるマイグレーションフロー最適化方法の具体例を示す図である。
図22】マイグレーションフローの解の交差の具体例を示す図である。
図23】マイグレーションフローの解の突然変異の具体例を示す図である。
図24】有向グラフに基づいてマイグレーション解をランダムに生成する処理のフローチャートを示す図である。
図25】マイグレーション解をランダムに生成する処理の具体例である。
図26】マイグレーション解をランダムに生成する処理の具体例である。
【発明を実施するための形態】
【0016】
[第1の実施の形態]
図1は、本実施例におけるホモジニアスコンピューティングデバイスまたはチップの一つである、ニューロモルフィックチップとホストコンピュータを有するシステムの構成例を示す図である。ニューロモルフィックチップ1は、二次元または三次元に配列された複数のニューラルコンピューティングコア2(以下、簡単にコアと称する。)と、ネットワークオンチップ3とを有する。ニューロモルフィックチップ1は、チップ間相互接続8を介してホストコンピュータ9に接続される。ホストコンピュータ9は、ニューラルネットワークモデルのノードとエッジを、ニューロモルフィックチップ1内の物理ニューロンと重みメモリブロックにマッピングして、例えばスパイキングニューラルネットワーク推論チップを構築する。
【0017】
コア2は、ネットワークインターフェース4と、ニューロンアレイ6と、重みメモリ5とを有する。ニューロンアレイ6は、複数の物理ニューロン10を有する。物理ニューロンはスパイキングニューラルネットワーク推論モデルのノードに対応し、ノードの演算を行う演算器である。重みメモリ5は、複数の重みメモリブロック14を有する。重みメモリブロックは、推論モデルのノード間のエッジに対応し、エッジの重みを記憶する記憶回路である。ネットワークインターフェース4は、ネットワークオンチップ3に設けられたルータ7に接続される。ルータ7は、ネットワークオンチップ3のコア間の通信を監視し、対応するコア宛の通信を取得しコア内のネットワークインターフェース4に入力する。
【0018】
ネットワークオンチップ3からの入力はルータ7によりネットワークインターフェース4に届けられる。ネットワークインターフェース4は、入力をデコードし、デコードされた入力はニューロンアレイ6と重みメモリ5に入力される。ニューロンアレイ内の物理ニューロンは、入力と重みメモリブロックに記憶された重みに基づいてニューロンの計算を実行する。ニューロンの計算結果は、ネットワークインターフェース4でエンコードされルータ7に返信され、ネットワークオンチップ3を経由して送信先のコア2に届けられる。ルータ7の集合は、例えば、二次元または三次元のトポロジで構成され、コア間の通信を可能にする。
【0019】
ホストコンピュータ9は、ニューロモルフィックチップ1にニューラルネットワークモデルのニューロンとニューロン間を接続するエッジの重みをマッピングし、ニューロモルフィックチップ1にニューラルネットワークモデルの学習や推論の演算を実行させる。ホストコンピュータ9は、内部のメモリに記憶したマイグレーションプログラムを実行して、ニューロモルフィックチップ内の欠陥物理ニューロンや欠陥重みメモリブロックのタスクをスペア物理ニューロンや重みメモリブロックにマイグレートして欠陥を修復する。更に、ホストコンピュータ9は、内部のメモリに記憶したマイグレーションフロー生成プログラムを実行して、上記マイグレーションのフローを有するマイグレーションフローを生成する。ホストコンピュータ9は、マイグレーションフローに基づいて欠陥を修復するマイグレーションをニューロモルフィックチップに実行させる。
【0020】
図2は、スパイキングニューラルネットワークモデル11の構成例を示す図である。スパイキングニューラルネットワークモデル11は、ソフトウエアにより実現されるモデルの一例である。スパイキングニューラルネットワークモデル11は有向グラフであり、有向グラフの頂点はニューロンコンピューティングモデル12、有向エッジは重み付け接続モデル13と称される。モデル11の演算は、各ニューロンコンピューティングモデル12の並列演算であり、各ニューロンコンピューティングモデル12は時間ステップと呼ばれるインターバルに同期してそれぞれの計算を実行する。
【0021】
ニューロンコンピューティングモデル12は、各時間ステップにおいて、重み付け接続モデル13の起点の送信元ニューロンコンピューティングモデル12からの入力を受信する。この入力をinput-1~inputMと、各エッジの重みをweight1~weightMとする。各サフィックスは番号である。ニューロンコンピューティングモデル12は、アクティベーション関数factivationを有する。そして、ニューロンコンピューティングモデル12の計算結果である出力outputは、以下の式のとおりである。
【0022】
【数1】
【0023】
上記の計算式によれば、各ニューロンコンピューティングモデル12で発火したスパイク(1:発火、0:非発火)が、出力側の有向エッジの送信先に送信される。そして、送信先のニューロンコンピューティングモデル12が、発火スパイク(1)に有向エッジの重みを乗算し、その累積値をアクティベーション関数に入力し、アクティベーション関数の出力をスパイクとして出力する。アクティベーション関数は、前述したとおり、累積値が閾値を超えれば発火(1)、超えなければ非発火(0)を出力する。
【0024】
図3は、スパイキングニューラルネットワークモデルをニューロモルフィックチップにマッピングする方法を示す図である。ニューロモルフィックチップ1の推論前のフェーズで、スパイキングニューラルネットワークモデルのニューロンコンピューティングモデル12が、ニューロモルフィックチップ内の物理ニューロン10に、重み付け接続モデル13が重みメモリブロック14にそれぞれマッピングされる。図3では、スパイキングニューラルネットワークモデルのニューロンコンピューティングモデル12にラベルI、H、G、Oが与えられ、左上に拡大して示すニューロモルフィックチップ1の物理ニューロン10に、同じラベルIが与えられている。モデル内の重み付け接続モデル13とチップ内の重みメモリブロック14も同様に同じラベルでマッピングされる。
【0025】
図3では、ニューロモルフィックチップ内の物理ニューロン及び重みメモリブロックの一部に、スパイキングニューラルネットワークモデルのニューロンコンピューティングモデル12と重み付け接続モデル13全てがマッピングされる。その結果、ニューロモルフィックチップ内の残りの物理ニューロン10と重みメモリブロック14は、スペア物理ニューロン21及びスペア重みメモリブロック22となる。スペアとは、健全な(正常な)またはマッピングされずに未使用の物理ニューロン及び重みメモリブロックの意味である。本実施の形態では、欠陥物理ニューロンと欠陥重みメモリブロックのタスクをこれらのスペアにマイグレートすることで欠陥を修復する。
【0026】
図4は、ニューロモルフィックチップ1内のネットワークインターフェース4の構成例を示す図である。ネットワークインターフェース4は、入力側に入力回路31Bと入力ルックアップテーブル31Aを、出力側に出力回路33Bと出力ルックアップテーブル33Aを有する。コア内部の物理ニューロンから送信されたアクティベーション関数の出力の発火スパイクに応答して、出力ルックアップテーブル33Aが、スパイクの送信先の物理ニューロンのコア別にグループ化する。図中、出力物理ニューロングループID(34)として示す。出力ルックアップテーブル33Aは、送信元の物理ニューロンにマッピングされたニューロンコンピューティングモデル12とスパイク送信先のニューロンコンピューティングモデル12の対応と、送信先ニューロンコンピューティングモデル12とそれがマッピングされた送信先物理ニューロン10(送信先コア2内の物理ニューロン)との対応を有する。そして、出力回路33Bが、送信先コア別にパケットを送信する。パケットには、送信先コアのアドレスと、送信先ニューロンコンピューティングモデル12のIDを少なくとも有する。パケットは、送信元ニューロンコンピューティングモデル12毎に生成され、各パケットは同じ送信先コア内の複数の送信先ニューロンコンピューティングモデル12を有することができる。
【0027】
入力側では、入力回路31BがネットワークオンチップNoCからパケットを入力する。入力物理ニューロングループID(32)に応答して、入力ルックアップテーブル31Aが、パケット内の単数又は複数の送信先ニューロンコンピューティングモデル12がマッピングされている物理ニューロン10と重みメモリブロック14にスパイクの信号を出力する。この信号に応答して、送信先の物理ニューロン10が重みメモリブロック14に記憶される重みに基づいて、前述の数1の計算を実行する。
【0028】
欠陥ニューロン(欠陥物理ニューロン及び欠陥重みメモリブロックを含む。)がマイグレーションにより修復された後、上記の両ルックアップテーブルではマイグレート先の物理ニューロンのコア内アドレスやコアアドレスが書き換えられる。
【0029】
図5は、本実施の形態における欠陥物理ニューロン及び欠陥重みメモリブロックを修復するマイグレーションを示す図である。図5では、ラベルMF、MWの物理ニューロン10に欠陥19が発生し、同じラベルの重みメモリブロック14に欠陥19が発生したとする。この欠陥を修復する第1の方法では、ホストコンピュータ9が、欠陥物理ニューロンと欠陥重みメモリブロック以外の健全な物理ニューロンと重みメモリブロックに、スパイキングニューラルネットワークモデルのニューロンコンピューティングモデル12と重み付け接続モデル13を再マッピングする。しかし、このような再マッピングは、ホストコンピュータ9に接続されたチップ間相互接続8に接続されているコアからマッピング先の全コアへ、マッピングに必要な大量のデータを送信するため、長い時間を要する。
【0030】
欠陥を修復する第2の方法では、ホストコンピュータ9の制御により、欠陥物理ニューロン及び欠陥重みメモリブロックのタスクのデータを、スペアの物理ニューロン及びスペアの重みメモリブロックにマイグレートする。物理ニューロンのタスクのデータは、例えば、物理ニューロンの演算器のレジスタ内のパラメータ等のコンテキストデータである。重みメモリブロックのタスクのデータは、重みメモリブロック内に記憶されている重み値である。本実施の形態では、第2の方法で欠陥を修復する。この方法では、ホストコンピュータ9からニューロモルフィックチップ1に転送されるデータ量を減らすことができ、修復に要するオフライン時間を短くできる。
【0031】
[コア内マイグレーションプロセス]
本実施の形態における欠陥物理ニューロン等のマイグレーションプロセスでは、ホストコンピュータ9は、第1に、コア内マイグレーションプロセスを実行する。図5にコア内マイグレーションプロセスが示される。コア内マイグレーションプロセスでは、矢印23に示すように、欠陥19を持つ物理ニューロン10のタスクのデータ(例、演算器のコンテキストデータ)を、同じコア2内のスペア物理ニューロン21にマイグレートする。また、欠陥19を持つ重みメモリブロック14のデータ(重み値)を同じコア2内のスペア重みメモリブロック22にマイグレートする。コア内マイグレーションでは、コア内でのデータのマイグレーションであるので、短時間で完了できる。同時に修復後の推論で新たなコア間のスパイクの送信がなく推論の演算時間の増加も回避できる。
【0032】
[コア間マイグレーションプロセス]
もし同じコア内に欠陥を修復するのに必要な数のスペア物理ニューロンまたはスペア重みメモリブロックが存在しない場合、ホストコンピュータは、第2に、コア間マイグレーションプロセスを実行する。コア間マイグレーションプロセスでは、他のコア内のスペア物理ニューロンまたはスペア重みメモリブロックに欠陥物理ニューロンのタスクのデータや欠陥重みメモリブロックのデータをマイグレートする。図5には示されていないが、マイグレーションフローは、欠陥ニューロンのある第1のコアからスペアのある第2のコアにデータがマイグレートされる。
【0033】
但し、欠陥物理ニューロンのレジスタのデータを読み出せない場合、または欠陥重みメモリブロックのデータを読み出せない場合、ホストコンピュータ9がそれらのデータをスペア物理ニューロン及びスペア重みメモリブロックに転送することで、欠陥を修復する。
【0034】
図6は、コア間マイグレーションプロセスの一つの形態であるチェインマイグレーションプロセスを示す図である。本実施の形態では、コア間マイグレーションとしてチェインマイグレーションを実行して、後述するとおりマイグレーション時間の短縮又はマイグレーション後の推論演算での通信時間の短縮、又は両時間の短縮を可能にする。
【0035】
図6には、左からニューロモルフィックチップ例、チェインマイグレーションの準備ステップ、同第2のステップを示す。左端のニューロモルフィックチップ例は、3行3列の9個のコア2を有し、各コアに、使用中ニューロン(物理ニューロン及び重みメモリブロック、以下同じ。)Uと、未修正の欠陥ニューロンFと、スペアニューロンSの数が示される。この例によれば、コア(0,0)が欠陥ニューロンFを100個有し、別のコアが34個又は33個のスペアニューロンSを有する。この場合、コア(0,0)内の全ての欠陥ニューロンF、100個、を隣接するコア(0,1)と(1,0)のスペアニューロンS(合計33+33=66個)にマイグレートすることができない。
【0036】
そこで、チェインマイグレーションでは、中央の準備ステップで、コア(0,1)内の34個の使用中ニューロンUをコア(0,2)内の34個のスペアニューロンSにマイグレートし、更に、コア(0,1)内の33個の使用中ニューロンUをコア(1,1)内の33個のスペアニューロンSにマイグレートする。その結果、コア(0,1)内のスペアニューロンSの数は100個になる。次に、右端の第2のステップで、コア(0,0)内の100個の欠陥ニューロンFを全て隣接するコア(0,1)内の100個のスペアニューロンSにマイグレートする。その結果、コア(0,0)内の100個の欠陥ニューロン全てを、コア(0,1)にマイグレートすることができる。コア(0,1)内に100個の使用中ニューロンがマッピングされることで、マイグレーション後の推論での演算効率の低下が抑制される。このチェインマイグレーションにより欠陥ニューロンをマイグレーションすることによるメリットについては後で詳述する。
【0037】
[欠陥ニューロンをマイグレーションで修復する処理]
図7は、本実施の形態例における欠陥ニューロンをマイグレートする方法のトップレベルのフローチャートを示す図である。ホストコンピュータH_PCが、図7のフローチャートのプロセスを実行する。ホストコンピュータは、ニューロモルフィックチップ内の欠陥ニューロン(欠陥物理ニューロン及び欠陥重みメモリブロックを含む。以下同様。)を検出すると(24)、ニューロモルフィックチップが十分な数のスペアニューロン(スペア物理ニューロン及びスペア重みメモリブロックを含む。以下同様。)を有するか否か判定する(25)。この判定25が偽の場合、欠陥ニューロンを修復することができない。この場合、欠陥ニューロンにマッピングされたニューロンモデル(ニューロンコンピューティングモデル12及び重み付け接続モデル13)を除く新たなスパイキングニューラルネットワークモデルで、新たな訓練を行うことが必要になる(26)。訓練の後、ホストコンピュータが新たな重みとパラメータを物理ニューロンと重みメモリにダウンロードする。
【0038】
一方、判定25が真の場合、ホストコンピュータは、チップ内の全コア、コア数=#cores、において、コア内で欠陥ニューロンをスペアニューロンにマイグレートするコア内マイグレーションを実行する(28)。コア内マイグレーションについては図5で説明した。全てのコアでコア内マイグレーションを実行した後、ホストコンピュータは、チップ内に未修復の欠陥ニューロンがあるか否か判定する(29)。この判定29が偽なら、全ての欠陥ニューロンの修復が終了する。一方、判定29が真なら、ホストコンピュータは、コア間マイグレーションを実行する(30)。コア間マイグレーションでは、ホストコンピュータは、例えば、図6で説明したチェインマイグレーションのように、あるコア内の欠陥ニューロンを別のコア内のスペアニューロンにマイグレートする(30)。本実施の形態では、コア間マイグレーションにおいてコスト関数が小さくなるようなマイグレーションフローが検出される。コスト関数は、マイグレーション時間と、欠陥ニューロンの修復後の推論時のスパイク信号を送信するために必要な通信時間とを有する。
【0039】
[コア内マイグレーション]
図8は、コア内マイグレーションのフローチャートを示す図である。図7に示すとおり、ホストコンピュータは、ニューロモルフィックチップ内の全コア(k=0~#cores)について、コア内マイグレーションを実行する。ホストコンピュータは、コア内の全てのN個のニューロン(i=0~N-1)について以下の処理を繰り返す。
【0040】
ホストコンピュータは、コア内のi番目の物理ニューロンが欠陥か否か(35)、i番目の重さメモリブロックが欠陥か否か(36)を判定する。いずれかの判定が真の場合、ホストコンピュータは、j=0~N-1について、コア内のj番目の物理ニューロン、j番目の重みメモリブロックが未使用で健全か否かの判定(37)を繰り返す。この繰り返し(j=0~N-1)中に判定37が真になると、i番目の欠陥ニューロン(物理ニューロンまたは重みメモリブロック)を、j番目の未使用で健全なニューロン(物理ニューロンまたは重みメモリブロック)にマイグレートとする(38)。この繰り返し中の判定37が全て偽になると、コア内マイグレーションは未修復ニューロンが残った状態で終了する(41)。この場合、図7の判定29が真となり、ホストコンピュータはコア間マイグレーション30に進む。
【0041】
コア内の全てのN個のニューロン(i=0~N-1)のうち欠陥ニューロンが全てスペアニューロンにマイグレートされると、全ての欠陥ニューロンが修復済み状態でコア内マイグレーションが終了する(42)。この場合、図7の判定29が偽となり、ホストコンピュータはマイグレーションを終了し、推論工程に戻る。
【0042】
[コア間マイグレーション]
図8のコア内マイグレーションが未修復の欠陥ニューロンが残った状態で終了すると、図7において判定29が真となり、ホストコンピュータは、コア間マイグレーション30を実行する。
【0043】
図9は、コア間マイグレーション30のフローチャートを示す図である。ホストコンピュータは、まず、未修復の欠陥ニューロンの有向グラフを生成する(43)。有向グラフの生成方法は図10で説明する。そして、ホストコンピュータは、有向グラフに基づいてコア間マイグレーションをチェイン状に有するチェインマイグレーションフローを生成する(90)。チェインマイグレーションの生成方法は、工程91~94により工程90を実行する。工程91~94の説明は有向グラフの説明の後で述べる。
【0044】
[有向グラフの生成とマイグレーションフローの生成]
図10は、有向グラフを生成するフローチャートを示す図である。図11は、ニューロモルフィックチップの例とその有向グラフの例を示す図である。更に、図12は、有向グラフに基づいて抽出したマイグレーションフローの例を示す図である。
【0045】
図11のニューロモルフィックチップの例は、3行3列のコア(0,0)~(2,2)を有し、各コアは256個のニューロン(ここでニューロンは、物理ニューロン及び重みメモリブロックを含む。以下同様。)を有する。各コア内には、使用中のニューロンUと、未修復の欠陥ニューロンFと、スペアニューロンSの個数が示される。これによると、コア(0,0)が100個の未修復の欠陥ニューロンFを有する。
【0046】
図11のニューロモルフィックチップが図10の有向グラフ生成プログラムの入力例となる。図10を参照して、ホストコンピュータは、図11に示す様にソース55とシンク59の2つの頂点を有向グラフに加える(48)。ソース55は未修復の欠陥ニューロンの頂点であり、シンク59はスペアニューロンの頂点である。次に、ホストコンピュータは、全てのコア(k=1~#cores、#coresは全コア数)について以下を実行する。即ち、ホストコンピュータは、コアkの頂点を追加し(49)、ソース55からコアkの頂点へのエッジを追加し、そのエッジの重みとしてコアk内の未修復の欠陥ニューロンの数56を加える(50)。未修復の欠陥ニューロンを有するコアのみにソースからのエッジが追加される。図11の例では、ソース55からコア(0,0)の間のエッジの重みをコア(0,0)内の未修復の欠陥ニューロン数100にする。
【0047】
次に、ホストコンピュータは、コアkの頂点からシンク59へのエッジを追加し、そのエッジの重みとしてコアkの頂点内のスペアコアの数57を加える(51)。スペアを有するコアのみにシンクへのエッジが追加される。図11の例では、コア(0,0)を除く全8個のコアからシンク59に向かうエッジにそれぞれのコアのスペアコア数が追加されている。
【0048】
全てのコアの頂点の追加と、ソースと頂点間のエッジ及びその重みと、頂点とシンク間のエッジ及びその重みが有向グラフに加えられた後、ホストコンピュータは、所定の距離D_th以内の1対のコアの間にエッジを追加し(52)、エッジの重みにコアから別のコアへのマイグレートできるニューロンの最大値(容量)58を割り当てる(53)。図11の例では、例えばコア(0,0)から(0,1)の間にマイグレート可能な最大数256が割り当てられている。ここで、所定の距離D_thとは、例えばコア間のマンハッタン距離であり、ネットワークオンチップを伝搬するパケットのホップ数である。所定の距離D_thは、例えば、1または2等のようにできるだけ短くするのが望ましい。所定の距離D_th=1の場合、縦または横の隣接コアの頂点の間にエッジが追加される。マイグレート可能な最大数とは、マイグレート先のコア内の正常なニューロン数であり、コア内の全ニューロン数から欠陥ニューロン数を減じた数である。コア間のチェインマイグレーションを行う場合、マイグレート先のコア内の正常ニューロン数まで、頂点間でニューロンをマイグレート可能である。図11に示した有向グラフのコアに対応する頂点間のエッジにはマイグレート可能なニューロンの最大数58が示されている。
【0049】
そこで、図9を参照して、ホストコンピュータは、ソース55から出ているエッジの重みである欠陥ニューロンm(mは1~F_neurons、F_neuronsは欠陥ニューロン数)を各頂点間の最大マイグレート数の範囲内で後段の頂点にマイグレートすること(92)をシンク59に達するまで(93)繰り返して、シンク59に達するマイグレーションフローを選択する。ホストコンピュータは、工程92と93のフロー選択処理を、ソース55から出ているエッジの重み値である未修復の欠陥ニューロンm(mは1~F_neurons)それぞれについて実行する(91,94,95)。つまり、各欠陥ニューロンの為のマイグレーションフローの選択は、シンク59に向かうエッジの重み値の合計がソース55から出ている欠陥ニューロンの数f_neuronsに達するまで行われる(94のNO)。
【0050】
図12には、有向グラフに基づいて検出したコア間マイグレーションフローの一例が示される。ソース55から頂点(0,0)へのエッジには、未修復の欠陥ニューロン数56とマイグレーションフロー数64が分子/分母に示される。この例では100/100である。頂点(0,0)から(0,1)へのエッジには、最大マイグレーション数58とマイグレーションフロー数64が分子/分母に示される。この例では256/33である。(0,0)から(1,0)へのエッジと、(1,0)から(2,0)へのエッジも同様である。そして、頂点(0,1)(1,0)(2,0)それぞれからシンク59へのエッジには、スペアニューロン数57とマイグレーションフロー数(使用したスペアニューロン数)64が分子/分母に示される。この例では、それぞれ33/33、33/33、34/34である。
【0051】
上記の通り、有向グラフに基づくコア間マイグレーションフローの生成は、コア内の未修復の欠陥ニューロンを、ソース55に接続される頂点から後段の頂点を経由してシンク59に達するまで、頂点間のエッジの最大マイグレーション数またはスペアニューロン数の範囲内で移動する経路を選択することである。どの後段の頂点を選択するかは、エッジの最大マイグレーション数がゼロでなければどの後段の頂点を選択しても良い。但し、シンク59に接続される頂点ではそのエッジのスペアニューロン数の範囲内しかマイグレートできない。
【0052】
図12には、生成されたコア間マイグレーションフローが記載されている。図12のマイグレーションフローの例に基づいて、ホストコンピュータは、あるコア内の欠陥ニューロン(欠陥物理ニューロンまたは欠陥重みメモリブロック)のタスクを別のコア内のマッピングされていない未使用で健全なニューロン(物理ニューロンまたは重みメモリブロック)に移行(マイグレート)する。図6で説明したとおり、コア間マイグレーションでは、まず、ホストコンピュータは、有向グラフ内のあるコアのスペアニューロンに前段コアの使用中のニューロンをマイグレートして前段コアのスペアニューロンの数を増やす。その後、ホストコンピュータは、前段コアの増加したスペアニューロンに更に前段のコア内の欠陥ニューロンをマイグレートする。
【0053】
図12の例では、マイグレーションフローを降順に実行して、ホストコンピュータは、コア(1,0)内の使用中ニューロンをコア(2,0)内のスペアニューロンにマイグレートしてコア(1,0)内のスペアニューロンを67個に増やす。次に、ホストコンピュータは、コア(0,0)内の67個の欠陥ニューロンをコア(1,0)のスペアニューロンにマイグレートし、更に、コア(0,0)内の33個の欠陥ニューロンをコア(0,1)のスペアニューロンにマイグレートする。この結果、ソース55から(0,0)へのエッジの重みである欠陥ニューロン数100個と、(0,1)(1,0)(2,0)からシンク59へのエッジの重みであるスペアニューロン数100個が等しくなり、欠陥ユーロンの修復が完了する。
【0054】
上記の通り、有向グラフに基づいて生成された未修復の欠陥ニューロンのマイグレーションフローは、コア間マイグレーションをチェイン状に繰り返すチェインマイグレーションである。以下、有向グラフに基づいて生成するコア間のチェインマイグレーションを含むマイグレーションフローのメリットを説明する。
【0055】
図13は、チェインマイグレーションを有さないコア間マイグレーションフローの一例を示す図である。図13には、3×3=9個のコア内にモデルの3層L1~L3内のニューロンがマッピングされた(1)初期マッピング状態と、(2)チェインマイグレーションを有さないコア間マイグレーションフローとが示される。(1)初期マッピング状態では、第1層L1内の10個のニューロンがコア(0,0)、(0,1)(1,0)に4個、3個、3個ずつマッピングされ、第2層L2内の16個のニューロンと第3層L3内の4個のニューロンが図示されるようにマッピングされる。そして、スペアニューロンがコア(0,1)(1,0)(2,2)内に1個、1個、2個それぞれ存在する。
【0056】
(2)チェインマイグレーションを有さないマイグレーションフローでは、コア(0,0)内の4個の欠陥ニューロンの1個、1個、2個が、コア(0,1)(1,0)(2,2)内のスペアコアにマイグレートされる。マイグレーションフローが破線矢印で示されるとおり、いずれのマイグレーションフローも、コア(0,0)内の欠陥ニューロンがコア(0,1)(1,0)(2,2)内のスペアコアにマイグレート直接マイグレートされる。つまり3つのマイグレーションはチェイン状ではない。
【0057】
第1層L1の2個のニューロンが、第1層L1のニューロンがマッピングされているコア(1,0)(0,1)から遠いコア(2,2)にマイグレートされている。そのため、マイグレーション後の推論の演算工程で、コア(1,0)(0,1)へのスパイクのパケット入力と、コア(2,2)へのスパイクのパケット入力とは、入力タイミングが異なる。このため、推論の演算工程で、第1層L1内のニューロン間で入力タイミングが大きく異なり、第1層L1内の複数のニューロンの演算完了が大きくばらつき、第1層L1での演算完了が遅くなる。一方で、(1)初期マッピング状態では、第1層L1内のニューロンが、距離D=1以内のコア(0,0)(0,1)(1,0)内にマッピングされていたため、第1層L1内の各ニューロンの演算完了が非常に近いタイミングで完了する。その結果、第1層L1での演算完了の遅れは少ない。
【0058】
図14は、チェインマイグレーションを有するコア間マイグレーションフローの一例を示す図である。(1)初期マッピング状態は図13と同じである。一方、(2)チェインマイグレーションを有するマイグレーションフローは、図示されるとおり、5つのチェインマイグレーションフローを有する。即ち、図中破線矢印で示すとおり、コア(1,2)内のL3の2個のニューロンがコア(2,2)内の2個のスペアニューロンにマイグレートとされ、コア(1,1)内のL2の2個のニューロンがコア(1,2)内の2個のスペアニューロンにマイグレートされ、コア(0,1)内のL2の2個のニューロンがコア(1,1)内の2個のスペアニューロンにマイグレートされ、コア(0,0)内のL2の1個のニューロンがコア(1,0)内の1個のスペアニューロンにマイグレートされ、コア(0,0)内のL2の3個のニューロンがコア(0,1)内の3個のスペアニューロンにマイグレートされる。全てのマイグレーションが距離D=1の隣接コア間のマイグレーションであり、チェイン状のマイグレーションである。
【0059】
上記のチェインマイグレーションを有するマイグレーションフローの結果、第1層L1内の10個のニューロンは、距離D=1の隣接コア(0,1)(1,0)(1,1)内に固まってマッピングされる。このマッピング状態は、(1)L1の10個のニューロンが隣接コア(0,0)(0,1)(1,0)内にマッピングされていた初期のマッピング状態から少ししか変化していない。マイグレーション後の隣接コア(0,1)(1,0)(0,0)内のL1のニューロンに届くパケットのタイミングも近接する。
【0060】
以上の通り、有向グラフに基づいて生成されるチェインマイグレーションを有するマイグレーションフローによれば、マイグレーション後のニューロンのマッピング状態の変更は最小限に留まる。これは、有向グラフが所定距離D_th以下のコア間にエッジを有し、そのエッジを経由するマイグレーションフローが生成されるからである。所定距離D_th=1にすれば生成されるマイグレーションフローは隣接コア間のフローになり特に望ましい。但し、所定距離D_th=1では、ある頂点で選択できる後段の頂点の数が限定されてしまい、マイグレーションフローを生成できない場合がある。その場合、所定距離D_thを1より長く設定することで解決できる。
【0061】
有向グラフに基づいてマイグレーションフローを生成する場合、以下のメリットがある。
(1)同じ層内のニューロンに届くパケットの入力タイミングが大きく異なることが抑制され、マッピング後の推論の演算遅延を抑制できる。
(2)図13、14では示していないが、同じ層内のニューロンができるだけ同じコア内にマッピングされた状態を大部分で維持できるため、同じ層内の複数のニューロンへ送信するパケットをコア毎にグルーピングできるメリットを維持できる。これによりマッピング後の推論の演算効率の低下を抑制できる。
【0062】
[第2の実施の形態]
図15は、第2の実施の形態におけるコア間マイグレーション30のフローチャートを示す図である。ホストコンピュータは、まず、未修復の欠陥ニューロンの有向グラフを生成する(43)。ホストコンピュータは、有向グラフに基づいてコア間マイグレーションのマイグレーションフローを抽出する。そして、ホストコンピュータは、どちらのアルゴリズムに基づいてコア間マイグレーションフローを見つけるかを選択する(44)。ホストコンピュータがマイグレーションフローだけを最適化するアルゴリズムを選択すると、マックスフロー・ミニカットアルゴリズムを実行して有向グラフに基づき最適なマイグレーションフローを生成する(45)。一方、ホストコンピュータがマイグレーションフローと推論時の通信の両方を最適化するアルゴリズムを選択すると、遺伝アルゴリズムを実行して、有向グラフに基づき最適なマイグレーションフローを生成する(46)。上記のいずれかのアルゴリズムで生成したマイグレーションフローに基づいて、ホストコンピュータは、コア間マイグレーションを実行する(47)。
【0063】
[遺伝アルゴリズムによるマイグレーションフロー最適化方法]
図16は、本実施の形態における遺伝アルゴリズムによるマイグレーションフロー最適化のフローチャートを示す図である。図17から図21は遺伝アルゴリズムによるマイグレーションフロー最適化方法の具体例を示す図である。図17から21を参照して図16の最適化方法について説明する。
【0064】
図16に示すように、まず、ホストコンピュータは、コア間マイグレーションを行うニューロモルフィックチップの有向グラフを生成する(65)。そして、有向グラフに基づいてK個のマイグレーション解をランダムに生成する(66)。これらの処理65、66について以下具体例で詳述する。
【0065】
図17は、最適化対象のニューロモルフィックチップの構成例とモデルのマッピング例を示す。(1)基本的構成については、各コアが4個のニューロンを有し、そのうち3個が使用中ニューロン、1個がスペアニューロンである。そして、チップが2×3=6個のコアを有する。そのため、ニューロモルフィックシステムは、ニューロン数が24、スペアニューロン数が6、使用中ニューロン数が18である。一方、(2)SNNに示すスパイキングニューラルネットワークモデルは、第1層L1が8個のニューロンを、第2層L2が8個のニューロンを、第3層L3が2個のニューロンを有する。各層が全結合層であり、つまり、第1層L1の各ニューロンが第2層L2の全てのニューロンに接続され、第2層L2の各ニューロンが第3層L3の全てのニューロンに接続される。図17中、(3)チップの初期状態のステータスに、各コア内の使用中ニューロンUとスペアニューロンSのそれぞれの数が示される。矢印がネットワークオンチップに、矢印に接続された四角形がルータにそれぞれ対応する。更に、図17中、(4)初期状態のマッピングに、使用中ニューロンUにマッピングされたモデルの層L1、L2、L3の数と、スペアニューロンSの数が示される。
【0066】
図18は、欠陥状態とコア内マイグレーションとを示す図である。図17の(4)初期のマッピング状態から、コア(0,0)内の第1層L1の3つのニューロンが欠陥ニューロンFに変化すると、図18の(1)欠陥状態に変化する。そこで、ホストコンピュータが図7のコア内マイグレーション28を実行すると、(2)コア(0,0)内のマイグレーションに示すとおり、コア(0,0)内の1個のスペアニューロンに第1層L1の1個の欠陥ニューロンがマイグレートされる。この結果、コア(0,0)内には2個の欠陥ニューロンが未修復の状態で残る。
【0067】
そして、ホストコンピュータが図7のコア間マイグレーション30を実行し、図12の未修正のニューロンの有向グラフGを生成する43を実行すると、図18の(3)生成された有向グラフが生成される。
【0068】
図19は、図18の有向グラフに基づくコア間マイグレーションによるマイグレーションフローの解1を示す図である。ホストコンピュータは、後述するアルゴリズムを実行して、コア間マイグレーションによるマイグレーションフローの解1を生成する。その解1は、有向グラフに示すとおり、コア(1,1)の1個の使用中ニューロン(L2)を(1,2)のスペアニューロンにマイグレートし、(1,1)のスペアニューロンを1個増やす(計2個)。次に、コア(0,1)の2個の使用中ニューロン(2個のL2)を(1,1)の2個のスペアニューロンにマイグレートし、(0,1)内のスペアニューロンを2個増やす。さらに、コア(0,0)の2個の欠陥、未修復ニューロン(F, L1)を(0,1)の2個のスペアニューロンへマイグレートする。上記の3つのチェインマイグレーションにより、コア(0,0)内の未修復の2個の欠陥ニューロンが修復される。
【0069】
図20は、図18の有向グラフに基づくコア間マイグレーションによるマイグレーションフローの解2を示す図である。この解2の3つのチェインマイグレーションは、図中の有向グラフと、解2に括弧内に示したマイグレーション対象のニューロンの層とから明らかである。
【0070】
図21は、図18の有向グラフに基づくコア間マイグレーションによるマイグレーションフローの解3を示す図である。この解3の2つのチェインマイグレーションは、図中の有向グラフと、解3に括弧内に示したマイグレーション対象のニューロンとから明らかである。
【0071】
上記の有向グラフに基づいてK個のマイグレーション解をランダムに生成する工程66のアルゴリズムについては、図24、25、26で詳述する。
【0072】
図16に戻り、ホストコンピュータは、第1世代(Gen=1)において(67)、K=3つの解それぞれについてコストの計算を行い(68~70)、コストの値に基づいてK=3つの解からB=2つの最良の解をセレクト(選択淘汰)する(71)。具体的にはコストの値が最も小さい2つの最良の解を選択する。
【0073】
そして、ホストコンピュータは、B=2個の最良の解をクロスオーバー(交差)して、新たなK=3個の解を生成する(72)。さらに、ホストコンピュータは、新たなK=3個の解をミューテート(突然変異)する(73)。ホストコンピュータは、世代数GenがパラメータGに達するまで(74)、前述のコストの計算、選択淘汰、交差、突然変異を繰り返し実行する。最後に、K=2個の解から各解のコスト値に基づいて最良の1個の解を選択する(75)。世代数がパラメータGに達する条件に代えて、コスト値が目標の値に達するという条件に代えても良い。
【0074】
上記のコストの計算、選択淘汰、交差、突然変異について、前述の3つの解を例にして説明する。
【0075】
[コストの計算と選択淘汰]
本実施の形態における遺伝アルゴリズムのコスト関数は、欠陥ニューロンをマイグレーションしてニューロモルフィックチップを正常な状態にするときのマイグレーションフローコストMcostと、マイグレーション後の新マッピングのスパイキングニューラルネットワークモデルの推論時の通信コストFcostを有する。更に、本実施の形態では、前記2つのコスト関数を1つのコスト関数にする。例えば、1つのコスト関数は、2つのコスト関数値のうちより重要な関数値を整数部に、より重要でない関数値を小数部に有する。代替例としては、1つのコスト関数は、2つのコスト関数値のうちより重要な関数値にはより大きな重み付けを行い、より重要でない関数値にはより小さい重み付けを行い、両者を加算する。
【0076】
マイグレーションフローコストMcostは、以下の式により算出される。
【0077】
【数2】
ここで、iとjはフロー元とフロー先のコアIDで、dijはチップ内のコアi,j間のマンハッタン距離、mijはコアi,j間をマイグレートするニューロン数である。ニューロモルフィックチップ内では2次元または3次元のネットワークオンチップの各頂点にルータが配置されているので、マンハッタン距離dijは、コア間の通信のホップ数(ルータ数)に対応する。mijはコアi,j間にマイグレーションフローが存在する場合のニューロン数であり、マイグレーションフローがない場合はニューロン数mijが0になる。
【0078】
次に、通信コストFcost は、以下の式により算出される。
【0079】
【数3】
ここで、mとnは通信元と通信先のニューロンコンピューティングモデルがマッピングされたチップ内のニューロン(物理ニューロン及び重みメモリブロック)のIDで、dmnはチップ内のニューロンm,nを有するコア間のマンハッタン距離、cmnはニューロンm,n間の通信接続の有無(0:接続なし、1:接続あり)である。ニューロモルフィックチップ内では2次元または3次元のネットワークオンチップの各頂点にルータが配置されているので、ニューロン間のマンハッタン距離dijは、ニューロンが属するコア間のマンハッタン距離となり、通信のホップ数(ルータ数)に対応する。また、ニューロンm,n間のスパイクの通信では、送信元コア内の1つのニューロン(モデル)から通信先コア内の複数のニューロン(モデル)への複数のスパイク送信をまとめて1回で送信できる。よって、同じコア間の1つの送信元ニューロン(モデル)から複数送信先ニューロン(モデル)への複数のスパイクの通信コストは1に集約できる。
【0080】
マイグレーションフローコストMcostと通信コストFcostは整数である。そのため、マッピングされたチップ内での最大通信コストFmax costに基づいて通信コストFcostを正規化して、正規化通信コストFcost / Fmax costを算出する。最終コストCostは、以下の式により算出される。
【0081】
【数4】
上記式に示すとおり、最終コストCostは、整数部にマイグレーションフローコストMcostを、小数部に正規化通信コストFcost/ Fmax costを有する。例えば、Mcost=100、Fcost=340、Fmax cost=1000の場合、Cost=100.34。
【0082】
上記の最終コスト関数は以下のような選択淘汰のルールが可能である。まず、マイグレーションフローコストが最小の解を選択する。次に、複数の解が同じマイグレーションフローコストの場合、最小の通信コストの解を選択する。
【0083】
次に、図19、21、22の3つの解のマイグレーションコストと通信コスト及び最終コストの計算例を説明する。図19の解1の場合、コア(0,0)から(0,1)へマイグレートされるニューロン数が2個で、マンハッタン距離は1であるので、そのマイグレーションコストは2である。同様に、コア(0,1)から(1,1)へマイグレートされるニューロン数が2個であり、コア(1,1)から(1,2)へマイグレートされるニューロン数は1個で、マンハッタン距離は共に1である。よって、合計のマイグレーションコストは2+2+1=5となる。
【0084】
一方、通信コストは、ニューロンコンピューティングモデル(NCM)間のエッジのマンハッタン距離の合計である。そこで、図19に示されるとおり、第1層L1のNCMのコアから第2層L2のNCMのコア間のマンハッタン距離と、第2層L2のNCMのコアから第3層L3のNCMのコアへのエッジのマンハッタン距離を算出する。
【0085】
マイグレーション後のコア内のニューロン構成によれば、L1からL2へのスパイク通信は、送信元がコア(0,0)の場合、次のとおりになる。つまり、L1からL2へのスパイク通信は、コア(0,0)から(0,1)へホップ数1で、(0,0)から(1,0)へホップ数1で、(0,0)から(1,1)へホップ数2で、(0,0)から(1,2)へホップ数3で、それぞれ行われる。それぞれのコア間通信では、コア(0,0)内のL1の送信元ニューロンは1つだけである(L1×1)。したがって、コア(0,0)内の送信元ニューロン(L1×1)から(1,1)内の2個のニューロン(L2×2)への複数のスパイク通信及び(1,1)内の送信元ニューロン(L1×1)から(1,2)内の4個のニューロン(L2×4)への複数のスパイク通信を、それぞれ1回にまとめることができる。よって、コア(0,0)からの通信コストは、合計でΣ(送信元ニューロン数×距離(ホップ数))=1+1+2+3=7となる。
【0086】
送信元がコア(0,1)の場合、コア(0,1)から(1,0)の場合、(0,0内のL1の送信元ニューロン数が2、距離(ホップ数)が2であるので、通信コストは2×2=4となる。コア(0,1)から(1,1)(1,2)それぞれの通信コストは、同様の計算で2,4となり、合計10となる。残りの通信コストの計算は、図19に示されている通りである。
【0087】
よって、解1での通信コストは7+10+21+10+6=54となる。最大通信コストが100と仮定すると、コストCostは、数式4に基づいて、Cost=5.54となる。図20の解2も同様にして計算すると、Cost=5.58となる。図21の解3ではCost=3.48となる。まとめると以下のとおりである。
解1:Cost=5.54
解2:Cost=5.58
解3:Cost=3.48
ホストコンピュータは、選択淘汰(71)でK=3つの解からコストが最良のB=2つの解を選択すると、解1と3を選択する。最良のB個の解はクロスオーバーされるのでBは複数である。
【0088】
[交差]
図22は、マイグレーションフローの解の交差の具体例を示す図である。図22には、2つの解A,Bの具体例が示される。コア内マイグレーション後の有向グラフは図15と同じであり、解AとBによるコア間マイグレーションフローは、コア(0,0)内の2つの欠陥ニューロンについて以下の2つのマイグレーションフローをそれぞれ有する。
解A:
1番目の欠陥ニューロン:s→(0,0)→(1,0)→(1,1)→t
2番目の欠陥ニューロン:s→(0,0)→(1,0)→(1,1)→(1,2)→t
解B:
1番目の欠陥ニューロン:s→(0,0)→(0,1)→(1,1)→t
2番目の欠陥ニューロン:s→(0,0)→(0,1)→t
上記の例の場合、交差により、解Aの1番目の欠陥ニューロンのフローと解Bの2番目の欠陥ニューロンのフローを有する子Xのマイグレーションフローが、生成される。更に、解Bの1番目の欠陥ニューロンのフローと解Aの2番目の欠陥ニューロンのフローを有する子Yのマイグレーションフローが、生成される。すなわち、交差では、親の解A、Bのマイグレーションフローを、欠陥ニューロン別のマイグレーションに分解し、分解した欠陥ニューロン別のマイグレーションを交差して子X,Yを生成する。
【0089】
図22の例では、B=2個の親の解A、Bを交差して2つの子の解X、Yを生成しているが、欠陥ニューロン数が3以上で各解のマイグレーションフロー数が3以上であれば、3×2=6つ以上の子を生成できる。その場合、6つ以上の子からランダムにK=3つの子を選択する。
【0090】
[突然変異]
図23は、マイグレーションフローの解の突然変異の具体例を示す図である。解Cは図22の解Aと同じである。解Cはコア(0,0)内の2つの欠陥ニューロンのマイグレーションフローを有する。そこで、突然変異により生成される解Cmでは、図23に示す例のように、2番目の欠陥ニューロンのマイグレーションフローの途中の頂点(コア)が(1,0)から(0,1)に変更され、コア(1,0)からシンクtまでのフローが、変更したコア(0,1)からシンク59までのフロー(0,1)->tに置き換えられている。したがって、マイグレーションフローの解の場合、突然変異の具体例は、フローの途中のコアからシンク59までのフローを変更することである。または、フローの途中の1つまたは複数の頂点(コア)を変更することである。
【0091】
[有向グラフに基づいてマイグレーション解をランダムに生成する工程66]
図24は、有向グラフに基づいてマイグレーション解をランダムに生成する処理のフローチャートを示す図である。図25及び図26は具体例である。フローチャートと具体例を参照しながらマイグレーション解をランダムに生成する処理を説明する。
【0092】
ホストコンピュータは、有向グラフ内のソース55からノードa[i]への全フローをリストアップする(76)。そして、全ノードa[i]が「訪問済」に設定される。図25のループ1にあるとおり、ソース55に接続されるノードは(0,0)のみである。よって、配列a[i]は、a[1] = [(0,0)]となり、ノード(0,0)が「訪問済」になる。
【0093】
次に、ホストコンピュータは、a[i]の未訪問の隣接ノードの数Nを取得する(78)。ノード(0,0)の隣接ノードは(0,1)(1,0)であるのでN=2となる。次に、1とNとの間の数Rをランダムに選択する(79)。a[i]のR個の隣接ノードb[1:R]をランダムに配列する(80)。ループ1では、R=1が選択される。そして、ランダム化された1個の隣接ノードbがb= [(0,1)]となる。
【0094】
次に、ホストコンピュータは、i=1~Rのb[1:R]それぞれを訪問する(1~R全て)(81)。そして、(1)a[i]→b[j]のフロー数がa[i]→b[j]のキャパシティ以下、且つ、(2)a[i]→b[j]のフロー数の合計=a[i]へ入力するフロー数、を満たすように、a[i]→b[j]のフローをランダムに取得する(82)。ループ1では、ノード(0,1)が訪問され、ノード(0,0)→(0,1)間の容量2以下の2つのフローを取得する。その結果、a[i]→b[j]のフロー数の合計=a[i]へ入力するフロー数が、満たされる。即ち、上記(1)(2)が満たされる。
【0095】
次に、ホストコンピュータは、リストb[j]のうちシンク59を除き、全b[j]を訪問済に設定する(83)。そして、全ノードを訪問したか?を判定し(84)、判定が真(Yes)の場合フローを終了する。判定が偽(NO)の場合ソース55からのフロー数=シンク59へのフロー数が満たされたか?を判定する(85)。YESの場合フローを終了する。NOの場合、リストb[j]をリストa[i]に置き換えて、リストb[j]を削除する(86)。ループ1では、b[(0,1)]を訪問済みとする。そして、全ノードを訪問しておらず84はNO、ソースからのフロー数=2とシンクへのフロー数=0が等しくないので85もNOとなり、リストb[j]をリストa[i]に置き換えてリストb[j]が削除される。以上でループ1は終了する。
【0096】
図25のループ2では、リストa[i]がa[1] = [(0,1)]となり(76)、ノード(0,1)の未訪問の隣接ノード数NがN=2((1,1),(0,2))となり(78)、1~2の間からR=1が選択され(79)、(0,1)のR=1個の隣接ノードb[1:R]がb[1]=[(1,1)]となり(80)、(1,1)を訪問し(81)、a[1] = [(0,1)]からb[1]=[(1,1)]へのフロー数=2により以下となる(82)。
【0097】
【数5】
そして、b[1]=[(1,1)]が訪問済みに設定される(83)。84と85でNOとなる。そして、a[i]が b = [(1,1)]に置き換えられる(86)。
【0098】
図26のループ3では、リストa[i]がa[1] = [(1,1)]となり(76)、ノード(1,1)の未訪問隣接ノード数NがN=3((1,0),(1,2),t)となり(78)、1~3の間からR=2が選択され(79)、(0,1)のR=2個の隣接ノードb[1:R]がb[1:2]=[(1,2),t]となり(80)、(1,2)とtを訪問し(81)、a[1] = [(1,1)]からb[1:2]=[(1,2),t]へのフロー数=1+1=2により以下となる(82)。
【0099】
【数6】
そして、b[1]=[(1,2)]が訪問済みに設定される(83)。84と85でNOとなる。そして、a[i]が b = [(1,2)]に置き換えられる(86)。
【0100】
図26のループ4では、リストa[i]がa[1] = [(1,2)]となり(76)、ノード(1,2)の未訪問隣接ノード数NがN=1(t)となり(78)、1~1の間からR=1が選択され(79)、(1,2)のR=1個の隣接ノードb[1:R]がb[1]=[t]となり(80)、tを訪問し(81)、a[1] = [(1,2)]からb[1]=[t]へのフロー数=1により以下となる(82)。
【0101】
【数7】
そして、tが除去されるとb[1]が空になる(83)。84がNOだが85でYESとなり、フローが終了する。
【0102】
図24のフローチャートに示されたマイグレーション解をランダムに生成する処理は以下の通りまとめることができる。
(1)ソース55からシンク59に進みながら(86)、
(2)まず、ソース55に接続される全ノードa[i]をリストアップし(76)、以下を繰り返す。
(3)a[i]に隣接するノードb[j]=b[1:R]をランダムに選択し(80)、
(4)選択されたフローの合計数=a[i]に入るフロー数を満たすまで、aからbへのフローをランダムに選択し(82)、
(5)もしソース55からのフロー数=シンク59へのフロー数(85)が偽なら、bをaに置き換え(86)、85が真なら終了する。
(6)全ノードを訪問したが(84)、ソース55からのフロー数=シンク59へのフロー数が偽なら(85is NO)、解の生成は失敗となる。
【0103】
以上説明したとおり、第1の実施の形態によれば、ニューロモルフィックチップ内の欠陥ニューロン(欠陥物理ニューロン及び欠陥重みメモリブロックを含む。以下同様。)をスペアニューロンにマイグレートするマイグレーションフローを探索する際に、ニューロモルフィックチップに対応した有向グラフに基づいて欠陥ニューロンをマイグレートするコア間チェインマイグレーションを含むマイグレーションフローを生成することで、マイグレーション後のチップ内のコアへのモデルのニューロンのマッピング状態を、マイグレーション前の状態とできるだけ近くして、マイグレーション後の推論の演算効率の低下を抑止できる。
【0104】
また、第2の実施の形態によれば、ニューロモルフィックチップ内の欠陥ニューロン(欠陥物理ニューロン及び欠陥重みメモリブロックを含む。)をスペアニューロンにマイグレートするマイグレーションフローを探索する際に、マイグレーションコストと通信コストとを有するコスト関数を使用することで、マイグレーション時間を短く、推論時の演算時間も短くできるマイグレーションフローを生成することができる。
【0105】
2つのコストを有するコスト関数を使用するので、ランダムに複数のマイグレーションフローの解を生成し遺伝アルゴリズムに基づいて最適なマイグレーション解を求めることが望ましい。
【符号の説明】
【0106】
1:ニューロモルフィックチップ(神経模倣チップ、NM_CP)
2:ニューラルコンピューティングコア、コア(NCC)
3:ネットワークオンチップ(NoC)
4:ネットワークインターフェース(NW_IF)
5:重みメモリ(WM)
6:ニューロンアレイ(演算器アレイ)
7:ルータ(RT)
8:チップ間相互接続(インターチップインターコネクト)
9:ホストコンピュータ
10:物理ニューロン(P_NR)
11:スパイキングニューラルネットワーク(SNN)
12:ノード、ニューロンコンピューティングモデル(NCM)
13:エッジ、重み付け接続モデル(WCM)
14:重みメモリブロック(WM_B)
19,20:欠陥
21:スペア物理ニューロン
22:スペア重みメモリブロック
55:ソース
59:シンク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26