JP7495480B2 - 共有スクラッチパッドメモリを用いたベクトル縮小 - Google Patents
共有スクラッチパッドメモリを用いたベクトル縮小 Download PDFInfo
- Publication number
- JP7495480B2 JP7495480B2 JP2022513296A JP2022513296A JP7495480B2 JP 7495480 B2 JP7495480 B2 JP 7495480B2 JP 2022513296 A JP2022513296 A JP 2022513296A JP 2022513296 A JP2022513296 A JP 2022513296A JP 7495480 B2 JP7495480 B2 JP 7495480B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- values
- processor core
- memory
- shared memory
- 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
- 230000015654 memory Effects 0.000 title claims description 399
- 239000013598 vector Substances 0.000 title claims description 346
- 230000009467 reduction Effects 0.000 title description 41
- 238000009825 accumulation Methods 0.000 claims description 93
- 238000000034 method Methods 0.000 claims description 70
- 238000013528 artificial neural network Methods 0.000 claims description 62
- 239000011159 matrix material Substances 0.000 claims description 39
- 238000012545 processing Methods 0.000 claims description 35
- 230000006870 function Effects 0.000 claims description 32
- 238000004364 calculation method Methods 0.000 claims description 30
- 230000004913 activation Effects 0.000 claims description 27
- 238000004891 communication Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 13
- 238000007667 floating Methods 0.000 claims description 7
- 230000035508 accumulation Effects 0.000 description 80
- 238000001994 activation Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 19
- 238000013527 convolutional neural network Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 230000004044 response Effects 0.000 description 9
- 238000013459 approach Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 6
- 238000003062 neural network model Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 3
- 230000006386 memory function Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000000306 recurrent 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
- 230000009466 transformation Effects 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
- 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/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- 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/544—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 for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- 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
-
- 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/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/044—Recurrent networks, e.g. Hopfield 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/045—Combinations of 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/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4818—Threshold devices
- G06F2207/4824—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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Neurology (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Description
本明細書は、概して、ニューラルネットワーク計算を実行するために用いられるハードウェア回路の回路構成に関する。
本文書には、大規模共有スクラッチパッドメモリにおいてデータ蓄積およびベクトル縮小を実行するための技術が記載されている。特に、これらの技術を用いて、計算システムのそれぞれのプロセッサコアで行われる計算の結果として生成される値または出力を縮小することを含むベクトル縮小を実行するために必要な演算の全体量を縮小する。たとえば、システムは、複数のプロセッサコアを有し得るハードウェア回路と、スタティックランダムアクセスメモリ(SRAM)のメモリリソースを組込むアーキテクチャとを含む。SRAMのメモリリソースは、回路の複数のそれぞれのプロセッサコアの間で共有されるように割り当てられる。
さまざまな図面における同様の参照番号および名称は、同様の要素を示す。
Claims (25)
- 共有メモリと、前記共有メモリと通信する複数のプロセッサコアとを有するハードウェア回路を用いて実行される方法であって、前記方法は、
第1のプロセッサコアのベクトル処理ユニットによって演算されるベクトルオペランドに基づいて、値の第1のベクトルを生成することと、
前記共有メモリが、前記共有メモリのダイレクトメモリアクセス(DMA)データパスを用いて、前記第1のプロセッサコアから前記値の第1のベクトルを受信することと、
前記値の第1のベクトルと前記共有メモリに格納されているベクトルとの間の累積演算を実行することとを備え、
前記累積演算は演算器ユニットを用いて実行され、前記演算器ユニットは、
i)1つ以上のベクトルのそれぞれの値を累積するように構成され、
ii)前記値の第1のベクトルが前記共有メモリにルーティングされることにより、前記値の第1のベクトルが、前記第1のプロセッサコアの外部の前記共有メモリに格納されている前記ベクトルに累積されるように、前記ベクトル処理ユニットおよび前記第1のプロセッサコアの外部に位置し、前記方法はさらに、
前記累積演算に基づいて結果ベクトルを生成することを備える、方法。 - 前記共有メモリに格納されている前記ベクトルは、第2のプロセッサコアから受信したものであり、前記方法は、
前記共有メモリのメモリ場所を用いて前記値の第1のベクトルのそれぞれの値を累積するメモリへの累積動作を実行することと、
前記共有メモリの前記メモリ場所を用いて値の第2のベクトルのそれぞれの値を累積するメモリへの累積動作を実行することとを備える、請求項1に記載の方法。 - 前記累積演算に基づいて前記結果ベクトルを生成することは、
前記第1のプロセッサコアで実行される計算から得られる積を事前に累積するステップを前記第1のプロセッサコアが実行することなく、前記結果ベクトルを生成することと、
前記第2のプロセッサコアで実行される計算から得られる積を事前に累積するステップを前記第2のプロセッサコアが実行することなく、前記結果ベクトルを生成することとを含む、請求項2に記載の方法。 - 前記結果ベクトルを生成することは、
前記値の第1のベクトルに対して前記累積演算を実行した結果として、累積値のベクトルを生成することと、
前記累積値のベクトル内の各値に活性化関数を適用することと、
前記累積値のベクトル内の各値に前記活性化関数を適用した結果として、前記結果ベクトルを生成することとを含む、請求項1~3のいずれか1項に記載の方法。 - 前記第1のプロセッサコアのそれぞれのリソースは、第1の行列計算ユニットであり、前記方法はさらに、
前記第1のプロセッサコアの前記第1の行列計算ユニットを用いて実行される行列乗算に基づいて、前記値の第1のベクトルに対応する累積値の第1のベクトルを生成することを備える、請求項2または3に記載の方法。 - 前記第2のプロセッサコアのそれぞれのリソースは、第2の行列計算ユニットであり、前記方法はさらに、
前記第2のプロセッサコアの前記第2の行列計算ユニットを用いて実行される行列乗算に基づいて、前記値の第2のベクトルに対応する累積値の第2のベクトルを生成することを備える、請求項5に記載の方法。 - 前記ハードウェア回路は、複数のニューラルネットワーク層を含むニューラルネットワークを実行するように構成されたハードウェアアクセラレータであり、
前記方法は、前記結果ベクトルに基づいて前記ニューラルネットワークの層の出力を生成することを備える、請求項1~6のいずれか1項に記載の方法。 - 前記第1のプロセッサコアで実行される計算に基づいて、前記値の第1のベクトルを生成することと、
前記第2のプロセッサコアで実行される計算に基づいて、前記値の第2のベクトルを生成することとをさらに備え、
前記第1のプロセッサコアで実行される前記計算および前記第2のプロセッサコアで実行される前記計算は、可換性によって制御される数学的演算の一部である、請求項2、3、5、および6のいずれか1項に記載の方法。 - 前記数学的演算は、
浮動小数点乗算演算、
浮動小数点加算演算、
整数加算演算、または
最小-最大演算である、請求項8に記載の方法。 - 前記数学的演算は、浮動小数点加算演算および整数加算演算を含む、請求項8に記載の方法。
- 前記第1のプロセッサコアおよび第2のプロセッサコアは同一のプロセッサコアである、請求項2、3、5、6、および8~10のいずれか1項に記載の方法。
- 前記共有メモリは、前記ハードウェア回路の2つ以上のプロセッサコアの間で共有されるメモリバンクおよびレジスタを含む共有グローバルメモリ空間として機能するように構成される、請求項1~11のいずれか1項に記載の方法。
- システムであって、
処理装置と、
共有メモリと、前記共有メモリと通信する複数のプロセッサコアとを有するハードウェア回路と、
動作を実行させるように前記処理装置によって実行可能な命令を格納するための非一時的な機械読取可能記憶装置とを備え、前記動作は、
第1のプロセッサコアのベクトル処理ユニットによって演算されるベクトルオペランドに基づいて、値の第1のベクトルを生成することと、
前記共有メモリが、前記共有メモリのダイレクトメモリアクセス(DMA)データパスを用いて、前記第1のプロセッサコアから前記値の第1のベクトルを受信することと、
前記値の第1のベクトルと前記共有メモリに格納されているベクトルとの間の累積演算を実行することとを含み、
前記累積演算は演算器ユニットを用いて実行され、前記演算器ユニットは、
i)1つ以上のベクトルのそれぞれの値を累積するように構成され、
ii)前記値の第1のベクトルが前記共有メモリにルーティングされることにより、前記値の第1のベクトルが、前記第1のプロセッサコアの外部の前記共有メモリに格納されている前記ベクトルに累積されるように、前記ベクトル処理ユニットおよび前記第1のプロセッサコアの外部に位置し、前記動作はさらに、
前記累積演算に基づいて結果ベクトルを生成することを含む、システム。 - 前記共有メモリに格納されている前記ベクトルは、第2のプロセッサコアから受信したものであり、前記動作は、
前記共有メモリのメモリ場所を用いて前記値の第1のベクトルのそれぞれの値を累積するメモリへの累積動作を実行することと、
前記共有メモリの前記メモリ場所を用いてに値の第2のベクトルのそれぞれの値を累積するメモリへの累積動作を実行することとを含む、請求項13に記載のシステム。 - 前記累積演算に基づいて前記結果ベクトルを生成することは、
前記第1のプロセッサコアで実行される計算から得られる積を事前に累積するステップを前記第1のプロセッサコアが実行することなく、前記結果ベクトルを生成することと、
前記第2のプロセッサコアで実行される計算から得られる積を事前に累積するステップを前記第2のプロセッサコアが実行することなく、前記結果ベクトルを生成することとを含む、請求項14に記載のシステム。 - 前記結果ベクトルを生成することは、
前記値の第1のベクトルに対して前記累積演算を実行した結果として、累積値のベクトルを生成することと、
前記累積値のベクトル内の各値に活性化関数を適用することと、
前記累積値のベクトル内の各値に前記活性化関数を適用した結果として、前記結果ベクトルを生成することとを含む、請求項13~15のいずれか1項に記載のシステム。 - 前記第1のプロセッサコアのそれぞれのリソースは、第1の行列計算ユニットであり、前記動作はさらに、
前記第1のプロセッサコアの前記第1の行列計算ユニットを用いて実行される行列乗算に基づいて、前記値の第1のベクトルに対応する累積値の第1のベクトルを生成することを含む、請求項14または15に記載のシステム。 - 前記第2のプロセッサコアのそれぞれのリソースは、第2の行列計算ユニットであり、前記動作はさらに、
前記第2のプロセッサコアの前記第2の行列計算ユニットを用いて実行される行列乗算に基づいて、前記値の第2のベクトルに対応する累積値の第2のベクトルを生成することを含む、請求項17に記載のシステム。 - 前記ハードウェア回路は、複数のニューラルネットワーク層を含むニューラルネットワークを実行するように構成されたハードウェアアクセラレータであり、
前記動作は、前記結果ベクトルに基づいて前記ニューラルネットワークの層の出力を生成することを含む、請求項13~18のいずれか1項に記載のシステム。 - 前記第1のプロセッサコアで実行される計算に基づいて、前記値の第1のベクトルを生成することと、
前記第2のプロセッサコアで実行される計算に基づいて、前記値の第2のベクトルを生成することとをさらに含み、
前記第1のプロセッサコアで実行される前記計算および前記第2のプロセッサコアで実行される前記計算は、可換性によって制御される数学的演算の一部である、請求項14、15、17、および18のいずれか1項に記載のシステム。 - 前記数学的演算は、
浮動小数点乗算演算、
浮動小数点加算演算、
整数加算演算、または
最小-最大演算である、請求項20に記載のシステム。 - 前記数学的演算は、浮動小数点加算演算および整数加算演算を含む、請求項20に記載のシステム。
- 前記第1のプロセッサコアおよび第2のプロセッサコアは同一のプロセッサコアである、請求項14、15、17、18、および20~22のいずれか1項に記載のシステム。
- 前記共有メモリは、前記ハードウェア回路の2つ以上のプロセッサコアの間で共有されるメモリバンクおよびレジスタを含む共有グローバルメモリ空間として機能するように構成される、請求項13~23のいずれか1項に記載のシステム。
- 動作を実行させるように処理装置によって実行可能な命令を格納するコンピュータプログラムであって、前記動作は、
第1のプロセッサコアのベクトル処理ユニットによって演算されるベクトルオペランドに基づいて、値の第1のベクトルを生成することと、
共有メモリが、前記共有メモリのダイレクトメモリアクセス(DMA)データパスを用いて、前記第1のプロセッサコアから前記値の第1のベクトルを受信することと、
前記値の第1のベクトルと前記共有メモリに格納されているベクトルとの間の累積演算を実行することと含み、
前記累積演算は演算器ユニットを用いて実行され、前記演算器ユニットは、
i)1つ以上のベクトルのそれぞれの値を累積するように構成され、
ii)前記値の第1のベクトルが前記共有メモリにルーティングされることにより、前記値の第1のベクトルが、前記第1のプロセッサコアの外部の前記共有メモリに格納されている前記ベクトルに累積されるように、前記ベクトル処理ユニットおよび前記第1のプロセッサコアの外部に位置し、前記動作はさらに、
前記累積演算に基づいて結果ベクトルを生成することを含む、コンピュータプログラム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062981957P | 2020-02-26 | 2020-02-26 | |
US62/981,957 | 2020-02-26 | ||
US17/007,569 | 2020-08-31 | ||
US17/007,569 US11182159B2 (en) | 2020-02-26 | 2020-08-31 | Vector reductions using shared scratchpad memory |
PCT/US2020/062612 WO2021173201A1 (en) | 2020-02-26 | 2020-11-30 | Vector reductions using shared scratchpad memory |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023506343A JP2023506343A (ja) | 2023-02-16 |
JP7495480B2 true JP7495480B2 (ja) | 2024-06-04 |
Family
ID=77366021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022513296A Active JP7495480B2 (ja) | 2020-02-26 | 2020-11-30 | 共有スクラッチパッドメモリを用いたベクトル縮小 |
Country Status (7)
Country | Link |
---|---|
US (2) | US11182159B2 (ja) |
EP (1) | EP4004826A1 (ja) |
JP (1) | JP7495480B2 (ja) |
KR (1) | KR20220038148A (ja) |
CN (2) | CN117421047A (ja) |
TW (1) | TW202132976A (ja) |
WO (1) | WO2021173201A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111090464B (zh) * | 2018-10-23 | 2023-09-22 | 华为技术有限公司 | 一种数据流处理方法及相关设备 |
KR102620843B1 (ko) * | 2021-11-22 | 2024-01-03 | 리벨리온 주식회사 | 재구성가능 온 칩 메모리 뱅크, 재구성가능 온 칩 메모리, 이를 탑재한 시스템 온 칩 및 재구성가능 온 칩 메모리 사용 방법 |
US20220224605A1 (en) * | 2021-12-23 | 2022-07-14 | Intel Corporation | Simulating network flow control |
US11630605B1 (en) * | 2022-08-10 | 2023-04-18 | Recogni Inc. | Methods and systems for processing read-modify-write requests |
CN116306855B (zh) * | 2023-05-17 | 2023-09-01 | 之江实验室 | 一种基于存算一体系统的数据处理方法及装置 |
CN116821019B (zh) * | 2023-08-30 | 2023-11-14 | 腾讯科技(深圳)有限公司 | 数据处理方法、计算机设备及芯片 |
CN117787366B (zh) * | 2024-02-28 | 2024-05-10 | 苏州元脑智能科技有限公司 | 硬件加速器及其调度方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190065824A1 (en) | 2016-04-04 | 2019-02-28 | Fugro N.V. | Spatial data analysis |
US20190179635A1 (en) | 2017-12-11 | 2019-06-13 | Futurewei Technologies, Inc. | Method and apparatus for tensor and convolution operations |
US10354733B1 (en) | 2017-10-17 | 2019-07-16 | Xilinx, Inc. | Software-defined memory bandwidth reduction by hierarchical stream buffering for general matrix multiplication in a programmable IC |
US10460416B1 (en) | 2017-10-17 | 2019-10-29 | Xilinx, Inc. | Inline image preprocessing for convolution operations using a matrix multiplier on an integrated circuit |
US20200293867A1 (en) | 2019-03-12 | 2020-09-17 | Nvidia Corp. | Efficient neural network accelerator dataflows |
JP2020537785A (ja) | 2017-10-17 | 2020-12-24 | ザイリンクス インコーポレイテッドXilinx Incorporated | ホスト通信されるマージされた重みと層単位命令のパッケージとを使用するニューラルネットワークアクセラレータによる多層ニューラルネットワーク処理 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5990904A (en) | 1995-08-04 | 1999-11-23 | Microsoft Corporation | Method and system for merging pixel fragments in a graphics rendering system |
US7301541B2 (en) * | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
US6005583A (en) | 1997-04-30 | 1999-12-21 | Hewlett-Packard Company | Precise gradient calculation system and method for a texture mapping system of a computer graphics system |
TWI520501B (zh) * | 2012-06-07 | 2016-02-01 | 威盛電子股份有限公司 | 記憶體控制器 |
US8941676B2 (en) | 2012-10-26 | 2015-01-27 | Nvidia Corporation | On-chip anti-alias resolve in a cache tiling architecture |
US9798519B2 (en) | 2014-07-02 | 2017-10-24 | Via Alliance Semiconductor Co., Ltd. | Standard format intermediate result |
US9836277B2 (en) * | 2014-10-01 | 2017-12-05 | Samsung Electronics Co., Ltd. | In-memory popcount support for real time analytics |
EP3035204B1 (en) * | 2014-12-19 | 2018-08-15 | Intel Corporation | Storage device and method for performing convolution operations |
US10032493B2 (en) * | 2015-01-07 | 2018-07-24 | Micron Technology, Inc. | Longest element length determination in memory |
CN104699631B (zh) * | 2015-03-26 | 2018-02-02 | 中国人民解放军国防科学技术大学 | Gpdsp中多层次协同与共享的存储装置和访存方法 |
US10474627B2 (en) | 2015-10-08 | 2019-11-12 | Via Alliance Semiconductor Co., Ltd. | Neural network unit with neural memory and array of neural processing units that collectively shift row of data received from neural memory |
US10445271B2 (en) | 2016-01-04 | 2019-10-15 | Intel Corporation | Multi-core communication acceleration using hardware queue device |
FR3048526B1 (fr) | 2016-03-07 | 2023-01-06 | Kalray | Instruction atomique de portee limitee a un niveau de cache intermediaire |
US10146738B2 (en) * | 2016-12-31 | 2018-12-04 | Intel Corporation | Hardware accelerator architecture for processing very-sparse and hyper-sparse matrix data |
US10489877B2 (en) | 2017-04-24 | 2019-11-26 | Intel Corporation | Compute optimization mechanism |
US10338919B2 (en) * | 2017-05-08 | 2019-07-02 | Nvidia Corporation | Generalized acceleration of matrix multiply accumulate operations |
US11138499B2 (en) * | 2018-09-28 | 2021-10-05 | Intel Corporation | Applications of back-end-of-line (BEOL) capacitors in compute-in-memory (CIM) circuits |
-
2020
- 2020-08-31 US US17/007,569 patent/US11182159B2/en active Active
- 2020-11-30 EP EP20828473.7A patent/EP4004826A1/en active Pending
- 2020-11-30 CN CN202311334630.8A patent/CN117421047A/zh active Pending
- 2020-11-30 KR KR1020227006343A patent/KR20220038148A/ko not_active Application Discontinuation
- 2020-11-30 JP JP2022513296A patent/JP7495480B2/ja active Active
- 2020-11-30 CN CN202080061241.0A patent/CN115136115B/zh active Active
- 2020-11-30 WO PCT/US2020/062612 patent/WO2021173201A1/en unknown
- 2020-12-07 TW TW109143078A patent/TW202132976A/zh unknown
-
2021
- 2021-11-19 US US17/530,869 patent/US11934826B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190065824A1 (en) | 2016-04-04 | 2019-02-28 | Fugro N.V. | Spatial data analysis |
US10354733B1 (en) | 2017-10-17 | 2019-07-16 | Xilinx, Inc. | Software-defined memory bandwidth reduction by hierarchical stream buffering for general matrix multiplication in a programmable IC |
US10460416B1 (en) | 2017-10-17 | 2019-10-29 | Xilinx, Inc. | Inline image preprocessing for convolution operations using a matrix multiplier on an integrated circuit |
JP2020537785A (ja) | 2017-10-17 | 2020-12-24 | ザイリンクス インコーポレイテッドXilinx Incorporated | ホスト通信されるマージされた重みと層単位命令のパッケージとを使用するニューラルネットワークアクセラレータによる多層ニューラルネットワーク処理 |
US20190179635A1 (en) | 2017-12-11 | 2019-06-13 | Futurewei Technologies, Inc. | Method and apparatus for tensor and convolution operations |
US20200293867A1 (en) | 2019-03-12 | 2020-09-17 | Nvidia Corp. | Efficient neural network accelerator dataflows |
Also Published As
Publication number | Publication date |
---|---|
CN115136115A (zh) | 2022-09-30 |
CN117421047A (zh) | 2024-01-19 |
US20220156071A1 (en) | 2022-05-19 |
US11182159B2 (en) | 2021-11-23 |
US11934826B2 (en) | 2024-03-19 |
TW202132976A (zh) | 2021-09-01 |
US20210263739A1 (en) | 2021-08-26 |
CN115136115B (zh) | 2023-11-10 |
WO2021173201A1 (en) | 2021-09-02 |
JP2023506343A (ja) | 2023-02-16 |
EP4004826A1 (en) | 2022-06-01 |
KR20220038148A (ko) | 2022-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7495480B2 (ja) | 共有スクラッチパッドメモリを用いたベクトル縮小 | |
Mittal et al. | A survey of techniques for optimizing deep learning on GPUs | |
TWI759361B (zh) | 用於稀疏神經網路加速的架構、方法、電腦可讀取媒體和裝備 | |
Mittal | A survey of accelerator architectures for 3D convolution neural networks | |
KR20190084705A (ko) | 근사 곱셈기를 구비하는 뉴럴 네트워크 처리 장치 및 이를 포함하는 시스템온 칩 | |
Lee et al. | ComPEND: Computation Pruning through Early Negative Detection for ReLU in a deep neural network accelerator | |
US20240160909A1 (en) | Shared scratchpad memory with parallel load-store | |
TWI754310B (zh) | 純函數語言神經網路加速器系統及電路 | |
JP2023508812A (ja) | ニューラルネットワーク計算を加速するためのハードウェア回路 | |
CN114118348A (zh) | 加速器、操作加速器的方法以及包括加速器的电子装置 | |
US20230289398A1 (en) | Efficient Matrix Multiply and Add with a Group of Warps | |
US10997497B2 (en) | Calculation device for and calculation method of performing convolution | |
KR20220125117A (ko) | 뉴럴 프로세서 | |
Zu | Deep learning parallel computing and evaluation for embedded system clustering architecture processor | |
US11249724B1 (en) | Processing-memory architectures performing atomic read-modify-write operations in deep learning systems | |
EP4206999A1 (en) | Artificial intelligence core, artificial intelligence core system, and loading/storing method of artificial intelligence core system | |
TWI844116B (zh) | 在機器學習硬體加速器處利用資料稀疏性 | |
US20230297643A1 (en) | Non-rectangular matrix computations and data pattern processing using tensor cores | |
Chen et al. | A Hybrid CPU-GPU Multifrontal Optimizing Method in Sparse Cholesky Factorization | |
CN118278474A (zh) | 一种基于多核处理器的三维卷积并行计算方法、装置和设备 | |
Wang et al. | Optimizing Pointwise Convolutions on Multi-core DSPs | |
TW202347145A (zh) | 在機器學習硬體加速器處利用資料稀疏性 | |
CN113780539A (zh) | 一种神经网络数据处理方法、装置、设备及存储介质 | |
Chen | Accelerating SRD Simulation on GPU. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220610 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220610 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230808 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20231107 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240105 |
|
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: 20240423 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240523 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7495480 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |