JP2022106737A - ハードウェアにおける行列乗算の実行 - Google Patents
ハードウェアにおける行列乗算の実行 Download PDFInfo
- Publication number
- JP2022106737A JP2022106737A JP2022063463A JP2022063463A JP2022106737A JP 2022106737 A JP2022106737 A JP 2022106737A JP 2022063463 A JP2022063463 A JP 2022063463A JP 2022063463 A JP2022063463 A JP 2022063463A JP 2022106737 A JP2022106737 A JP 2022106737A
- Authority
- JP
- Japan
- Prior art keywords
- value
- weight
- activation
- input
- floating point
- 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.)
- Granted
Links
- 239000011159 matrix material Substances 0.000 title claims abstract description 149
- 230000004913 activation Effects 0.000 claims abstract description 151
- 238000000034 method Methods 0.000 claims abstract description 66
- 238000004364 calculation method Methods 0.000 claims description 78
- 238000013528 artificial neural network Methods 0.000 claims description 39
- 230000008569 process Effects 0.000 claims description 30
- 239000013598 vector Substances 0.000 description 122
- 238000012545 processing Methods 0.000 description 29
- 230000009471 action Effects 0.000 description 28
- 230000001186 cumulative effect Effects 0.000 description 16
- 238000004590 computer program Methods 0.000 description 14
- 230000006399 behavior Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 230000017105 transposition Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000011176 pooling Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000005945 translocation Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Nonlinear Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
Description
この明細書は、ハードウェアでのニューラルネットワーク計算の実行に関する。
一般に、この明細書はニューラルネットワーク推論を計算する専用ハードウェア回路について記載する。
変換して重み入力値を生成することとを備えることができる。この方法は、さらに、以下のアクション:生の活性化値を高精度で処理する要求を受け取ることと、入力値に対して活性化高精度値を生成することとを備えることができ、活性化高精度値は、活性化入力値と生の活性化値との差の尺度であり、方法はさらに、重み入力値に対して重み高精度値を生成することを備えることができ、重み高精度値は、重み入力値と生の重み値との差の尺度である。活性化入力値と重み入力値とを乗算して積値を生成することは、以下のアクション:行列計算ユニットの乗算回路が、入力値と重み入力値との乗算、入力値と重み高精度値との乗算、重み入力値と活性化高精度値との乗算、および活性化高精度値と重み高精度値との乗算を実行することと、乗算の積を結合して積値を生成することとを備えることができる。
クション:行列計算ユニットの乗算回路が、入力値と重み入力値との乗算、入力値と重み高精度値との乗算、重み入力値と活性化高精度値との乗算、および活性化高精度値と重み高精度値との乗算を実行することを含むことができる。外部の合計回路は、乗算の積を結合して積値を生成することを含む第2のグループの動作を実行するように構成されることができる。
詳細な説明
複数の層を有するニューラルネットワークを用いて計算を実行することができる。たとえば、入力が与えられると、ニューラルネットワークはその入力に対する推論を計算する
ことができる。ニューラルネットワークは、ニューラルネットワークの各層を通して入力を処理することによって、この推論を計算する。各層は入力を受け取り、その層に対する重みのセットに従って入力を処理して出力を生成する。
に関する詳細は、2016年2月5日に提出された「MATRIX PROCESSING APPARATUS(行
列処理装置)」と題される米国特許出願第15/016,486号に見ることができる。
ロセッサ(306)に返す。拡張ベクトルユニットは、図4を参照して以下に説明される。
は、後で別の命令を用いて、FIFOからデータを引き出し、それをベクトルレジスタに格納できる。乱数生成器(120)により、コンピュートコア(103b)はサイクルごとに乱数、つまりサイクルごとに128の乱数を生成できる。
始できるようになる。
力をアレイの別のマルチセルで使用できるようにすることもできる。このプロセスにより、アレイの別の特定のマルチセルで使用するためにベクトル入力をシフトできる。
と結合して、更新された部分和値を生成できる。セルは、部分和値を行列計算ユニット内の別のセルに送信できる。
セルは、活性化入力を格納する活性化レジスタ406を含み得る。活性化レジスタは、シストリックアレイ内のセルの位置に応じて、左側の隣接セル、すなわち所与のセルの左側に位置する隣接セルから、またはユニファイドバッファから、活性化入力を受け取ることができる。セルは、重み入力を格納する重みレジスタ402を含み得る。重み入力は、シストリックアレイ内のセルの位置に応じて、上の隣接セルまたは重みフェッチャインターフェイスから転送され得る。セルは総和レジスタ404を含むこともできる。総和レジスタ404は、上の隣接セルからの累積値を格納することができる。活性化レジスタ406および重みレジスタ402は、特定の形式の浮動小数点値など、特定のサイズの値を格納するように構成されたレジスタであり得る。
送することができる。
り「0」または「1」である正規化された形式X.XXX * 2^XXXを有すると想定することに
より、解釈することができる。さらに、コンピュータシステムは、正規化された形式の最初の値の小数点の前の2進値が、常に1であり仮数602に表われない隠れビットである
と想定できる。従って、そのようなコンピュータシステムは、浮動小数点値が、「0」の
符号ビット601(2進数が正であるため)、「001」の指数603、および1111の仮数
602を有する2進数+11.111を格納および解釈することができる。
ず、なぜならば、その数値の正規化された形式のダイナミックレンジは10002であり、こ
のダイナミックレンジは、例示の3ビットの指数幅を用いて、形式600の指数603において許可される値の範囲で表現できないからである。
を乗算して、結果値、例えば、積値705を生成する。
も高い精度の形式から始めて、第3の浮動小数点形式、第2の浮動小数点形式、および第1の浮動小数点形式の順序でランク付けできる。いくつかの実装形態では、第3の浮動小数点形式のダイナミックレンジは、少なくとも第2の浮動小数点形式のダイナミックレンジと同等である。
納しなければならないことを示す。
処理装置による実行のために、または、データ処理装置の動作を制御するために有形の非一時的なプログラム担体上でエンコードされたコンピュータプログラム命令の1つ以上のモジュールとして実現され得る。代替的に、または加えて、プログラム命令は、データ処理装置による実行に対して好適な受信側装置への送信のために情報をエンコードするよう生成される、たとえばマシンにより生成された電気信号、光信号、または電磁気信号などの、人為的に生成された伝搬される信号上でエンコードすることができる。コンピュータ記憶媒体は、コンピュータ可読記憶装置、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、または、それらの1つ以上の組合せであり得る。
か、またはその両方を行う。しかしながら、コンピュータはそのような装置を有する必要はない。さらに、コンピュータはたとえば、携帯電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶装置(たとえばユニバーサルシリアルバス(USB)フラッシュドライブ)といった別のデバイスに埋め込まれ得る。
形式のダイナミックレンジと同じ大きさのダイナミックレンジを有する第2の浮動小数点形式を有し、方法はさらに、行列計算ユニットが、第1の浮動小数点形式よりも精度が高く、少なくとも第1の浮動小数点形式のダイナミックレンジと同じ大きさのダイナミックレンジを有する第3の浮動小数点形式で、部分和値を取得することと、ハードウェア回路の合計回路が、少なくとも部分和値と積値とを結合して、第3の浮動小数点形式を有する更新された部分和値を生成することとを備える。
取得することと、部分和値を総和レジスタに格納することとを含み、総和レジスタは、第3の浮動小数点形式を有する値を格納するように構成され、第1のグループの動作はさらに、行列計算ユニットの合計回路を用いて、部分和値と積値とを結合して、第3の浮動小数点形式を有する更新された部分和値を生成することを含む。
形態の文脈で本明細書において記載されるある特徴は、単一の実施形態において組合せでも実現され得る。反対に、単一の実施形態の文脈において記載されるさまざまな特徴は、複数の実施形態において別々に、または任意の好適な部分的組合わせでも実現され得る。さらに、特徴は、ある組合せにおいて作用すると上で記載され、最初はそのように請求されていさえする場合もあるが、請求される組合せからの1つ以上の特徴はいくつかの場合には当該組合せから削除され得、請求される組合せは、部分的組合わせまたは部分的組合わせの変形例に向けられ得る。
Claims (16)
- ハードウェア回路を用いて行列乗算を実行する方法であって、
前記ハードウェア回路の行列計算ユニットが、入力活性化値および重み入力値を取得することを備え、前記入力活性化値および前記重み入力値は各々第1の浮動小数点形式を有し、前記方法はさらに、
前記行列計算ユニットの乗算回路が、前記入力活性化値と前記重み入力値とを乗算して積値を生成することを備え、前記積値は、前記第1の浮動小数点形式よりも精度が高く、少なくとも前記第1の浮動小数点形式のダイナミックレンジと同じ大きさのダイナミックレンジを有する第2の浮動小数点形式を有し、前記方法はさらに、
前記行列計算ユニットが、前記第1の浮動小数点形式よりも精度が高く、少なくとも前記第1の浮動小数点形式のダイナミックレンジと同じ大きさのダイナミックレンジを有する第3の浮動小数点形式で、部分和値を取得することと、
前記ハードウェア回路の合計回路が、少なくとも前記部分和値と前記積値とを結合して、前記第3の浮動小数点形式を有する更新された部分和値を生成することとを備える、ハードウェア回路を用いて行列乗算を実行する方法。 - 浮動小数点形式の精度は、前記浮動小数点形式において仮数に対して利用可能なビットのカウントに基づいて判断され、浮動小数点形式のダイナミックレンジは、前記浮動小数点形式において指数に対して利用可能なビットのカウントに基づいて判断される、請求項1に記載の方法。
- 前記第2の浮動小数点形式は、前記第1の浮動小数点形式と同じダイナミックレンジを有し、前記第3の浮動小数点形式は、前記第1の浮動小数点形式と同じダイナミックレンジを有する、請求項1または請求項2に記載の方法。
- 前記第3の浮動小数点形式は、前記第2の浮動小数点形式よりも高い精度を有する、請求項1から請求項3のいずれか1項に記載の方法。
- 前記ハードウェア回路は、複数の層を有するニューラルネットワークのために計算を実行するように構成され、
前記入力活性化値および前記重み入力値は、前記複数の層のうちのある層に関連付けられる、請求項1から請求項4のいずれか1項に記載の方法。 - 第1の行列計算セルのために前記第3の浮動小数点形式を有する生の活性化値および生の重み値を取得することと、
前記生の活性化値を前記第1の浮動小数点形式に変換して前記入力活性化値を生成することと、
前記生の重み値を前記第1の浮動小数点形式に変換して前記重み入力値を生成することとをさらに備える、請求項1から請求項5のいずれか1項に記載の方法。 - 前記生の活性化値を高精度で処理する要求を受け取ることと、
前記入力値に対して活性化高精度値を生成することとをさらに備え、前記活性化高精度値は、前記活性化入力値と前記生の活性化値との差の尺度であり、前記方法はさらに、
前記重み入力値に対して重み高精度値を生成することを備え、前記重み高精度値は、前記重み入力値と前記生の重み値との差の尺度であり、
前記活性化入力値と前記重み入力値とを乗算して前記積値を生成することは、
前記行列計算ユニットの前記乗算回路が、
前記入力値と前記重み入力値との乗算、
前記入力値と前記重み高精度値との乗算、
前記重み入力値と前記活性化高精度値との乗算、および
前記活性化高精度値と前記重み高精度値との乗算を実行することと、
前記乗算の積を結合して前記積値を生成することとを含む、請求項6に記載の方法。 - ハードウェア回路であって、
第1のグループの動作を実行するように構成された行列計算ユニットを備え、前記第1のグループの動作は、
活性化入力値および重み入力値を取得することを含み、前記活性化入力値および前記重み入力値は両方とも第1の浮動小数点形式を有し、前記第1のグループの動作はさらに、
前記重み入力値を重みレジスタに格納することを含み、前記重みレジスタは前記第1の浮動小数点形式を有する値を格納するよう構成され、前記第1のグループの動作はさらに、
前記ハードウェア回路の乗算回路を用いて、前記活性化入力値と前記重み入力値とを乗算して積値を生成することを含み、前記積値は、前記第1の浮動小数点形式よりも精度が高く、少なくとも前記第1の浮動小数点形式のダイナミックレンジと同じ大きさのダイナミックレンジを有する第2の浮動小数点形式を有し、前記第1のグループの動作はさらに、
前記第1の浮動小数点形式よりも精度が高く、少なくとも前記第1の浮動小数点形式のダイナミックレンジと同じ大きさのダイナミックレンジを有する第3の浮動小数点形式で、部分和値を取得することと、
前記部分和値を総和レジスタに格納することとを含み、前記総和レジスタは、前記第3の浮動小数点形式を有する値を格納するように構成され、前記第1のグループの動作はさらに、
前記行列計算ユニットの合計回路を用いて、前記部分和値と前記積値とを結合して、前記第3の浮動小数点形式を有する更新された部分和値を生成することを含む、ハードウェア回路。 - 前記第1のグループの動作はさらに、
前記活性化入力値を活性化レジスタに格納することを含み、前記活性化レジスタは、前記第1の浮動小数点形式を有する値を格納するように構成される、請求項8に記載のハードウェア回路。 - 前記第1のグループの動作はさらに、
前記重み入力値を重みレジスタに格納することを含み、前記重みレジスタは前記第1の浮動小数点形式を有する値を格納するよう構成される、請求項8または請求項9に記載のハードウェア回路。 - 前記第1のグループの動作はさらに、
前記部分和値を総和レジスタに格納することを含み、前記総和レジスタは、前記第3の浮動小数点形式を有する値を格納するように構成される、請求項8から請求項10のいずれか1項に記載のハードウェア回路。 - 前記行列演算ユニットの外部に外部の合計回路をさらに備え、前記第1のグループの動作はさらに、
前記生の活性化値を高精度で処理する要求を受け取ることと、
前記入力値に対して活性化高精度値を生成することとを含み、前記活性化高精度値は、前記活性化入力値と前記生の活性化値との差の尺度であり、前記第1のグループの動作はさらに、
前記重み入力値に対して重み高精度値を生成することを含み、前記重み高精度値は、前記重み入力値と前記生の重み値との差の尺度であり、
前記活性化入力値と前記重み入力値とを乗算して前記積値を生成することは、
前記行列計算ユニットの前記乗算回路が、
前記入力値と前記重み入力値との乗算、
前記入力値と前記重み高精度値との乗算、
前記重み入力値と前記活性化高精度値との乗算、および
前記活性化高精度値と前記重み高精度値との乗算を実行することを含み、
前記外部の合計回路は、第2のグループの動作を実行するように構成され、前記第2のグループの動作は、
前記乗算の積を結合して前記積値を生成することを含む、請求項8から請求項11のいずれか1項に記載のハードウェア回路。 - 1つ以上のコンピュータと、前記1つ以上のコンピュータによって実行されると前記1つ以上のコンピュータに請求項1から請求項7のいずれか1項のそれぞれの方法の動作を実行させるよう動作可能な命令を記憶する1つ以上の記憶装置とを備えるシステム。
- 1つ以上のコンピュータによって実行されると前記1つ以上のコンピュータに請求項1から請求項7のいずれか1項に記載のそれぞれの方法の動作を実行させる命令でエンコードされたコンピュータ記憶媒体。
- 1つ以上のコンピュータと、前記1つ以上のコンピュータによって実行されると前記1つ以上のコンピュータに請求項8から請求項12のいずれか1項のそれぞれのハードウェア回路の動作を実行させるよう動作可能な命令を記憶する1つ以上の記憶装置とを備えるシステム。
- 1つ以上のコンピュータによって実行されると前記1つ以上のコンピュータに請求項8から請求項12のいずれか1項のそれぞれのハードウェア回路の動作を実行させる命令でエンコードされたコンピュータ記憶媒体。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762507748P | 2017-05-17 | 2017-05-17 | |
US62/507,748 | 2017-05-17 | ||
PCT/US2018/033271 WO2018213636A1 (en) | 2017-05-17 | 2018-05-17 | Performing matrix multiplication in hardware |
JP2019551610A JP7114622B2 (ja) | 2017-05-17 | 2018-05-17 | ハードウェアにおける行列乗算の実行 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019551610A Division JP7114622B2 (ja) | 2017-05-17 | 2018-05-17 | ハードウェアにおける行列乗算の実行 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022106737A true JP2022106737A (ja) | 2022-07-20 |
JP7312879B2 JP7312879B2 (ja) | 2023-07-21 |
Family
ID=62784216
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019551610A Active JP7114622B2 (ja) | 2017-05-17 | 2018-05-17 | ハードウェアにおける行列乗算の実行 |
JP2022063463A Active JP7312879B2 (ja) | 2017-05-17 | 2022-04-06 | ハードウェアにおける行列乗算の実行 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019551610A Active JP7114622B2 (ja) | 2017-05-17 | 2018-05-17 | ハードウェアにおける行列乗算の実行 |
Country Status (7)
Country | Link |
---|---|
US (3) | US10621269B2 (ja) |
EP (1) | EP3625670B1 (ja) |
JP (2) | JP7114622B2 (ja) |
KR (2) | KR102477516B1 (ja) |
CN (2) | CN117273096A (ja) |
TW (3) | TWI807539B (ja) |
WO (1) | WO2018213636A1 (ja) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10521488B1 (en) | 2016-12-30 | 2019-12-31 | X Development Llc | Dynamic partitioning |
KR102477516B1 (ko) | 2017-05-17 | 2022-12-14 | 구글 엘엘씨 | 하드웨어에서 매트릭스 곱셈을 수행 |
US10790828B1 (en) * | 2017-07-21 | 2020-09-29 | X Development Llc | Application specific integrated circuit accelerators |
US10879904B1 (en) | 2017-07-21 | 2020-12-29 | X Development Llc | Application specific integrated circuit accelerators |
US11294626B2 (en) * | 2018-09-27 | 2022-04-05 | Intel Corporation | Floating-point dynamic range expansion |
CN111291874B (zh) * | 2018-12-06 | 2023-12-01 | 神盾股份有限公司 | 卷积神经网络处理器及其数据处理方法 |
US11494645B2 (en) | 2018-12-06 | 2022-11-08 | Egis Technology Inc. | Convolutional neural network processor and data processing method thereof |
CN111338974A (zh) | 2018-12-19 | 2020-06-26 | 超威半导体公司 | 用于矩阵数学指令集的图块化算法 |
US11562247B2 (en) * | 2019-01-24 | 2023-01-24 | Microsoft Technology Licensing, Llc | Neural network activation compression with non-uniform mantissas |
US10831496B2 (en) * | 2019-02-28 | 2020-11-10 | International Business Machines Corporation | Method to execute successive dependent instructions from an instruction stream in a processor |
US20220171829A1 (en) * | 2019-03-11 | 2022-06-02 | Untether Ai Corporation | Computational memory |
US11934342B2 (en) | 2019-03-15 | 2024-03-19 | Intel Corporation | Assistance for hardware prefetch in cache access |
BR112021016138A2 (pt) | 2019-03-15 | 2022-01-04 | Intel Corp | Aparelho, método, processador gráfico de propósito geral e sistema de processamento de dados |
EP3938912B1 (en) | 2019-03-15 | 2023-09-20 | INTEL Corporation | Memory controller management techniques |
US11556615B2 (en) | 2019-05-03 | 2023-01-17 | Tesla, Inc. | Data path for scalable matrix node engine with mixed data formats |
CN112149049A (zh) * | 2019-06-26 | 2020-12-29 | 北京百度网讯科技有限公司 | 用于变换矩阵的装置和方法、数据处理系统 |
US11379555B2 (en) * | 2019-06-28 | 2022-07-05 | Amazon Technologies, Inc. | Dilated convolution using systolic array |
US10977002B2 (en) * | 2019-07-15 | 2021-04-13 | Facebook Technologies, Llc | System and method for supporting alternate number format for efficient multiplication |
US11842169B1 (en) | 2019-09-25 | 2023-12-12 | Amazon Technologies, Inc. | Systolic multiply delayed accumulate processor architecture |
US11531729B2 (en) * | 2019-10-04 | 2022-12-20 | Stmicroelectronics S.R.L. | Bitwise digital circuit and method for performing approximate operations |
US11861761B2 (en) | 2019-11-15 | 2024-01-02 | Intel Corporation | Graphics processing unit processing and caching improvements |
CN110929861B (zh) * | 2019-11-15 | 2023-04-18 | 中国人民解放军国防科技大学 | 一种多层感知机深度神经网络层间流水的硬件加速器 |
US11816446B2 (en) * | 2019-11-27 | 2023-11-14 | Amazon Technologies, Inc. | Systolic array component combining multiple integer and floating-point data types |
US11467806B2 (en) | 2019-11-27 | 2022-10-11 | Amazon Technologies, Inc. | Systolic array including fused multiply accumulate with efficient prenormalization and extended dynamic range |
US11625453B1 (en) * | 2019-12-12 | 2023-04-11 | Amazon Technologies, Inc. | Using shared data bus to support systolic array tiling |
US11922292B2 (en) * | 2020-01-27 | 2024-03-05 | Google Llc | Shared scratchpad memory with parallel load-store |
KR102404388B1 (ko) * | 2020-03-09 | 2022-06-02 | (주)그린파워 | 트랜스포즈 매트릭스 곱셈이 가능한 매트릭스 곱셈기 및 곱셈방법 |
JP7391774B2 (ja) | 2020-06-11 | 2023-12-05 | 株式会社東芝 | 演算処理装置、情報処理装置及び演算処理方法 |
US11308027B1 (en) | 2020-06-29 | 2022-04-19 | Amazon Technologies, Inc. | Multiple accumulate busses in a systolic array |
TWI746126B (zh) | 2020-08-25 | 2021-11-11 | 創鑫智慧股份有限公司 | 矩陣乘法裝置及其操作方法 |
US11681776B2 (en) * | 2020-10-08 | 2023-06-20 | Applied Materials, Inc. | Adaptive settling time control for binary-weighted charge redistribution circuits |
CN112434256B (zh) * | 2020-12-03 | 2022-09-13 | 海光信息技术股份有限公司 | 矩阵乘法器和处理器 |
US11880682B2 (en) | 2021-06-30 | 2024-01-23 | Amazon Technologies, Inc. | Systolic array with efficient input reduction and extended array performance |
US20230010897A1 (en) | 2021-07-06 | 2023-01-12 | Google Llc | In situ sparse matrix expansion |
US20230083270A1 (en) * | 2021-09-14 | 2023-03-16 | International Business Machines Corporation | Mixed signal circuitry for bitwise multiplication with different accuracies |
US20230289139A1 (en) * | 2022-03-08 | 2023-09-14 | International Business Machines Corporation | Hardware device to execute instruction to convert input value from one data format to another data format |
KR20240033565A (ko) * | 2022-09-05 | 2024-03-12 | 리벨리온 주식회사 | 뉴럴 프로세싱 장치, 그에 포함되는 프로세싱 엘리먼트 및 뉴럴 프로세싱 장치의 다양한 포맷 연산 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6280764A (ja) * | 1985-10-04 | 1987-04-14 | Nec Corp | 浮動小数点積和演算器 |
JP2007531072A (ja) * | 2003-12-19 | 2007-11-01 | マイクロユニティ システムズ エンジニアリング インコーポレイテッド | プログラム可能なプロセッサ及び拡張演算を伴う方法 |
US20150170021A1 (en) * | 2013-12-18 | 2015-06-18 | Marc Lupon | Reconfigurable processing unit |
US20180315157A1 (en) * | 2017-04-28 | 2018-11-01 | Intel Corporation | Compute optimizations for low precision machine learning operations |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4583222A (en) | 1983-11-07 | 1986-04-15 | Digital Equipment Corporation | Method and apparatus for self-testing of floating point accelerator processors |
US4933895A (en) | 1987-07-10 | 1990-06-12 | Hughes Aircraft Company | Cellular array having data dependent processing capabilities |
US5790834A (en) | 1992-08-31 | 1998-08-04 | Intel Corporation | Apparatus and method using an ID instruction to identify a computer microprocessor |
EP0632369A1 (en) | 1993-06-29 | 1995-01-04 | Stichting voor de Technische Wetenschappen | CORDIC algorithms and architectures |
US5623616A (en) | 1993-07-22 | 1997-04-22 | Hewlett-Packard Company | Floating point operaton throughput control |
US5375084A (en) | 1993-11-08 | 1994-12-20 | International Business Machines Corporation | Selectable interface between memory controller and memory simms |
US5442577A (en) | 1994-03-08 | 1995-08-15 | Exponential Technology, Inc. | Sign-extension of immediate constants in an alu |
US5548545A (en) * | 1995-01-19 | 1996-08-20 | Exponential Technology, Inc. | Floating point exception prediction for compound operations and variable precision using an intermediate exponent bus |
US5689677A (en) | 1995-06-05 | 1997-11-18 | Macmillan; David C. | Circuit for enhancing performance of a computer for personal use |
US5666071A (en) | 1995-12-01 | 1997-09-09 | Advanced Micro Devices, Inc. | Device and method for programming high impedance states upon select input/output pads |
US6018232A (en) | 1996-02-27 | 2000-01-25 | Fujitsu Limited | Method of operating battery powered computing device with radio transmitter |
US6088715A (en) * | 1997-10-23 | 2000-07-11 | Advanced Micro Devices, Inc. | Close path selection unit for performing effective subtraction within a floating point arithmetic unit |
US6065029A (en) | 1998-05-26 | 2000-05-16 | N*Able Technologies, Inc. | Method and system for providing a random number generator |
US6622135B1 (en) | 1998-12-29 | 2003-09-16 | International Business Machines Corporation | Method for detecting and classifying anomalies using artificial neural networks |
US6675292B2 (en) | 1999-08-13 | 2004-01-06 | Sun Microsystems, Inc. | Exception handling for SIMD floating point-instructions using a floating point status register to report exceptions |
KR20020008848A (ko) * | 2000-03-31 | 2002-01-31 | 이데이 노부유끼 | 로봇 장치, 로봇 장치의 행동 제어 방법, 외력 검출 장치및 외력 검출 방법 |
US6920574B2 (en) | 2002-04-29 | 2005-07-19 | Apple Computer, Inc. | Conserving power by reducing voltage supplied to an instruction-processing portion of a processor |
US7219085B2 (en) | 2003-12-09 | 2007-05-15 | Microsoft Corporation | System and method for accelerating and optimizing the processing of machine learning techniques using a graphics processing unit |
US7669035B2 (en) | 2004-01-21 | 2010-02-23 | The Charles Stark Draper Laboratory, Inc. | Systems and methods for reconfigurable computing |
EP1724823A3 (fr) | 2005-05-11 | 2009-09-09 | Stmicroelectronics Sa | Procédé de connexion d'une microplaquette de semi-conducteur sur un support d'interconnexion |
CN101228692B (zh) | 2005-07-25 | 2012-10-03 | Arm有限公司 | 功率控制集成电路单元 |
US7856618B2 (en) | 2005-08-04 | 2010-12-21 | International Business Machines Corporation | Adaptively generating code for a computer program |
US7512282B2 (en) | 2005-08-31 | 2009-03-31 | International Business Machines Corporation | Methods and apparatus for incremental approximate nearest neighbor searching |
US7301436B1 (en) | 2005-11-14 | 2007-11-27 | National Semiconductor Corporation | Apparatus and method for precision trimming of integrated circuits using anti-fuse bond pads |
US8595279B2 (en) | 2006-02-27 | 2013-11-26 | Qualcomm Incorporated | Floating-point processor with reduced power requirements for selectable subprecision |
US7912887B2 (en) | 2006-05-10 | 2011-03-22 | Qualcomm Incorporated | Mode-based multiply-add recoding for denormal operands |
US8280941B2 (en) * | 2007-12-19 | 2012-10-02 | HGST Netherlands B.V. | Method and system for performing calculations using fixed point microprocessor hardware |
US8258410B2 (en) | 2008-01-26 | 2012-09-04 | International Business Machines Corporation | Construction of reliable stacked via in electronic substrates—vertical stiffness control method |
CN101782893B (zh) | 2009-01-21 | 2014-12-24 | 上海芯豪微电子有限公司 | 可重构数据处理平台 |
US8150902B2 (en) | 2009-06-19 | 2012-04-03 | Singular Computing Llc | Processing with compact arithmetic processing element |
US9104510B1 (en) * | 2009-07-21 | 2015-08-11 | Audience, Inc. | Multi-function floating point unit |
US9960917B2 (en) * | 2011-12-22 | 2018-05-01 | Intel Corporation | Matrix multiply accumulate instruction |
US8984042B2 (en) * | 2012-02-09 | 2015-03-17 | International Business Machines Corporation | Mixed precision estimate instruction computing narrow precision result for wide precision inputs |
US9104474B2 (en) * | 2012-12-28 | 2015-08-11 | Intel Corporation | Variable precision floating point multiply-add circuit |
WO2014116712A1 (en) * | 2013-01-22 | 2014-07-31 | Samplify Systems, Inc. | Data compression and decompression using simd instructions |
US9384168B2 (en) * | 2013-06-11 | 2016-07-05 | Analog Devices Global | Vector matrix product accelerator for microprocessor integration |
US10192162B2 (en) * | 2015-05-21 | 2019-01-29 | Google Llc | Vector computation unit in a neural network processor |
US11244225B2 (en) * | 2015-07-10 | 2022-02-08 | Samsung Electronics Co., Ltd. | Neural network processor configurable using macro instructions |
KR102477516B1 (ko) | 2017-05-17 | 2022-12-14 | 구글 엘엘씨 | 하드웨어에서 매트릭스 곱셈을 수행 |
-
2018
- 2018-05-17 KR KR1020217015439A patent/KR102477516B1/ko active IP Right Grant
- 2018-05-17 KR KR1020197027658A patent/KR102258120B1/ko active IP Right Grant
- 2018-05-17 TW TW110146923A patent/TWI807539B/zh active
- 2018-05-17 TW TW107116873A patent/TWI689873B/zh active
- 2018-05-17 CN CN202311134221.3A patent/CN117273096A/zh active Pending
- 2018-05-17 WO PCT/US2018/033271 patent/WO2018213636A1/en unknown
- 2018-05-17 CN CN201880019014.4A patent/CN110447010B/zh active Active
- 2018-05-17 US US15/983,047 patent/US10621269B2/en active Active
- 2018-05-17 EP EP18735434.5A patent/EP3625670B1/en active Active
- 2018-05-17 JP JP2019551610A patent/JP7114622B2/ja active Active
- 2018-05-17 TW TW109105926A patent/TWI751500B/zh active
-
2020
- 2020-03-20 US US16/826,075 patent/US10831862B2/en active Active
- 2020-11-09 US US17/093,439 patent/US11989258B2/en active Active
-
2022
- 2022-04-06 JP JP2022063463A patent/JP7312879B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6280764A (ja) * | 1985-10-04 | 1987-04-14 | Nec Corp | 浮動小数点積和演算器 |
US20160321071A1 (en) * | 1998-08-24 | 2016-11-03 | Microunity Systems Engineering, Inc. | Processor and method for executing wide operand multiply matrix operations |
JP2007531072A (ja) * | 2003-12-19 | 2007-11-01 | マイクロユニティ システムズ エンジニアリング インコーポレイテッド | プログラム可能なプロセッサ及び拡張演算を伴う方法 |
US20150170021A1 (en) * | 2013-12-18 | 2015-06-18 | Marc Lupon | Reconfigurable processing unit |
US20180315157A1 (en) * | 2017-04-28 | 2018-11-01 | Intel Corporation | Compute optimizations for low precision machine learning operations |
Also Published As
Publication number | Publication date |
---|---|
JP2020521192A (ja) | 2020-07-16 |
US10621269B2 (en) | 2020-04-14 |
US11989258B2 (en) | 2024-05-21 |
KR102477516B1 (ko) | 2022-12-14 |
KR20210062739A (ko) | 2021-05-31 |
KR20190117714A (ko) | 2019-10-16 |
TW202046181A (zh) | 2020-12-16 |
TWI807539B (zh) | 2023-07-01 |
TWI689873B (zh) | 2020-04-01 |
CN110447010B (zh) | 2023-09-26 |
JP7114622B2 (ja) | 2022-08-08 |
US20210124795A1 (en) | 2021-04-29 |
CN110447010A (zh) | 2019-11-12 |
TW202213189A (zh) | 2022-04-01 |
TW201905768A (zh) | 2019-02-01 |
WO2018213636A1 (en) | 2018-11-22 |
CN117273096A (zh) | 2023-12-22 |
US20200257754A1 (en) | 2020-08-13 |
KR102258120B1 (ko) | 2021-05-28 |
US20180336165A1 (en) | 2018-11-22 |
EP3625670A1 (en) | 2020-03-25 |
JP7312879B2 (ja) | 2023-07-21 |
TWI751500B (zh) | 2022-01-01 |
US10831862B2 (en) | 2020-11-10 |
EP3625670B1 (en) | 2022-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7312879B2 (ja) | ハードウェアにおける行列乗算の実行 | |
JP6929958B2 (ja) | 低レイテンシ行列乗算ユニット | |
CN110622134B (zh) | 专用神经网络训练芯片 | |
TW202414199A (zh) | 用於訓練神經網路之方法、系統及非暫時性電腦可讀儲存媒體 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220502 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220502 |
|
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: 20230613 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230710 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7312879 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |