JP7241771B2 - 実行時再構成可能なニューラル・ネットワーク・プロセッサ・コア - Google Patents

実行時再構成可能なニューラル・ネットワーク・プロセッサ・コア Download PDF

Info

Publication number
JP7241771B2
JP7241771B2 JP2020560976A JP2020560976A JP7241771B2 JP 7241771 B2 JP7241771 B2 JP 7241771B2 JP 2020560976 A JP2020560976 A JP 2020560976A JP 2020560976 A JP2020560976 A JP 2020560976A JP 7241771 B2 JP7241771 B2 JP 7241771B2
Authority
JP
Japan
Prior art keywords
vector
activation
neural
memory
core
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020560976A
Other languages
English (en)
Other versions
JP2021527864A (ja
Inventor
キャシディ、アンドリュー、ステファン
アップスワミー、ラシナクマール
アーサー、ジョン、バーノン
ダッタ、パラブ
エッサー、スティーブン、カイル
フリックナー、マイロン
クラモ、ジェニファー
モダ、ダルメンドラ
ペナー、ハルトムート
潤 澤田
タバ、ブライアン、セイショー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2021527864A publication Critical patent/JP2021527864A/ja
Application granted granted Critical
Publication of JP7241771B2 publication Critical patent/JP7241771B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Computer Hardware Design (AREA)
  • Complex Calculations (AREA)

Description

本開示の実施形態は、ハードウェア・ニューラル・ネットワーク・プロセッサに関し、より具体的には、実行時再構成可能なニューラル・ネットワーク・プロセッサ・コアに関する。
本開示の実施形態によれば、ニューラル・コアが提供される。ニューラル・コアは、重みメモリ、活性化(activation)メモリ、ベクトル・マトリクス乗算器、およびベクトル・プロセッサを含む。ベクトル・マトリクス乗算器は、重みメモリから重みマトリクスを受信し、活性化メモリから活性化ベクトルを受信し、重みマトリクスと活性化ベクトルとのベクトル・マトリクス乗算を計算するように適合される。ベクトル・プロセッサは、1つまたは複数のベクトル・ソースから1つまたは複数の入力ベクトルを受信し、1つまたは複数の入力ベクトルに対して1つまたは複数のベクトル関数を実行して出力ベクトルを生じるように適合される。いくつかの実施形態では、プログラマブル・コントローラは、ニューラル・コアを構成し、動作させるように適合される。
本発明の実施形態は、ここで単なる例として添付図面を参照して説明される。
本開示の実施形態による、ニューラル・コアを示す。 本開示の実施形態による、推論処理ユニットによって実行される論理動作を示す。 本開示の実施形態によるニューラル・コアおよび関連ネットワークを示す。 本開示の実施形態による例示的な空間内側ループおよびフィルタ内側ループのためのコア・タイミング図である。 本開示の実施形態による例示的な空間内側ループおよびフィルタ内側ループのためのコア・タイミング図である。 本開示の実施形態による、ベクトル・ユニットの詳細図である。 本開示の実施形態による、ニューラル・コアを構成するための方法を示す。 本開示の実施形態による、ニューラル・コアを構成するための方法を示す。 本開示の実施形態による、コンピューティング・ノードを示す。
人工ニューロンは、出力がその入力の線形結合の非線形関数である数学関数である。2つのニューロンは、1つの出力がもう1つへの入力である場合に接続される。重みは、1つのニューロンの出力と別のニューロンの入力との間の接続の強度を符号化するスカラ値である。
ニューロンは、その入力の重み付け合計に非線形活性化関数を適用することによって、活性化と呼ばれるその出力を計算する。重み付け合計は、各入力を対応する重みと乗算すること、および積を累計することによって計算される中間結果である。部分合計は、入力のサブセットの重み付け合計である。全ての入力の重み付け合計は、1つまたは複数の部分合計を累計することによって段階的に計算され得る。
ニューラル・ネットワークは、1つまたは複数のニューロンの集合である。ニューラル・ネットワークは、しばしば、層と呼ばれるニューロンのグループに分割される。層は、全てが同一層から入力を受信し、全てが同一層に出力を送信し、典型的には類似関数を実行する、1つまたは複数のニューロンの集合である。入力層は、ニューラル・ネットワーク外のソースからの入力を受信する層である。出力層は、ニューラル・ネットワーク外のターゲットに出力を送信する層である。他の層は全て、中間処理層である。多層ニューラル・ネットワークは、1つよりも多くの層を有するニューラル・ネットワークである。深層ニューラル・ネットワークは、多数の層を有する多層ニューラル・ネットワークである。
テンソルは、数値の多次元アレイである。テンソル・ブロックは、テンソル内の成分の連続したサブアレイである。
各ニューラル・ネットワーク層は、パラメータ・テンソルV、重みテンソルW、入力データ・テンソルX、出力データ・テンソルY、および中間データ・テンソルZに関連付けられている。パラメータ・テンソルは、層においてニューロン活性化関数σを制御するパラメータの全てを含む。重みテンソルは、入力を層に接続する重みの全てを含む。入力データ・テンソルは、層が入力として消費するデータの全てを含む。出力データ・テンソルは、層が出力として計算するデータの全てを含む。中間データ・テンソルは、部分合計などの、層が中間計算として生成する任意のデータを含む。
層についてのデータ・テンソル(入力、出力、および中間)は、3次元であってもよく、その場合、最初の2つの次元は、空間的位置を符号化すると解釈されてもよく、第3の次元は、異なる特徴を符号化すると解釈されてもよい。例えば、データ・テンソルが、カラー画像を表すとき、最初の2つの次元は、画像内の垂直および水平座標を符号化し、第3の次元は、各位置における色を符号化する。入力データ・テンソルXのあらゆる成分が、個々の重みによってあらゆるニューロンに接続され得る。したがって、重みテンソルWは、概して6つの次元を有し、入力データ・テンソルの3つの次元(入力行a、入力列b、入力特徴c)を出力データ・テンソルの3つの次元(出力行i、出力列j、出力特徴k)と連結する。中間データ・テンソルZは、出力データ・テンソルYと同一の形状を有する。パラメータ・テンソルVは、活性化関数σのパラメータにインデックス付与する追加の次元oで3つの出力データ・テンソル次元を連結する。
層の出力データ・テンソルYの成分は、式1におけるように計算され得る。その場合、ニューロン活性化関数σは、活性化関数パラメータV[i,j,k,:]のベクトルによって構成され、重み付け合計Z[i,j,k]は、式2におけるように計算され得る。
Y[i,j,k]=σ(V[i,j,k,:];Z[i,j,k])
式1
Figure 0007241771000001
表記を単純にするために、式2における重み付け合計は、出力と呼ばれてもよく、それは、線形活性化関数Y[i,j,k]=σ(Z[i,j,k])=Z[i,j,k]を用いることと等価であり、異なる活性化関数が使用されるときに、一般性を失うことなく同一のステートメントを適用すると理解される。
様々な実施形態において、上述のような出力データ・テンソルの計算は、より小さな問題に分解される。各問題は、そのとき1つもしくは複数のニューラル・コア上で、または従来のマルチコア・システムの1つもしくは複数のコア上で並列に解決され得る。
ここで図1を参照すると、本開示の実施形態によるニューラル・コアが示されている。ニューラル・コア100は、出力テンソルの1つのブロックを計算するタイリング可能な計算上のユニットである。ニューラル・コア100は、M個の入力およびN個の出力を有する。様々な実施形態では、M=Nである。出力テンソル・ブロックを計算するために、ニューラル・コアは、M×1個の入力テンソル・ブロック101をM×N個の重みテンソル・ブロック102と乗算し、積を1×N個の中間テンソル・ブロック103に記憶されている重み付け合計内に累計する。O×N個のパラメータ・テンソル・ブロックは、中間テンソル・ブロック103に適用されて1×N個の出力テンソル・ブロック105を生成するN個のニューロン活性化関数のそれぞれを指定する、O個のパラメータを含む。
複数のニューラル・コアは、ニューラル・コア・アレイにおいてタイリングされ得る。いくつかの実施形態では、アレイは2次元である。
ニューラル・ネットワーク・モデルは、ニューラル・ネットワークによって実行される計算全体をまとめて指定する定数のセットであり、あらゆるニューロンについての重みおよび活性化関数パラメータだけでなく、ニューロン間の接続のグラフも含む。訓練は、所望の関数を実行するためにニューラル・ネットワーク・モデルを修正するプロセスである。推論は、ニューラル・ネットワーク・モデルを修正することなく、ニューラル・ネットワークを入力に適用して出力を生成するプロセスである。
推論処理ユニットは、ニューラル・ネットワーク推論を実行するプロセッサのカテゴリである。ニューラル推論チップは、推論処理ユニットの特定の物理的インスタンスである。
高レベルでの、推論処理ユニットによって実行される論理動作が、図2に示されている。201において、入力活性化(X)が、コアに分散される。202において、層命令がコアに分散される。203において、層重み(W)またはパラメータあるいはその両方が、コアに分散される。204において、マトリクス重み(W)が読み出される。205において、活性化ベクトル(X)が読み出される。206において、ベクトル・マトリクス乗算(Z=XW)が計算される。207において、部分合計ベクトル(Zsrc)が、読み出され、または選択され、あるいはその両方が行われる。208において、ベクトル・ベクトル関数Ztgt=f(Zsrc)が計算される。209において、部分合計ベクトル(Ztgt)が、書き込まれ、または更新され、あるいはその両方が行われる。210において、活性化関数(Y=f(Z))が計算される。211において、活性化ベクトル(Y→X)が書き込まれる。212において、層活性化(X)が、コアにわたって再分散される。213において、出力活性化(X)が、コアから収集される。
図示するように、ステップ201~213は、全ての入力フレームにわたって繰り返される。ステップ202~212は、ニューラル・ネットワークの全ての層にわたって繰り返される。ステップ204~211は、全ての層出力にわたって繰り返される。ステップ204~209は、全ての層入力にわたって繰り返される。
ここで図3を参照すると、例示的ニューラル・コアおよび関連ネットワークが、本開示の実施形態に従って示されている。コア301は、図1を参照して説明されるように具現化されてもよく、ネットワーク302~304によって追加コアと相互接続される。この実施形態では、ネットワーク302は、重みまたは命令あるいはその両方を分散することを担当し、ネットワーク303は、部分合計を分散することを担当し、ネットワーク304は、活性化を分散することを担当する。しかしながら、本開示の様々な実施形態は、これらのネットワークを結合してもよく、または複数の追加ネットワークにそれらをさらに分離してもよいと理解されたい。
図3を参照すると、入力活性化(X)は、ステップ201において、コア外から活性化メモリ305への活性化ネットワーク304を介して、コア301に分散される。層命令は、ステップ202において、コア外から命令メモリ306への重み/命令ネットワーク302を介して、コア301に分散される。層重み(W)またはパラメータあるいはその両方は、ステップ203において、コア外から重みメモリ307またはパラメータ・メモリ308あるいはその両方への重み/命令ネットワーク302を介して、コア301に分散される。
重みマトリクス(W)は、ステップ204において、重みメモリ307からベクトル・マトリクス乗算(VMM)ユニット309によって読み出される。活性化ベクトル(V)は、ステップ205において、活性化メモリ305からベクトル・マトリクス乗算(VMM)ユニット309によって読み出される。ベクトル・マトリクス乗算(VMM)ユニット309は、次いで、ステップ206においてベクトル・マトリクス乗算Z=XWを計算し、結果をベクトル・ベクトル・ユニット310に提供する。ステップ207において、ベクトル・ベクトル・ユニット310は、部分合計メモリ311から追加部分合計を読み出し、コア外から部分合計ネットワーク303を介して追加部分合計を受信する。ステップ208において、ベクトル・ベクトル演算は、これらのソース部分合計からベクトル・ベクトル・ユニット310によって計算される。例えば、様々な部分合計が、同様に合計され得る。ステップ209において、結果となるターゲット部分合計が、部分合計メモリ311に書き込まれ、部分合計ネットワーク303を介してコア外に送信され、またはベクトル・ベクトル・ユニット310によるさらなる処理のためにフィードバックされ、あるいはそれらの組み合わせが行われる。
部分合計は、ベクトル・ベクトル・ユニット310から生じ、所与の層の入力についての全ての計算が完了した後、ステップ210における出力活性化の計算のために活性化ユニット312に提供される。ステップ211において、活性化ベクトル(Y)は、活性化メモリ305に書き込まれる。ステップ212において、層活性化(活性化メモリに書き込まれた結果を含む)が、活性化ネットワーク304を介して活性化メモリ305からコアにわたって再分散される。受信後、それらは、各受信コアへのローカル活性化メモリに書き込まれる。所与のフレームについての処理完了後、出力活性化は、活性化メモリ305から読み出され、ネットワーク304を介してコア外に送信される。
図4A~図4Bを参照すると、例示的空間内側ループおよびフィルタ内側ループについてのコア・タイミング図が、提供されている。401において、活性化メモリが、活性化Xと共に予めロードされる。402において、マイクロコード命令がロードされる。403において、重みテンソルWがロードされる。404~405において、活性化ブロックおよび重みブロックが読み出される。406において、部分合計ブロックが計算される。407~409において、部分合計ブロックが、通信され、記憶され、または累計され、あるいはそれらの組み合わせが行われる。410において、活性化関数が計算される。411において、活性化が活性化メモリに書き戻される。これらのタイミング図内のステップが、図2を参照して説明されるステップに対応すると理解されたい。空間内側ループを示す図4Aにおいて、活性化ブロックX...Xは、各重みブロックW...Wについてロードされ、部分合計ブロックZ00...Z03、Z10...Z13の計算を可能にする。フィルタ内側ループを示す図4Bにおいて、重みブロックW...Wは、各活性化ブロックX...Xについてロードされ、部分合計ブロックZ00...Z30、Z01...Z31の計算を可能にする。
したがって、動作中、コア制御マイクロエンジン(例えば、313)は、コアのデータ移動および計算を編成する。マイクロエンジンは、読み出し活性化メモリ・アドレス動作を発行して、入力活性化ブロックをベクトル・マトリクス乗算ユニット内にロードする。マイクロエンジンは、読み出し重みメモリ・アドレス動作を発行して、重みブロックをベクトル・マトリクス乗算ユニット内にロードする。ベクトル・マトリクス乗算ユニット計算アレイが部分合計ブロックを計算するように、マイクロエンジンは、計算動作をベクトル・マトリクス乗算ユニットに発行する。
マイクロエンジンは、部分合計データを部分合計ソースから読み出すこと、部分合計演算ユニットを用いて計算すること、または部分合計データを部分合計ターゲットに書き込むことのうちの1つまたは複数を行うために、部分合計読み出し/書き込みメモリ・アドレス動作、ベクトル計算動作、または部分合計通信動作のうちの1つまたは複数を発行する。部分合計データを部分合計ターゲットに書き込むことは、部分合計ネットワーク・インターフェースを介してコアの外部と通信すること、または部分合計データを活性化演算ユニットに送信することを含み得る。
活性化演算ユニットが出力活性化ブロックを計算するように、マイクロエンジンは、活性化計算動作を発行する。マイクロエンジンは、書き込み活性化メモリ・アドレスを発行し、出力活性化ブロックが、活性化メモリ・インターフェースを介して活性化メモリに書き込まれる。
これに応じて、多様なソース、ターゲット、アドレス・タイプ、計算タイプ、および制御コンポーネントが、所与のコアに対して定義される。
ベクトル・ベクトル・ユニット310のためのソースは、ベクトル・マトリクス乗算(VMM)ユニット309、活性化メモリ305、パラメータ・メモリ308からの定数、部分合計メモリ311、先行サイクルからの部分合計結果(TGT部分合計)、および部分合計ネットワーク303を含む。
ベクトル・ベクトル・ユニット310のためのターゲットは、部分合計メモリ311、後続サイクルについての部分合計結果(SRC部分合計)、活性化ユニット312、および部分合計ネットワーク303を含む。
これに応じて、所与の命令は、活性化メモリ305から読み出しもしくは書き込みしてもよく、重みメモリ307から読み出してもよく、または部分合計メモリ311から読み出しもしくは書き込みしてもよい。コアによって実行される計算動作は、VMMユニット309によるベクトル・マトリクス乗算、ベクトル・ユニット310によるベクトル(部分合計)動作、活性化ユニット312による活性化関数を含む。
制御動作は、プログラム・カウンタ、およびループ・カウンタまたはシーケンス・カウンタあるいはその両方を含む。
したがって、ステップ204~211は、以下のように動作にマッピングされ得る。ステップ204、205、207、209、211において、メモリ動作は、重みメモリ内のアドレスから重みを読み出すため、パラメータ・メモリ内のアドレスからパラメータを読み出すため、活性化メモリ内のアドレスから活性化を読み出すため、ならびに部分合計メモリ内のアドレスに部分合計を読み出し/書き込むために発行される。ステップ206、208、210において、計算動作は、ベクトル・マトリクス乗算、ベクトル・ベクトル動作、および活性化関数を実行するために発行される。ステップ207、209において、通信動作は、ベクトル・ベクトル・オペランドを選択するため、部分合計ネットワーク上でメッセージをルーティングするため、および部分合計ターゲットを選択するために発行される。層出力にわたるループ(ステップ204~211における)および層入力にわたるループ(ステップ204~209における)は、プログラム・カウンタ、ループ・カウンタ、およびシーケンス・カウンタを指定する制御動作によって制御される。
図5を参照すると、本開示の実施形態によるベクトル・ユニット・スライスの詳細図が提供されている。ベクトル・ユニットは、ベクトルの成分全てに対して並列で動作するために多数のベクトル・ユニット・スライスを有し、したがって、単にスライスがここに示されている。いくつかの実施形態では、ベクトル・ユニットの全てのスライスが、それらのそれぞれのベクトル成分に対して同時に同じ動作を並列で実行する。ソース501は、上述したソースに対応する。特に、重みメモリ307は、読み出しアドレスW_RDにおいてアクセスされ、活性化メモリ305は、ベクトル・マトリクス乗算に入力を提供するために読み出しアドレスact_RDにおいてアクセスされ、その結果は、今度はベクトル・ベクトル・ユニットへのソースとしての役割をする。パラメータ・メモリ308は、ベクトル・ベクトル・ユニットにパラメータを提供するために、読み出しアドレスNRN_RDにおいてアクセスされる。部分合計メモリ311は、ベクトル・ベクトル・ユニットのための部分合計オペランドを取り出すために、読み出しアドレスP0_RDおよびP1_RDにおいてアクセスされる。ネットワーク・オン・チップ303は、ベクトル・ベクトル・ユニットに部分合計入力を提供するために使用される。図示されるように、入力は、4方位、北、南、東、および西から受信される。しかしながら、任意のコアからの入力受信を可能にするために、多様なネットワーク構成が本開示に従って用いられ得ると理解されたい。
動作502は、計算OP(COMPUTE_OP)およびバイパスOP(BYPASS_OP)を含む。計算OPは、ソース501を計算関数ユニット503、504(AおよびB)にマッピングし、計算関数ユニットによって実行される計算を指定する。バイパスOP(BYPASS_OP)は、ソース501をバイパス関数ユニット505、506(CおよびD)にマッピングする。計算またはバイパスの結果が、中間ソース507を構成する。
中間ソース507に対する動作508は、出力ターゲットOP(OUT_TGT_OP)および活性化出力ターゲットOP(ACT_TGT_OP)を含む。出力ターゲットOPは、中間ソース507を出力ターゲット509にマッピングする。活性化出力ターゲットOPは、中間ソース507を活性化出力ターゲット510にマッピングし、活性化関数ユニットによって実行される計算を指定する。
活性化関数の結果が、書き込みアドレスact_WRにおいて活性化メモリ305に書き込まれる。部分合計は、書き込みアドレスP0_WRおよびP1_WRにおいて部分合計メモリ311に書き込まれる。ネットワーク出力は、ネットワーク303を介して送信される。図示されるように、出力は、4方位、北、南、東、および西に送信される。しかしながら、任意のコアに出力を送信することを可能にするために、多様なネットワーク構成が本開示に従って用いられ得ると理解されたい。
所与のコアが、複数の関数ユニットを含み得ると理解されたい。したがって、図5は、説明を簡略化するために、ベクトル・ベクトル・ユニットの1スライスを示す。
表1を参照すると、例示的な部分合計データ動作フォーマットが、提供されている。表1において、バイパスOPは、BYPASS_C_OPおよびBYPASS_D_OPを含み、上述した別個のバイパス505、506に対応する。ターゲット出力OPは、OUT_TGT_OP、COND_TGT_OP、およびACT_TGT_OPを含む。計算動作は、ACT_TGT_OPの後に続く。
Figure 0007241771000002
表2は、上述の実施形態におけるソースを列挙する。
Figure 0007241771000003
表3は、上述の実施形態における中間ソースを列挙する。
Figure 0007241771000004
表4は、上述の実施形態における出力ターゲットを列挙する。
Figure 0007241771000005
表5は、上述の実施形態における活性化ターゲットを列挙する。
Figure 0007241771000006
表6は、上述の実施形態におけるベクトル計算動作を列挙する。
Figure 0007241771000007
表7を参照すると、本開示の様々な実施形態による、ニューラル・コアの様々な再構成可能な要素の要約が、提供されている。
Figure 0007241771000008
図6を参照すると、本開示の実施形態によるニューラル・コアを動作させる方法が示されている。601において、重みマトリクスが重みメモリから受信される。602において、活性化ベクトルが、活性化メモリから受信される。603において、重みマトリクスと活性化ベクトルとのベクトル・マトリクス乗算が計算される。604において、1つまたは複数のベクトル関数が、ベクトル・マトリクス乗算に対して実行されて、出力ベクトルを生じる。605において、活性化関数が、出力ベクトルに適用されて結果を決定する。606において、結果が活性化メモリに提供される。
図7を参照すると、本開示の実施形態によるニューラル・コアを構成する方法が示されている。701において、プログラマブル・コントローラが、複数のベクトル・ソースの1つまたは複数をベクトル・プロセッサにマッピングする。702において、プログラマブル・コントローラが、ベクトル・プロセッサを複数のベクトル・ターゲットの1つまたは複数にマッピングする。703において、プログラマブル・コントローラが、複数のソースの1つまたは複数からの入力に対してベクトル関数を実行し、複数のベクトル・ターゲットの1つまたは複数に結果を提供するように、ベクトル・プロセッサに命令する。
したがって、本開示は、実行時再構成可能なニューラル・ネットワーク・プロセッサ・コアを提供する。そのようなコアは、プログラマブル・コントローラを介して再構成可能である。いくつかの実施形態では、再構成が、パイプラインにおける計算と同時に実行される。
ここで図8を参照すると、コンピューティング・ノードの例の概略が示されている。コンピューティング・ノード10は、適当なコンピューティング・ノードの単なる一例であり、本明細書で説明される実施形態の使用または機能性の範囲に関するいかなる限定も示唆するように意図されない。それにかかわらず、コンピューティング・ノード10は、実施されること、または上記で述べる機能性のいずれかを実行すること、あるいはその両方が可能である。
コンピューティング・ノード10には、コンピュータ・システム/サーバ12が存在し、コンピュータ・システム/サーバ12は、多数の他の汎用または専用コンピューティング・システム環境または構成を用いて動作可能である。コンピュータ・システム/サーバ12を用いた使用に適当であり得る周知のコンピューティング・システム、環境、または構成、あるいはそれらの組み合わせの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式またはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベース・システム、セット・トップ・ボックス、プログラマブル家電、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記システムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境などを含むが、これらに限定されない。
コンピュータ・システム/サーバ12は、コンピュータ・システムによって実行されている、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的状況において説明され得る。概して、プログラム・モジュールは、特定のタスクを実行し、または特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含み得る。コンピュータ・システム/サーバ12は、通信ネットワークを通してリンクされたリモート処理デバイスによってタスクが実行される、分散型クラウド・コンピューティング環境において実施され得る。分散型クラウド・コンピューティング環境では、プログラム・モジュールが、メモリ記憶デバイスを含むローカルおよびリモート両方のコンピュータ・システム記憶媒体に位置し得る。
図8に示されるように、コンピューティング・ノード10内のコンピュータ・システム/サーバ12は、汎用コンピューティング・デバイスの形態で示される。コンピュータ・システム/サーバ12のコンポーネントは、1つまたは複数のプロセッサまたは処理ユニット16、システム・メモリ28、およびシステム・メモリ28を含む様々なシステム・コンポーネントをプロセッサ16に連結するバス18を含み得るが、これらに限定されない。
バス18は、メモリ・バスまたはメモリ・コントローラ、周辺バス、高速グラフィック・ポート、および多様なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含む、複数種類のバス構造のいずれかの1つまたは複数を表す。限定ではなく例として、そのようなアーキテクチャは、インダストリ・スタンダード・アーキテクチャ(ISA:Industry Standard Architecture)・バス、マイクロ・チャネル・アーキテクチャ(MCA:Micro Channel Architecture)・バス、拡張ISA(EISA:Enhanced ISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA:Video Electronics Standards Association)・ローカル・バス、ペリフェラル・コンポーネント・インターコネクト(PCI:Peripheral Component Interconnect)・バス、ペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe:Peripheral Component Interconnect Express)、およびアドバンスド・マイクロコントローラ・バス・アーキテクチャ(AMBA:Advanced Microcontroller Bus Architecture)を含む。
コンピュータ・システム/サーバ12は、典型的には多様なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ12によってアクセス可能な任意の利用可能な媒体であってもよく、それは、揮発性媒体および不揮発性媒体の両方、リムーバブル媒体および非リムーバブル媒体の両方を含む。
システム・メモリ28は、コンピュータ・システム可読媒体を、ランダム・アクセス・メモリ(RAM)30またはキャッシュ・メモリ32あるいはその両方などの揮発性メモリの形態で含み得る。コンピュータ・システム/サーバ12は、他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピュータ・システム記憶媒体をさらに含み得る。単なる例として、記憶システム34は、非リムーバブル不揮発性磁気媒体(図示せず、かつ典型的には「ハード・ドライブ」と呼ばれる)から読み出し、かつ書き込むために提供され得る。図示されないが、リムーバブル、不揮発性磁気ディスク(例えば、「フロッピー・ディスク」)からの読み出しおよび書き込みのための磁気ディスク・ドライブ、およびCD-ROM、DVD-ROM、または他の光学媒体などのリムーバブル、不揮発性光ディスクからの読み出しまたは書き込みのための光学ディスク・ドライブが、提供され得る。このような場合、それぞれが、1つまたは複数のデータ媒体インターフェースによってバス18に接続され得る。以下でさらに示され、説明されるように、メモリ28は、本開示の実施形態の機能を実行するように構成されたプログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含み得る。
プログラム・モジュール42のセット(少なくとも1つ)を有するプログラム/ユーティリティ40は、限定ではなく例として、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、メモリ28に記憶され得る。オペレーティング・システム、1つもしくは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データのそれぞれ、またはそれらの何らかの組み合わせは、ネットワーキング環境の実施を含み得る。プログラム・モジュール42は、概して、本明細書に説明される実施形態の機能または方法論あるいはその両方を実行する。
コンピュータ・システム/サーバ12は、また、キーボード、ポインティング・デバイス、ディスプレイ24などの1つもしくは複数の外部デバイス14、ユーザがコンピュータ・システム/サーバ12と対話することを可能にする1つもしくは複数のデバイス、またはコンピュータ・システム/サーバ12が1つもしくは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(例えば、ネットワーク・カード、モデムなど)、あるいはそれらの組み合わせと通信し得る。このような通信は、入力/出力(I/O)インターフェース22を介して発生し得る。さらに、コンピュータ・システム/サーバ12は、ネットワーク・アダプタ20を介して、ローカル・エリア・ネットワーク(LAN)、汎用ワイド・エリア・ネットワーク(WAN)、または公衆ネットワーク(例えば、インターネット)、あるいはそれらの組み合わせなどの1つまたは複数のネットワークと通信し得る。図示されるように、ネットワーク・アダプタ20は、バス18を介してコンピュータ・システム/サーバ12の他のコンポーネントと通信する。図示されないが、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネント、あるいはその両方が、コンピュータ・システム/サーバ12と併せて使用され得ると理解されるべきである。例は、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ記憶システムなどを含むが、これらに限定されない。
様々な実施形態において、1つまたは複数の推論処理ユニット(図示せず)は、バス18に連結される。そのような実施形態では、IPUは、バス18を介してメモリ28からデータを受信し、またはメモリ28にデータを書き込み得る。同様に、IPUは、本明細書で説明されるように、バス18を介して他のコンポーネントと対話し得る。
本開示は、システム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組み合わせとして具現化され得る。コンピュータ・プログラム製品は、プロセッサに本開示の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持し、記憶し得る有形デバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または前述したものの任意の適当な組み合わせであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチカードまたはその上に記録された命令を有する溝内の隆起構造などの機械的に符号化されたデバイス、および前述したものの任意の適当な組み合わせを含む。本明細書で用いられるコンピュータ可読記憶媒体は、本来、電波もしくは他の自由伝播する電磁波、導波管もしくは他の送信媒体を通って伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または電線を通って送信される電気信号などの、一過性信号であると解釈されるべきではない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはそれらの組み合わせを介して外部コンピュータまたは外部ストレージ・デバイスに、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組み合わせを含み得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体の記憶用にコンピュータ可読プログラム命令を転送する。
本開示の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組み合わせで書かれたソース・コードもしくはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に、ユーザのコンピュータ上で部分的に、スタンドアロン・ソフトウェア・パッケージとして、ユーザのコンピュータ上で部分的にかつリモート・コンピュータ上で部分的に、またはリモート・コンピュータもしくはサーバ上で完全に、実行してもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)、またはワイド・エリア・ネットワーク(WAN)を含む任意の種類のネットワークを通してユーザのコンピュータに接続されてもよい。あるいは、接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを通して)外部コンピュータに対して行われてもよい。いくつかの実施形態では、例えば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本開示の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することによって、コンピュータ可読プログラム命令を実行し得る。
本開示の態様は、本開示の実施形態による、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して、本明細書に説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方のブロックの組み合わせが、コンピュータ可読プログラム命令によって実施され得ると理解されたい。
コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施する手段を作成するように、これらのコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータ、または機械を製造するための他のプログラマブル・データ処理装置のプロセッサに提供されてもよい。コンピュータ可読記憶媒体に記憶される命令を有するコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作の態様を実施する命令を含む製品を含むように、これらのコンピュータ可読プログラム命令は、また、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはそれらの組み合わせに特定のやり方で機能するように指示し得る、コンピュータ可読記憶媒体に記憶されてもよい。
コンピュータ、他のプログラマブル装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施するように、コンピュータ可読プログラム命令は、また、コンピュータ実施されたプロセスを作り出すために、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるコンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされてもよい。
図面内のフローチャートおよびブロック図は、本開示の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施のアーキテクチャ、機能性、および動作を例示する。この点に関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の一部を表し得る。いくつかの代替的な実施において、ブロック内に記載された機能は、図面中に記載された順序以外で発生してもよい。例えば、連続して示される2つのブロックが、実際には、実質的に同時に実行されてもよく、または、ブロックが、関係する機能性次第で逆の順序で実行されることがあってもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせが、指定された機能もしくは動作を実行し、または専用ハードウェアおよびコンピュータ命令の組み合わせを実行する専用ハードウェア・ベース・システムによって実施され得ることにも留意されたい。
本開示の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であること、または開示される実施形態に限定することを意図したものではない。多くの修正および変形が、説明された実施形態の範囲および思想から逸脱することなく当業者には明らかであろう。本明細書で使用される専門用語は、実施形態の原理、実用的な適用、もしくは市場で見出される技術に対する技術的改善を最もよく説明するため、または本明細書に開示される実施形態を他の当業者が理解可能にするために、選択された。

Claims (18)

  1. 重みメモリと、
    活性化メモリと、
    前記重みメモリから重みマトリクスを受信し、前記活性化メモリから活性化ベクトルを受信し、前記重みマトリクスと前記活性化ベクトルとのベクトル・マトリクス乗算を計算するように適合されたベクトル・マトリクス乗算器と、
    1つまたは複数のベクトル・ソースから1つまたは複数の入力ベクトルを受信し、前記1つまたは複数の入力ベクトルに対して1つまたは複数のベクトル関数を実行して出力ベクトルを生じるように適合されたベクトル・プロセッサと、
    前記ベクトル・プロセッサに動作可能に連結されたプログラマブル・コントローラであって、前記1つまたは複数のベクトル・ソースを前記ベクトル・プロセッサにマッピングし、前記ベクトル・プロセッサを1つまたは複数のベクトル・ターゲットにマッピングし、前記1つまたは複数のベクトル関数を実行し、前記1つまたは複数のベクトル・ターゲットに結果を提供するように、前記ベクトル・プロセッサに命令するように適合された前記プログラマブル・コントローラと、
    を備える、ニューラル・コア。
  2. 前記ベクトル・プロセッサに動作可能に連結され、前記ベクトル・プロセッサからの結果に活性化関数を適用するように適合された活性化ユニットをさらに備える、請求項1に記載のニューラル・コア。
  3. 前記ベクトル・ソースが、部分合計メモリ、ネットワーク、ベクトル・マトリクス乗算器、レジスタ、またはパラメータ・メモリを含む、請求項に記載のニューラル・コア。
  4. 前記ベクトル・ターゲットが、活性化メモリ、部分合計メモリ、レジスタ、またはネットワークを含む、請求項に記載のニューラル・コア。
  5. 前記ベクトル・プロセッサが、1つまたは複数の定数を前記結果に適用するように適合された、請求項に記載のニューラル・コア。
  6. 部分合計を累計するように構成された、請求項に記載のニューラル・コア。
  7. 前記コントローラが、前記重みメモリから重みマトリクスを読み出し、前記活性化メモリから活性化ベクトルを読み出し、前記重みマトリクスと前記活性化ベクトルとのベクトル・マトリクス乗算を計算するように、前記ベクトル・マトリクス乗算器に命令するようにさらに適合された、請求項に記載のニューラル・コア。
  8. 前記活性化関数が構成可能である、請求項に記載のニューラル・コア。
  9. 前記プログラマブル・コントローラが、前記活性化関数を計算し、前記活性化メモリに結果を提供するように、前記活性化ユニットに命令するようにさらに適合された、請求項に記載のニューラル・コア。
  10. 前記重みマトリクスが、ニューラル・ネットワーク重みマトリクスのサブアレイであり、
    前記活性化ベクトルが、ニューラル・ネットワーク活性化ベクトルのサブアレイである、請求項に記載のニューラル・コア。
  11. 前記重みマトリクスと前記活性化ベクトルとの前記ベクトル・マトリクス乗算が、累計のために提供され、前記累計が、前記ニューラル・ネットワーク重みマトリクスと前記ニューラル・ネットワーク活性化ベクトルとのベクトル・マトリクス乗算を生じる、請求項1に記載のニューラル・コア。
  12. 入力、パラメータ、および出力を有するニューラル・ネットワーク関数を計算するように構成された、請求項1に記載のニューラル・コア。
  13. 前記重みマトリクスまたは前記活性化ベクトルあるいはその両方が、構成可能なサイズを有する、請求項1に記載のニューラル・コア。
  14. ニューラル・ネットワーク入力、パラメータ、または出力、あるいはそれらの組み合わせが、構成可能なサイズを有する、請求項1に記載のニューラル・コア。
  15. 前記ニューラル・ネットワーク関数が構成可能である、請求項1に記載のニューラル・コア。
  16. ネットワークによって相互接続された複数の追加ニューラル・コアと併せて、ニューラル・ネットワーク関数を計算するように構成された、請求項1に記載のニューラル・コア。
  17. ニューラル・ネットワーク関数の一部を計算するように構成された、請求項1に記載のニューラル・コア。
  18. 前記ニューラル・ネットワーク関数の前記一部が構成可能である、請求項1に記載のニューラル・コア。
JP2020560976A 2018-06-19 2019-06-13 実行時再構成可能なニューラル・ネットワーク・プロセッサ・コア Active JP7241771B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/012,475 2018-06-19
US16/012,475 US11501140B2 (en) 2018-06-19 2018-06-19 Runtime reconfigurable neural network processor core
PCT/IB2019/054954 WO2019243962A1 (en) 2018-06-19 2019-06-13 Runtime reconfigurable neural network processor core

Publications (2)

Publication Number Publication Date
JP2021527864A JP2021527864A (ja) 2021-10-14
JP7241771B2 true JP7241771B2 (ja) 2023-03-17

Family

ID=68840309

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020560976A Active JP7241771B2 (ja) 2018-06-19 2019-06-13 実行時再構成可能なニューラル・ネットワーク・プロセッサ・コア

Country Status (5)

Country Link
US (2) US11501140B2 (ja)
JP (1) JP7241771B2 (ja)
CN (1) CN112204579A (ja)
GB (1) GB2587175A (ja)
WO (1) WO2019243962A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018176000A1 (en) 2017-03-23 2018-09-27 DeepScale, Inc. Data synthesis for autonomous control systems
US11409692B2 (en) 2017-07-24 2022-08-09 Tesla, Inc. Vector computational unit
US11157441B2 (en) 2017-07-24 2021-10-26 Tesla, Inc. Computational array microprocessor system using non-consecutive data formatting
US11893393B2 (en) 2017-07-24 2024-02-06 Tesla, Inc. Computational array microprocessor system with hardware arbiter managing memory requests
US10671349B2 (en) 2017-07-24 2020-06-02 Tesla, Inc. Accelerated mathematical engine
US11561791B2 (en) 2018-02-01 2023-01-24 Tesla, Inc. Vector computational unit receiving data elements in parallel from a last row of a computational array
US11501140B2 (en) * 2018-06-19 2022-11-15 International Business Machines Corporation Runtime reconfigurable neural network processor core
US11215999B2 (en) 2018-06-20 2022-01-04 Tesla, Inc. Data pipeline and deep learning system for autonomous driving
US11361457B2 (en) 2018-07-20 2022-06-14 Tesla, Inc. Annotation cross-labeling for autonomous control systems
US11636333B2 (en) 2018-07-26 2023-04-25 Tesla, Inc. Optimizing neural network structures for embedded systems
US11562231B2 (en) 2018-09-03 2023-01-24 Tesla, Inc. Neural networks for embedded devices
WO2020077117A1 (en) 2018-10-11 2020-04-16 Tesla, Inc. Systems and methods for training machine models with augmented data
US11196678B2 (en) 2018-10-25 2021-12-07 Tesla, Inc. QOS manager for system on a chip communications
US11816585B2 (en) 2018-12-03 2023-11-14 Tesla, Inc. Machine learning models operating at different frequencies for autonomous vehicles
US11537811B2 (en) 2018-12-04 2022-12-27 Tesla, Inc. Enhanced object detection for autonomous vehicles based on field view
US11610117B2 (en) 2018-12-27 2023-03-21 Tesla, Inc. System and method for adapting a neural network model on a hardware platform
US11150664B2 (en) 2019-02-01 2021-10-19 Tesla, Inc. Predicting three-dimensional features for autonomous driving
US10997461B2 (en) 2019-02-01 2021-05-04 Tesla, Inc. Generating ground truth for machine learning from time series elements
US11567514B2 (en) 2019-02-11 2023-01-31 Tesla, Inc. Autonomous and user controlled vehicle summon to a target
US10956755B2 (en) 2019-02-19 2021-03-23 Tesla, Inc. Estimating object properties using visual image data
CN111967572A (zh) * 2020-07-10 2020-11-20 逢亿科技(上海)有限公司 一种基于FPGA的YOLO V3和YOLO V3 Tiny网络切换方法
WO2022226721A1 (zh) * 2021-04-26 2022-11-03 华为技术有限公司 一种矩阵乘法器及矩阵乘法器的控制方法
US11726746B1 (en) * 2022-09-14 2023-08-15 Moffett International Co., Limited Vector operation acceleration with convolution computation unit

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000322400A (ja) 1999-05-10 2000-11-24 Fuji Xerox Co Ltd 情報処理装置
JP2001188767A (ja) 1999-12-28 2001-07-10 Fuji Xerox Co Ltd ニューラルネットワーク演算装置及びニューラルネットワークの演算方法
JP2015534172A (ja) 2012-09-14 2015-11-26 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ニューラル・コア回路
JP2018060268A (ja) 2016-10-03 2018-04-12 株式会社日立製作所 認識装置および学習システム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3260357B2 (ja) * 1990-01-24 2002-02-25 株式会社日立製作所 情報処理装置
KR0138859B1 (ko) * 1994-12-06 1998-06-15 양승택 다중 명령어 다중 데이타형 신경망 전용 디지탈 어레이 프로세서 및 이를 이용해 구성된 시스템
JP5104052B2 (ja) 2007-06-14 2012-12-19 ソニー株式会社 抵抗素子、ニューロン素子、及びニューラルネットワーク情報処理装置
EP2631872A4 (en) 2010-10-18 2015-10-28 Univ Osaka CHARACTER EXTRACTION DEVICE, CHARACTER EXTRACTION METHOD AND PROGRAM THEREFOR
US8868477B2 (en) 2012-03-29 2014-10-21 International Business Machines Coproration Multi-compartment neurons with neural cores
CN106575379B (zh) 2014-09-09 2019-07-23 英特尔公司 用于神经网络的改进的定点整型实现方式
US10192162B2 (en) * 2015-05-21 2019-01-29 Google Llc Vector computation unit in a neural network processor
US10353860B2 (en) 2015-10-08 2019-07-16 Via Alliance Semiconductor Co., Ltd. Neural network unit with neural processing units dynamically configurable to process multiple data sizes
US11055063B2 (en) * 2016-05-02 2021-07-06 Marvell Asia Pte, Ltd. Systems and methods for deep learning processor
CN107578098B (zh) * 2017-09-01 2020-10-30 中国科学院计算技术研究所 基于脉动阵列的神经网络处理器
CN107918794A (zh) * 2017-11-15 2018-04-17 中国科学院计算技术研究所 基于计算阵列的神经网络处理器
US11501140B2 (en) * 2018-06-19 2022-11-15 International Business Machines Corporation Runtime reconfigurable neural network processor core

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000322400A (ja) 1999-05-10 2000-11-24 Fuji Xerox Co Ltd 情報処理装置
JP2001188767A (ja) 1999-12-28 2001-07-10 Fuji Xerox Co Ltd ニューラルネットワーク演算装置及びニューラルネットワークの演算方法
JP2015534172A (ja) 2012-09-14 2015-11-26 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ニューラル・コア回路
JP2018060268A (ja) 2016-10-03 2018-04-12 株式会社日立製作所 認識装置および学習システム

Also Published As

Publication number Publication date
US11501140B2 (en) 2022-11-15
US20190385048A1 (en) 2019-12-19
GB2587175A (en) 2021-03-17
JP2021527864A (ja) 2021-10-14
WO2019243962A1 (en) 2019-12-26
GB202100512D0 (en) 2021-03-03
US20230062217A1 (en) 2023-03-02
CN112204579A (zh) 2021-01-08
US12056598B2 (en) 2024-08-06

Similar Documents

Publication Publication Date Title
JP7241771B2 (ja) 実行時再構成可能なニューラル・ネットワーク・プロセッサ・コア
JP7372009B2 (ja) 並列分散テンソル計算用のニューラル・ハードウェア・アクセラレータ
JP7227272B2 (ja) 再構成可能なコアレベルおよびベクトルレベルの並列性を有する並列計算アーキテクチャ
JP7325158B2 (ja) ニューラル・ネットワーク・コアにおける動的精度のためのデータ表現
US11263011B2 (en) Compound instruction set architecture for a neural inference chip
JP7332247B2 (ja) ニューラル推論プロセッサのための中央スケジューラおよび命令ディスパッチャ
US20230237325A1 (en) Neural network data computation using mixed-precision
US20210209450A1 (en) Compressed weight distribution in networks of neural processors
US11238347B2 (en) Data distribution in an array of neural network cores
US20200117465A1 (en) Multi-agent instruction execution engine for neural inference processing
CN112041810A (zh) 经由并行和片上存储器进行时间、空间和能量高效神经推断
JP7426980B2 (ja) 分散型ニューラル・ネットワークのコアのネットワークにおける階層的並列処理
US11935271B2 (en) Neural network model compression with selective structured weight unification
JP2023542852A (ja) ニューラル・ネットワークを用いたシステム、および方法
JP7556653B2 (ja) 柔軟な精度のニューラル推論処理ユニット
WO2019089553A1 (en) Tensor radix point calculation in a neural network
TW202234267A (zh) 在硬體加速器處計算內積
US11521085B2 (en) Neural network weight distribution from a grid of memory elements
JP2022091126A (ja) ニューラル推論チップ、少なくとも1つのニューラル推論コアを備える集積回路およびコンピュータ実装方法(有効なニューラルネットワーク活性化関数のvlsi実装のための効率的な方法)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211028

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230202

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230221

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230307

R150 Certificate of patent or registration of utility model

Ref document number: 7241771

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150