JP7114622B2 - ハードウェアにおける行列乗算の実行 - Google Patents
ハードウェアにおける行列乗算の実行 Download PDFInfo
- Publication number
- JP7114622B2 JP7114622B2 JP2019551610A JP2019551610A JP7114622B2 JP 7114622 B2 JP7114622 B2 JP 7114622B2 JP 2019551610 A JP2019551610 A JP 2019551610A JP 2019551610 A JP2019551610 A JP 2019551610A JP 7114622 B2 JP7114622 B2 JP 7114622B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- weight
- activation
- point format
- precision
- 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
Links
- 239000011159 matrix material Substances 0.000 title claims description 144
- 230000004913 activation Effects 0.000 claims description 188
- 238000000034 method Methods 0.000 claims description 65
- 238000013528 artificial neural network Methods 0.000 claims description 39
- 230000008569 process Effects 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 16
- 239000013598 vector Substances 0.000 description 119
- 238000012545 processing Methods 0.000 description 31
- 230000009471 action Effects 0.000 description 16
- 230000009467 reduction Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000017105 transposition Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 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
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012886 linear function Methods 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
- 229940050561 matrix product Drugs 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000002360 preparation method 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
- 239000000758 substrate Substances 0.000 description 1
- 230000007704 transition 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)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (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)
Description
この明細書は、ハードウェアでのニューラルネットワーク計算の実行に関する。
一般に、この明細書はニューラルネットワーク推論を計算する専用ハードウェア回路について記載する。
詳細な説明
複数の層を有するニューラルネットワークを用いて計算を実行することができる。たとえば、入力が与えられると、ニューラルネットワークはその入力に対する推論を計算することができる。ニューラルネットワークは、ニューラルネットワークの各層を通して入力を処理することによって、この推論を計算する。各層は入力を受け取り、その層に対する重みのセットに従って入力を処理して出力を生成する。
セルは、活性化入力を格納する活性化レジスタ406を含み得る。活性化レジスタは、シストリックアレイ内のセルの位置に応じて、左側の隣接セル、すなわち所与のセルの左側に位置する隣接セルから、またはユニファイドバッファから、活性化入力を受け取ることができる。セルは、重み入力を格納する重みレジスタ402を含み得る。重み入力は、シストリックアレイ内のセルの位置に応じて、上の隣接セルまたは重みフェッチャインターフェイスから転送され得る。セルは総和レジスタ404を含むこともできる。総和レジスタ404は、上の隣接セルからの累積値を格納することができる。活性化レジスタ406および重みレジスタ402は、特定の形式の浮動小数点値など、特定のサイズの値を格納するように構成されたレジスタであり得る。
Claims (18)
- ハードウェア回路を用いて行列乗算を実行する方法であって、
前記ハードウェア回路の行列計算ユニットが、活性化入力値および重み入力値を取得することを備え、前記活性化入力値および前記重み入力値の各々は第1の浮動小数点形式を有し、前記行列計算ユニットは、複数のセルが2次元の各々に沿って結合されたシストリックアレイとして形成され、前記方法はさらに、
前記複数のセルの各々の乗算回路が、前記活性化入力値と前記重み入力値とを乗算して積値を生成することを備え、前記積値は、前記第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の浮動小数点形式のダイナミックレンジと同じ大きさのダイナミックレンジを有する第2の浮動小数点形式を有し、前記方法はさらに、
前記行列計算ユニットが、前記第1の浮動小数点形式よりも精度が高く、少なくとも前記第1の浮動小数点形式のダイナミックレンジと同じ大きさのダイナミックレンジを有する第3の浮動小数点形式で、部分和値を取得することと、
前記ハードウェア回路の合計回路が、少なくとも前記部分和値と前記積値とを結合して、前記第3の浮動小数点形式を有する更新された部分和値を生成することと、
前記ハードウェア回路がソフトウェア命令を介して生の活性化値を高精度で処理する要求を受け取ったかどうかを判断することと、
前記ハードウェア回路が前記要求を受け取った場合に前記活性化入力値に対して活性化高精度値を生成することとをさらに備え、前記活性化高精度値は、前記活性化入力値と前記生の活性化値との差の尺度であり、前記方法はさらに、
前記ハードウェア回路が前記要求を受け取った場合に前記重み入力値に対して重み高精度値を生成することを備え、前記重み高精度値は、前記重み入力値と生の重み値との差の尺度であり、
前記活性化入力値と前記重み入力値とを乗算して前記積値を生成することは、
前記ハードウェア回路が前記要求を受け取った場合に、前記行列計算ユニットの前記乗算回路が、
前記活性化入力値と前記重み入力値との乗算、
前記活性化入力値と前記重み高精度値との乗算、
前記重み入力値と前記活性化高精度値との乗算、および
前記活性化高精度値と前記重み高精度値との乗算を実行することと、
前記乗算の積を結合して前記積値を生成することとを含む、ハードウェア回路を用いて行列乗算を実行する方法。 - ハードウェア回路であって、
第1のグループの動作を実行するように構成された行列計算ユニットを備え、前記行列計算ユニットは、複数のセルが2次元の各々に沿って結合されたシストリックアレイとして形成され、前記第1のグループの動作は、
活性化入力値および重み入力値を取得することを含み、前記活性化入力値および前記重み入力値は両方とも第1の浮動小数点形式を有し、前記第1のグループの動作はさらに、
前記重み入力値を重みレジスタに格納することを含み、前記重みレジスタは前記第1の浮動小数点形式を有する値を格納するよう構成され、前記第1のグループの動作はさらに、
前記複数のセルの各々の乗算回路を用いて、前記活性化入力値と前記重み入力値とを乗算して積値を生成することを含み、前記積値は、前記第1の浮動小数点形式よりも精度が高く、少なくとも前記第1の浮動小数点形式のダイナミックレンジと同じ大きさのダイナミックレンジを有する第2の浮動小数点形式を有し、前記第1のグループの動作はさらに、
前記第1の浮動小数点形式よりも精度が高く、少なくとも前記第1の浮動小数点形式のダイナミックレンジと同じ大きさのダイナミックレンジを有する第3の浮動小数点形式で、当該セルに隣接するセルから部分和値を取得することと、
前記部分和値を総和レジスタに格納することとを含み、前記総和レジスタは、前記第3の浮動小数点形式を有する値を格納するように構成され、前記第1のグループの動作はさらに、
当該セルの合計回路を用いて、前記部分和値と前記積値とを結合して、前記第3の浮動小数点形式を有する更新された部分和値を当該セルに隣接する他のセルに送ることを含む、ハードウェア回路。 - 前記第1のグループの動作はさらに、
前記活性化入力値を活性化レジスタに格納することを含み、前記活性化レジスタは、前記第1の浮動小数点形式を有する値を格納するように構成される、請求項9に記載のハードウェア回路。 - 前記第1のグループの動作はさらに、
前記重み入力値を重みレジスタに格納することを含み、前記重みレジスタは前記第1の浮動小数点形式を有する値を格納するよう構成される、請求項9または請求項10に記載のハードウェア回路。 - 前記第1のグループの動作はさらに、
前記部分和値を総和レジスタに格納することを含み、前記総和レジスタは、前記第3の浮動小数点形式を有する値を格納するように構成される、請求項9から請求項11のいずれか1項に記載のハードウェア回路。 - 前記行列計算ユニットの外部に外部の合計回路をさらに備え、前記第1のグループの動作はさらに、
生の活性化値を高精度で処理する要求を受け取ることと、
前記活性化入力値に対して活性化高精度値を生成することとを含み、前記活性化高精度値は、前記活性化入力値と前記生の活性化値との差の尺度であり、前記第1のグループの動作はさらに、
前記重み入力値に対して重み高精度値を生成することを含み、前記重み高精度値は、前記重み入力値と生の重み値との差の尺度であり、
前記活性化入力値と前記重み入力値とを乗算して前記積値を生成することは、
前記行列計算ユニットの前記乗算回路が、
前記活性化入力値と前記重み入力値との乗算、
前記活性化入力値と前記重み高精度値との乗算、
前記重み入力値と前記活性化高精度値との乗算、および
前記活性化高精度値と前記重み高精度値との乗算を実行することを含み、
前記外部の合計回路は、第2のグループの動作を実行するように構成され、前記第2のグループの動作は、
前記乗算の積を結合して前記積値を生成することを含む、請求項9から請求項12のいずれか1項に記載のハードウェア回路。 - ハードウェア回路であって、
第1のグループの動作を実行するように構成された行列計算ユニットを備え、前記第1のグループの動作は、
活性化入力値および重み入力値を取得することを含み、前記活性化入力値および前記重み入力値は両方とも第1の浮動小数点形式を有し、前記第1のグループの動作はさらに、
前記重み入力値を重みレジスタに格納することを含み、前記重みレジスタは前記第1の浮動小数点形式を有する値を格納するよう構成され、前記第1のグループの動作はさらに、
前記ハードウェア回路の乗算回路を用いて、前記活性化入力値と前記重み入力値とを乗算して積値を生成することを含み、前記積値は、前記第1の浮動小数点形式よりも精度が高く、少なくとも前記第1の浮動小数点形式のダイナミックレンジと同じ大きさのダイナミックレンジを有する第2の浮動小数点形式を有し、前記第1のグループの動作はさらに、
前記第1の浮動小数点形式よりも精度が高く、少なくとも前記第1の浮動小数点形式のダイナミックレンジと同じ大きさのダイナミックレンジを有する第3の浮動小数点形式で、部分和値を取得することと、
前記部分和値を総和レジスタに格納することとを含み、前記総和レジスタは、前記第3の浮動小数点形式を有する値を格納するように構成され、前記第1のグループの動作はさらに、
前記行列計算ユニットの合計回路を用いて、前記部分和値と前記積値とを結合して、前記第3の浮動小数点形式を有する更新された部分和値を生成することを含み、
前記行列計算ユニットの外部に外部の合計回路をさらに備え、前記第1のグループの動作はさらに、
前記ハードウェア回路がソフトウェア命令を介して生の活性化値を高精度で処理する要求を受け取ったかどうかを判断することと、
前記ハードウェア回路が前記要求を受け取った場合に前記活性化入力値に対して活性化高精度値を生成することとを含み、前記活性化高精度値は、前記活性化入力値と前記生の活性化値との差の尺度であり、前記第1のグループの動作はさらに、
前記ハードウェア回路が前記要求を受け取った場合に前記重み入力値に対して重み高精度値を生成することを含み、前記重み高精度値は、前記重み入力値と生の重み値との差の尺度であり、
前記活性化入力値と前記重み入力値とを乗算して前記積値を生成することは、前記ハードウェア回路が前記要求を受け取った場合に
前記行列計算ユニットの前記乗算回路が、
前記活性化入力値と前記重み入力値との乗算、
前記活性化入力値と前記重み高精度値との乗算、
前記重み入力値と前記活性化高精度値との乗算、および
前記活性化高精度値と前記重み高精度値との乗算を実行することを含み、
前記外部の合計回路は、第2のグループの動作を実行するように構成され、前記第2のグループの動作は、
前記乗算の積を結合して前記積値を生成することを含む、ハードウェア回路。 - 前記ハードウェア回路を含む1つ以上のコンピュータと、前記1つ以上のコンピュータによって実行されると前記1つ以上のコンピュータに請求項1から請求項8のいずれか1項に記載の方法の動作を実行させるよう動作可能な命令を記憶する1つ以上の記憶装置とを備える、システム。
- 前記ハードウェア回路を含む1つ以上のコンピュータによって実行されると、前記1つ以上のコンピュータに請求項1から請求項8のいずれか1項に記載の方法を実行させるためのコンピュータプログラム。
- 請求項9から請求項14のいずれか1項に記載のハードウェア回路を含む1つ以上のコンピュータと、前記1つ以上のコンピュータによって実行されると前記1つ以上のコンピュータに前記ハードウェア回路の動作を実行させるよう動作可能な命令を記憶する1つ以上の記憶装置とを備える、システム。
- 請求項9から請求項14のいずれか1項に記載のハードウェア回路を含む1つ以上のコンピュータによって実行されると前記1つ以上のコンピュータに前記ハードウェア回路の動作を実行させる命令を含む、コンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022063463A JP7312879B2 (ja) | 2017-05-17 | 2022-04-06 | ハードウェアにおける行列乗算の実行 |
Applications Claiming Priority (3)
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 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022063463A Division JP7312879B2 (ja) | 2017-05-17 | 2022-04-06 | ハードウェアにおける行列乗算の実行 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020521192A JP2020521192A (ja) | 2020-07-16 |
JP7114622B2 true JP7114622B2 (ja) | 2022-08-08 |
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 After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022063463A Active JP7312879B2 (ja) | 2017-05-17 | 2022-04-06 | ハードウェアにおける行列乗算の実行 |
Country Status (7)
Country | Link |
---|---|
US (3) | US10621269B2 (ja) |
EP (1) | EP3625670B1 (ja) |
JP (2) | JP7114622B2 (ja) |
KR (2) | KR102258120B1 (ja) |
CN (2) | CN117273096A (ja) |
TW (3) | TWI689873B (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 |
WO2018213636A1 (en) | 2017-05-17 | 2018-11-22 | Google Llc | Performing matrix multiplication in hardware |
US10879904B1 (en) | 2017-07-21 | 2020-12-29 | X Development Llc | Application specific integrated circuit accelerators |
US10790828B1 (en) * | 2017-07-21 | 2020-09-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 |
CN112534405A (zh) | 2019-03-15 | 2021-03-19 | 英特尔公司 | 用于脉动阵列上的块稀疏操作的架构 |
US11934342B2 (en) | 2019-03-15 | 2024-03-19 | Intel Corporation | Assistance for hardware prefetch in cache access |
CN113366454A (zh) | 2019-03-15 | 2021-09-07 | 英特尔公司 | 用于图形操作的多片架构 |
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 |
CN110929861B (zh) * | 2019-11-15 | 2023-04-18 | 中国人民解放军国防科技大学 | 一种多层感知机深度神经网络层间流水的硬件加速器 |
US11861761B2 (en) | 2019-11-15 | 2024-01-02 | Intel Corporation | Graphics processing unit processing and caching improvements |
US11467806B2 (en) | 2019-11-27 | 2022-10-11 | Amazon Technologies, Inc. | Systolic array including fused multiply accumulate with efficient prenormalization and extended dynamic range |
US11816446B2 (en) * | 2019-11-27 | 2023-11-14 | Amazon Technologies, Inc. | Systolic array component combining multiple integer and floating-point data types |
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 (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005182785A (ja) | 2003-12-09 | 2005-07-07 | Microsoft Corp | グラフィックス処理ユニットを使用して機械学習技術の処理を速め、最適化するシステムおよび方法 |
JP2007531072A (ja) | 2003-12-19 | 2007-11-01 | マイクロユニティ システムズ エンジニアリング インコーポレイテッド | プログラム可能なプロセッサ及び拡張演算を伴う方法 |
US20150170021A1 (en) | 2013-12-18 | 2015-06-18 | Marc Lupon | Reconfigurable processing unit |
Family Cites Families (40)
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 |
JPS6280764A (ja) * | 1985-10-04 | 1987-04-14 | Nec Corp | 浮動小数点積和演算器 |
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 |
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 |
US7863778B2 (en) | 2005-07-25 | 2011-01-04 | Arm Limited | Power controlling integrated circuit cell |
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 |
CN103975302B (zh) * | 2011-12-22 | 2017-10-27 | 英特尔公司 | 矩阵乘法累加指令 |
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 |
EP2949047B1 (en) * | 2013-01-22 | 2021-03-31 | Altera Corporation | 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 |
US10726514B2 (en) | 2017-04-28 | 2020-07-28 | Intel Corporation | Compute optimizations for low precision machine learning operations |
WO2018213636A1 (en) | 2017-05-17 | 2018-11-22 | Google Llc | Performing matrix multiplication in hardware |
-
2018
- 2018-05-17 WO PCT/US2018/033271 patent/WO2018213636A1/en unknown
- 2018-05-17 CN CN202311134221.3A patent/CN117273096A/zh active Pending
- 2018-05-17 KR KR1020197027658A patent/KR102258120B1/ko active IP Right Grant
- 2018-05-17 TW TW107116873A patent/TWI689873B/zh active
- 2018-05-17 TW TW109105926A patent/TWI751500B/zh active
- 2018-05-17 TW TW110146923A patent/TWI807539B/zh 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 KR KR1020217015439A patent/KR102477516B1/ko active IP Right Grant
- 2018-05-17 CN CN201880019014.4A patent/CN110447010B/zh active Active
- 2018-05-17 JP JP2019551610A patent/JP7114622B2/ja active 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 (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005182785A (ja) | 2003-12-09 | 2005-07-07 | Microsoft Corp | グラフィックス処理ユニットを使用して機械学習技術の処理を速め、最適化するシステムおよび方法 |
JP2007531072A (ja) | 2003-12-19 | 2007-11-01 | マイクロユニティ システムズ エンジニアリング インコーポレイテッド | プログラム可能なプロセッサ及び拡張演算を伴う方法 |
US20150170021A1 (en) | 2013-12-18 | 2015-06-18 | Marc Lupon | Reconfigurable processing unit |
Also Published As
Publication number | Publication date |
---|---|
EP3625670A1 (en) | 2020-03-25 |
EP3625670B1 (en) | 2022-02-23 |
US20210124795A1 (en) | 2021-04-29 |
JP2022106737A (ja) | 2022-07-20 |
KR102258120B1 (ko) | 2021-05-28 |
US11989258B2 (en) | 2024-05-21 |
TWI807539B (zh) | 2023-07-01 |
JP7312879B2 (ja) | 2023-07-21 |
CN117273096A (zh) | 2023-12-22 |
TW201905768A (zh) | 2019-02-01 |
US20180336165A1 (en) | 2018-11-22 |
JP2020521192A (ja) | 2020-07-16 |
KR20210062739A (ko) | 2021-05-31 |
CN110447010A (zh) | 2019-11-12 |
KR20190117714A (ko) | 2019-10-16 |
CN110447010B (zh) | 2023-09-26 |
TWI751500B (zh) | 2022-01-01 |
TW202213189A (zh) | 2022-04-01 |
TWI689873B (zh) | 2020-04-01 |
KR102477516B1 (ko) | 2022-12-14 |
US20200257754A1 (en) | 2020-08-13 |
US10831862B2 (en) | 2020-11-10 |
US10621269B2 (en) | 2020-04-14 |
WO2018213636A1 (en) | 2018-11-22 |
TW202046181A (zh) | 2020-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7312879B2 (ja) | ハードウェアにおける行列乗算の実行 | |
JP7135181B2 (ja) | 低レイテンシ行列乗算ユニット | |
CN110622134B (zh) | 专用神经网络训练芯片 | |
JP2018055677A (ja) | 外積累算演算のためのプロセッサおよび方法 | |
TW202414199A (zh) | 用於訓練神經網路之方法、系統及非暫時性電腦可讀儲存媒體 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191206 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191206 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210330 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210628 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20211207 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220406 |
|
C60 | Trial request (containing other claim documents, opposition documents) |
Free format text: JAPANESE INTERMEDIATE CODE: C60 Effective date: 20220406 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20220413 |
|
C21 | Notice of transfer of a case for reconsideration by examiners before appeal proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C21 Effective date: 20220420 |
|
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: 20220628 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220727 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7114622 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |