JP7474586B2 - テンソル計算データフロー加速器半導体回路 - Google Patents
テンソル計算データフロー加速器半導体回路 Download PDFInfo
- Publication number
- JP7474586B2 JP7474586B2 JP2019213487A JP2019213487A JP7474586B2 JP 7474586 B2 JP7474586 B2 JP 7474586B2 JP 2019213487 A JP2019213487 A JP 2019213487A JP 2019213487 A JP2019213487 A JP 2019213487A JP 7474586 B2 JP7474586 B2 JP 7474586B2
- Authority
- JP
- Japan
- Prior art keywords
- data flow
- accelerator
- ndp
- semiconductor circuit
- unit
- 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
- 239000004065 semiconductor Substances 0.000 title claims description 43
- 239000000872 buffer Substances 0.000 claims description 109
- 238000012545 processing Methods 0.000 claims description 86
- 239000013598 vector Substances 0.000 claims description 61
- 239000011159 matrix material Substances 0.000 claims description 50
- 230000002093 peripheral effect Effects 0.000 claims description 47
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 claims description 45
- 229910052710 silicon Inorganic materials 0.000 claims description 45
- 239000010703 silicon Substances 0.000 claims description 45
- 230000036961 partial effect Effects 0.000 claims description 39
- 238000000034 method Methods 0.000 claims description 24
- WYTGDNHDOZPMIW-RCBQFDQVSA-N alstonine Natural products C1=CC2=C3C=CC=CC3=NC2=C2N1C[C@H]1[C@H](C)OC=C(C(=O)OC)[C@H]1C2 WYTGDNHDOZPMIW-RCBQFDQVSA-N 0.000 claims description 12
- 238000009825 accumulation Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 5
- 230000017105 transposition Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 49
- 238000004364 calculation method Methods 0.000 description 16
- 239000010410 layer Substances 0.000 description 13
- 238000013135 deep learning Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 230000000644 propagated effect Effects 0.000 description 9
- 238000012549 training Methods 0.000 description 9
- 238000003860 storage Methods 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 6
- 230000004913 activation Effects 0.000 description 5
- 238000001994 activation Methods 0.000 description 5
- 238000007667 floating Methods 0.000 description 5
- 239000007787 solid Substances 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000013506 data mapping Methods 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000011229 interlayer Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000003872 feeding technique Methods 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Images
Classifications
-
- 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/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
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- 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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8046—Systolic arrays
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/008—Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
-
- 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/08—Learning methods
-
- 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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10B—ELECTRONIC MEMORY DEVICES
- H10B12/00—Dynamic random access memory [DRAM] devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Computer Hardware Design (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Robotics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Memory System (AREA)
- Complex Calculations (AREA)
- Power Engineering (AREA)
- Magnetic Resonance Imaging Apparatus (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
Description
深層ニューラルネットワークトレーニング(training)は、効率的な浮動少数点演算を要求する高い正確性(正確度)と広い動的範囲の全てを必要とする。
浮動少数点演算の大部分を含み、深層ニューラルネットワークトレーニングで最大時間を占めるテンソル計算(tensor computation)は、加速のための核心基本演算である。
テンソル計算は、ディープラーニングで幅広いアプリケーションで重要な役割を果たす。
メモリモジュールの内部又はメモリモジュールに隣接する計算能力を有効にするPIM(Process-in-memory)構造は、その大きな内部帯域幅、データ移動の減少、及び大規模なメモリ並列処理(parallelism)のため、テンソル計算を加速する潜在力が立証されている。
NDP(Near-Data-Processing)構造は、侵入(intrusive)が少なく、そして複雑なALU(Arithmetic Logic Unit)をメモリコアバンクの外部に配置する。
しかし、ALUの数は、エリアバジェット(area budget)のために厳格に制限され、そしてNDPアプローチ法は、またコンピューティング中心の構造と比較して内部帯域幅の相当な量を損失する。
これらの短所は、コンピューティング中心のアプローチ法と比較してNPD構造を浮動少数点性能で効果が低くなる。
また、最近作られた不揮発性メモリベースの加速器は、書き込み耐久性(endurance)が良くなく、書き込みレイテンシが長いので、書込み集中型のディープラーニングトレーニング作業には適していないという問題がある。
また、SRAMベースの加速器は、ディープラーニングトレーニングに必要である全てのモデルパラメーターと中間結果を格納するのに充分なオンチップメモリ容量を有しないという問題がある。
(乗算・加算)ユニットの周辺アレイは、(乗算・加算)ユニットのアレイの中で1つの(乗算・加算)ユニットからの部分出力データがデータ累算のために(乗算・加算)ユニットのアレイの中で他の(乗算・加算)ユニットに入力されるパイプライン方式のデータフローチェーンを形成するように構成される。
「NDP-DF」(Near-DRAM-processing dataflow)加速器ユニットダイは、ベースダイ上に積層される。
ベースダイは、プロセッサ又はコントローラに隣接してパッシブシリコンインターポーザ上に配置される。
「NDP-DF」加速器ユニットは、部分行列出力データを並列に処理する。
部分行列出力データは、順方向又は逆方向に伝播される。
テンソル計算データフロー加速器は、部分行列転置を実行する。
したがって、全的にFPUを追加することと比較してより小さい面積が消費され、より短いレイテンシが達成される。
以下の詳細な説明で、多様な特定な細部事項が本発明の完全な理解を可能であるようにするために提供する。
しかし、当業者はこのような特定な細部事項無しでも本発明を具現することができることが理解されなければならない。
他の例として、広く公知された方法、手続、構成要素、回路、及びネットワークは実施形態の側面を不必要に曖昧にしないために詳細に説明しない。
第1、第2、等の用語が多様な要素を説明するために本文で使用することがあるが、これらの要素はこのような用語によって限定されないことを理解するべきである。
これらの用語は単なる1つの要素を他のことと区別するためにのみ使用する。
例えば、本発明の範囲から逸脱しなく、第1スタック(stack)は第2スタックで称することができ、そして、類似に、第2スタックは第1スタックで称することができる。
本発明の説明及び添付された請求項で使用したように、脈絡で明確に相違を示さない限り、単数形態は複数の形態も含むこととみなすものとする。
本文で使用する“及び/又は”用語は1つ以上の関連した列挙された項目の任意の、そしてすべての可能な組み合せを示し、含むことがまた理解されるべきである。
“包含する”及び/又は“含む”用語は、本明細書で使用する時、明示された特徴、整数、段階、動作、要素、及び/又は構成要素の存在を明示するが、1つ以上の他の特徴、整数、段階、動作、要素、構成要素、及び/又はそれらのグループの存在又は追加を排除しないことをさらに理解されるべきである。
図面の構成要素及び特徴は、必ずしも一定の比率で示すものではない。
開示する実施形態は、浮動少数点(スカラ-ベクトル)乗算をDRAMベースのルックアップテーブル(lookup table)での同時(concurrent:並行)ルックアップ(検索)動作に変形し、すべての周辺ロジック支援をDRAMコアバンクの外部に追加する。
したがって、全的にFPU(floating point multiplication unit)を追加することと比較してより小さい面積が消費され、より短いレイテンシが達成される。
テーブル検索間ロー活性化回数を減少させるため、周辺ロジックは1つ以上のルックアップテーブルバッファを使用して検索結果をキャッシュし、そして開示されたデータマッピングは一括処理された(batched)ディープラーニングトレーニング作業で非常に高いバッファヒットレート(hit rate)を算出する。
開示されたマッピングは、また、入力テンソルがローカルDRAMバンクから来ることを保障し、したがって読み出しトラフィック(traffic)のためにバンクそのままの(raw)内部帯域幅を完全に利用する。
不足なテンソル計算を支援するために、ゼロスキップロジック(zero-skipping logic)が使用され得る。
LUTの幅は、バンク内に含まれ得、DRAMサブアレイに効果的に格納及びアクセスすることができる。
電力及び時間を全て消費するDRAMLUTロー活性化を減少させるため、LUTバッファをバンク周辺回路に追加することができ、GEMM(general matrix-multiplication)タイリング(tiling)技術が使用してLUTバッファの検索結果の再使用が増加する。
各バッファは、幾つのセグメント(segment)に分けられ、セグメントの各々は1つの独立的な値ベースの検索を提供する。
累算器(accumulator:或いは累積器)は、時分割(time-multiplexed)技術で部分和を合算するために(又は集計するために)、バンク周辺に含まれ得る。
部分和のライトバック(write-back)及び再ロード(re-load)を回避するために、シストリックデータフロー構造を使用することができ、ここで以前バンクの累算器はそれらの現在部分和を次のバンクの累算(或いは累積)のために伝送し、最後バンクはその結果を他のチャンネルに伝達する(relay)。
開示したGEMMブロックマッピング技術は、任意のサイズの入力テンソルを同一のデータフローグループ内すべてのバンクに掛けて分散させる。
入力部分テンソル及びLUTは、全てバンクに対して局部的であるので、テンソルにアクセスする広いバンクインターフェイス(例えば、256ビット)を使用することができ、1回のサイクルでLUTの全体ローにアクセスする(ロー-複製)引用(row-clone citation)を使用することができる。
メモリ内の検索(Lookup-in-memory)データフローテンソル計算が支援される。
バンク内部帯域幅を利用する外積ベースGEMMブロックマッピングは、ロー活性化を減少させ、帯域幅拡張性を増加させる。
開示する実施形態では、豊富なオンチップメモリ容量、対称的な読み出し/書き込み性能を有し、書き込み耐久性問題からフリーな3D積層DRAMベース加速器を含み得る。
浮動少数点乗算器の大部分の面積は、少数乗算器が主に占め、全体少数乗算テーブルは無視できる程度の容量オーバーヘッドに1つのDRAMバンクに格納され得る。
並列乗算は、並列検索計算に変換することができる。
1つのバンクは、各バンクの横に周辺回路を追加することによって、1つのPEに変形されることができるので、検索オーバーヘッドを緩和し、そしてPEの性能を増加させることができる。
開示したデータマッピング技術は、すべての読み出しトラフィックが各バンクに対して局部的であることを保証してデータ移動長さを短縮させ、また、バンクレベルの読み出し帯域幅を利用する。
データを再書き込みの前にデータ再使用を増加させるために、シストリックデータフロー構造がチャンネル内の多数のバンクに使用することができ、ここで部分結果は累算のために隣接するバンクに伝播(propagate)させる。
円滑なデータフローを維持し、各バンクの活用を最大化するために、効率的なデータフィーディング(feeding:供給又は提供とも称される)技術がニューラルネットワーク内部レイヤー間のデータ移動に使用することができる。
さらに一般的なニューラルネットワークトレーニングのために、1つ以上の汎用ALUが3Dスタック(stack)のベースダイ(base die)上に配置されるので、重要であるが、時間を消費しない配置正規化(batch-normalization)、活性化(activation)、及びプーリング(pooling)のような演算を実現することができる。
また、任意のサイズの行列乗算及びコンヴォリューション演算をベクトル外積演算に公式化し(定式化し)、パイプライン並列処理及びデータ並列処理プログラミングを利用してデータマッピングを決定し、計算をスケジューリング(scheduling)するスケーラブル(scalable)技術を開示する。
また、加速器のための新しい構造及びコントローラ設計を開示する。
コントローラ、計算スケジューリング、全体アプリケーションデータマッピング、及びシステム集積の様相も本明細書で開示する。
浮動少数点乗算累算エンジン100は、ルックアップテーブル105、符号ビットロジック110、加算器回路115、累算器(又は累積器)120を含む。
言い換えれば、(A-少数)155の値はルックアップテーブル105へのローアドレスとして使用され、(B-少数)155の値はルックアップテーブル105ヘのカラムアドレスとして使用される。
したがって、通常的に使用される部分積乗算器は、それ以上必要としない。
したがって、ダイ面積の相当な量が節約される。
ルックアップテーブル105からの出力135は、符号ビットロジック110によって決定される(A-符号ビット)145及び(B-符号ビット)145と結合される。
符号ビット(例えば、(A-符号ビット)145及び(B-符号ビット)145)は、乗算結果の符号を示す。
乗算演算の積140は、累算器120によって累算される。
一部の実施形態で、積140は、11ビット値である。
ルックアップテーブル105は、DRAMベースのルックアップテーブルである。
DRAMベースのルックアップテーブル105は、ベクトル外積(vector outer-product)を具現するのに使用される。
一部の実施形態で、DRAMベースのルックアップテーブル105のサイズは、16Mbである。
DRAMバンクの外部に、MAC(multiply-and-add又はmultiply-and-accumulate)ユニットを使用することと比較して、DRAMベースルックアップテーブル105は、相当の面積及びプロセッシングオーバーヘッドを節約する。
また、ベースロジックダイ上のNDPと比較して、DRAMベースのルックアップテーブル105は、より高い内部帯域幅(例えば、バンクレベルの帯域幅)、及びより高い計算性能を提供する。
したがって、浮動少数点テンソル乗算は、ルックアップテーブル105を利用するPIM(Process-in-Memory)構造で支援される。
ルックアップテーブル105は、2つの整数のすべての可能な組み合わせの乗算結果を含む。
(A-エントリ)225及び(B-エントリ)230は、ローカルDRAMバンク(例えば、符号202)に格納することができ、そして(C-エントリ)220は、他のPEの間で伝播及び累算される。
累算されたチェーン(chain)の最後のPEは、ローカルDRAMバンク(例えば、符号202)に再び格納される累算された(C-エントリ)220を惹起する。
(A-エントリ)225は、ローカルDRAMバンク202から直接的にストリーミング(streaming)され得、このようにすることによってDRAMローバッファ及び高いバンク読み出し帯域幅を利用する。
後述するように、(A-エントリ)225がローカルDRAMバンク202からストリーミングされる間に、全体のルックアップテーブル105の結果は、ルックアップテーブルバッファ235に臨時的に固定され得る。
GEMMデータフロー加速器300は、ローカルDRAMバンク202、複数のルックアップテーブルバッファ(例えば、235a及び235b)を含むルックアップテーブルバッファ区域335を含む。
GEMMデータフロー加速器300は、Bベクトルバッファ305及びAベクトルバッファ310をさらに含む。
GEMMデータフロー加速器300は、1つ以上の加算器(例えば、315a及び315b)をさらに含む。
GEMMデータフロー加速器300は、出力バッファ320をさらに含む。
図3において、丸数字1(数字“1”を○で囲んだもの、以下同様)によって表示された第1番目の段階で、BベクトルはローカルDRAMバンク202から読み出され、Bベクトルバッファ305に格納される。
丸数字2で、Bベクトルは、DRAMロー複製動作(clone operation)でルックアップテーブルバッファ235aに格納される。
丸数字3によって表示された第3番目の段階で、AベクトルはローカルDRAMバンク202から読み出され、Aベクトルバッファ310に格納される。
丸数字4で、Aベクトルは、1つ以上のルックアップテーブルバッファ(例えば、235a及び235b)にストリーミングされ、積(例えば、図1の符号140)は、DRAMバンク202のルックアップテーブル(例えば、図1の符号105)と関連したAベクトル及びBベクトル情報に基づいて決定される。
丸数字5で、加算演算が積に対して実行される(例えば、図1の符号140)。
加算演算の結果340は、出力バッファ320に格納される。
言い換えれば、積は他の積に加えられ、合わせた積は累算される。
丸数字6で、出力バッファ320は、結果340をルックアップテーブルアレイ325及び/又はデータアレイ330に伝送する。
段階(丸数字3、丸数字4、丸数字5、及び丸数字6)で、図に示した段階は、複数回、そして段階(丸数字1及び丸数字1)より複数回繰り返され得る。
これは、ルックアップテーブルバッファ区域335に提供される複数のルックアップテーブルバッファ(例えば、235a及び235b)に対する高いバッファヒットレート(buffer hit rate)が存在するためである。
したがって、ルックアップテーブルバッファ区域335で複数のルックアップテーブルバッファ(例えば、235a及び235b)を提供することによって、DRAMバンク202に格納された全体のルックアップテーブル(例えば、105)の性能は、相当に大きく増加する。
例えば、8、16、32、64、128、256個、又はさらに多いルックアップテーブルバッファを使用することができる。
集積されたスタックデータフロー加速器400は、「NDP-DF」(near-DRAM-processing dataflow)加速器ユニット410の複数のレイヤー405を含む。
「NDP-DF」加速器ユニット410は、垂直方向に順次に積層される。
「NDP-DF」加速器ユニット410は、ベースダイ415上に積層される。
ベースダイ415は、コントローラ、バッファ、プロセッシングロジック等を含み得る。
ベースダイ415は、パッシブシリコンインターポーザ420(passive silicon interposer)上に積層することができる。
プロセッサ425(例えば、xPU)は、ベースダイ415に隣接してパッシブシリコンインターポーザ420上に積層され得る。
プロセッサは、CPU(central processing unit)、GPU(graphical processing unit)、又は他の適切なプロセッサである。
TSV(Through silicon via)435は、1つ以上の「NDP-DF」加速器ユニット410を貫通して配置される。
TSV435は、「NDP-DF」加速器ユニット410とベースダイ415を相互接続する。
その代わりに、又は追加に、TSV435は、ベースダイ415とプロセッサ425を相互接続することができる。
TSV435は、パッシブシリコンインターポーザ420を経由してベースダイ415とプロセッサ425を相互接続することができる。
集積されたスタックデータフロー加速器400は、「NDP-DF」加速器ユニット410の複数のスタック405を含む。
「NDP-DF」加速器ユニット410のスタックの各々は、パッシブシリコンインターポーザ420を経由してプロセッサ425と通信するように接続される。
ホスト500は、通信リンク505を経由して集積されたスタックデータフロー加速器400と通信するように接続される。
通信リンク505は、有線リンク、無線リンク、カード、ポート等であってもよい。
別個のスタックデータフロー加速器600は、「NDP-DF」加速器ユニット410の複数のレイヤー405を含む。
4つの「NDP-DF」加速器ユニット410を図6で示すが、任意の適切な数の「NDP-DF」加速器ユニット410が順次に積層され得ることが理解されるべきである。
「NDP-DF」加速器ユニット410は、ベースダイ615上に積層される。
ベースダイ615は、コントローラ、バッファ、プロセッシングロジック等を含み得る。
ベースダイ615は、パッシブシリコンインターポーザ620上に積層され得る。
コントローラ625は、ベースダイ615に隣接してパッシブシリコンインターポーザ620上に積層される。
TSV(Through silicon via)435は、1つ以上の「NDP-DF」加速器ユニット410を貫通して配置される。
TSV435は、「NDP-DF」加速器ユニット410とベースダイ615を相互接続する。
その代わりに、又は追加に、TSV435は、ベースダイ615とコントローラ625を相互接続することができる。
TSV435は、パッシブシリコンインターポーザ620を経由してベースダイ615とコントローラ625を相互接続する。
別個のスタックデータフロー加速器600は、「NDP-DF」加速器ユニット410の複数のスタック405を含む。
「NDP-DF」加速器ユニット410のスタックの各々は、パッシブシリコンインターポーザ620を経由してコントローラ625と通信するように接続される。
ホスト700は、通信リンク705を経由して別個のスタックデータフロー加速器600と通信するように接続される。
通信リンク705は、有線リンク、無線リンク、カード、ポート等であってもよい。
計算は、矢印線730で示すように、ホスト700で別個のスタックデータフロー加速器600にオフロードされる。
別個のスタックデータフロー加速器800は、「NDP-DF」加速器ユニット410の複数のレイヤー405を含む。
「NDP-DF」加速器ユニット410は、垂直方向に順次に積層される。
各スタック405で、「NDP-DF」加速器ユニット410は、該当ベースダイ(例えば、815)上に積層される。
各ベースダイ815は、コントローラ、バッファ、プロセッシングロジック等を含み得る。
各ベースダイ815は、パッシブシリコンインターポーザ820上に積層される。
コントローラ625は、ベースダイ815の中の1つに隣接してパッシブシリコンインターポーザ820上に積層される。
TSV435は、「NDP-DF」加速器ユニット410と該当ベースダイ815を相互接続する。
その代わりに、又は追加に、TSV435は、各ベースダイ815とコントローラ825を相互接続することができる。
TSV435は、パッシブシリコンインターポーザ825を経由して各ベースダイ815とコントローラ825を相互接続する。
1つ以上のスイッチ850は、1つ以上のベースダイ815に隣接してパッシブシリコンインターポーザ820上に配置される。
一部の実施形態で、コントローラ825は、また、スイッチを含む。
別個のスタックデータフロー加速器800は、「NDP-DF」加速器ユニット410の複数のスタック405を含む。
一部の実施形態で、「NDP-DF」加速器ユニット410の12個のスタック405がある。
一部の実施形態で、コントローラ/スイッチ825から離れた4つのスイッチ850がある。
各スイッチ850は、「NDP-DF」加速器ユニット410の4つのスタック405と通信するように接続される。
一部の実施形態で、コントローラ/スイッチ825は、その両側に「NDP-DF」加速器ユニット410の6個のスタック405、そして両側に2つのスイッチ850を有するパッシブシリコンインターポーザ820の中心領域に配置される。
ホスト900は、通信リンク905を経由して別個のスタックデータフロー加速器800と通信するように接続される。
通信リンク905は、有線リンク、無線リンク、カード、ポート等であってもよい。
計算は、矢印線930で示すようにホスト900で別個のスタックデータフロー加速器800にオフロードされる。
「NDP-DF」ダイ410は、複数のチャンネル(例えば、CH0、CH1)を含む。
チャンネル(例えば、CH0、CH1)の各々は、複数のスマートバンクユニット(例えば、B0、B1、…、B15)を含む。
チャンネル(例えば、CH0、CH1)は、矢印線1005によって互いに接続される。
例えば、チャンネルCH0のスマートバンクユニットB12の出力は、チャンネルH1のスマートバンクユニットB0の入力に接続される。
各チャンネル(例えば、CH1)内の矢印線1010は、チャンネルのスマートバンクユニットの各々を通じたシストリックデータフロー方向を示す。
言い換えれば、シストリックデータフローは、スマートバンクユニットB0で始め、その次のスマートバンクユニットB3に移動(travel)し、その次の方向を変え、スマートバンクユニットB7からスマートバンクユニットB4に反対方向に移動し、その次の方向を再び変え、このような蛇行(又はS字形:serpentine)方式にスマートバンクユニットの各々を通じて移動する。
したがって、バンクデータI/O経路は、スマートバンクユニットを通じた蛇行データフローを横切っていく。
スマートバンクユニットの各々は(例えば、B0)、DRAMバンク(例えば、図3の符号202)を含み得る。
DRAMバンクの各々は(例えば、202)、全体のルックアップテーブル(例えば、図1の符号105)を含み得る。
RAMバンクの各々は(例えば、202)、複数のルックアップテーブルバッファ(例えば、235a、235b)、複数の加算器(例えば、315a、315b)、及び出力バッファ(例えば、320)と関連する。
一部の実施形態で、すべての読み出し動作は、各DRAMバンク(例えば、202)に対して局部的であり、そしてすべての書き込み動作は、次のDRAMバンクに伝播される。
ルックアップテーブルバッファ(例えば、235a、235b)、加算器(例えば、315a、315b)、及び出力バッファ(例えば、320)は、DRAMバンクの各々(例えば、202)に対して周辺ロジック、装置、回路等であり、そして隣接するバンクを接続することができる。
出力バッファからの出力は、隣接バンクに入力(或いは、フィード(feed))される。
例えば、1つのバンクの出力バッファからの出力は、隣接バンクの加算器に入力される。
並列処理は、空間的にそして一時的に達成され得る。
言い換えれば、複数の臨時のプロセッシングサイクルの中で与えられたプロセッシングサイクルのために、行列データは複数のバンクによって並列に(或いは同時に)処理され得る。
各新しいプロセッシングサイクルは、複数の異なるバンクによって並列に処理される行列データを有することができる。
したがって、本発明の一実施形態に係るGEMMデータフロー加速器の性能は増加する。
「NDP-DF」ダイ410は、複数のチャンネル(例えば、CH0、CH1)を含む。
チャンネル(例えば、CH0、CH1)の各々は、複数のスマートバンクユニット(例えば、B0、B1、…、B15)を含む。
チャンネル(例えば、CH0、CH1)は、矢印線1005によって互いに接続される。
例えば、チャンネルCH0のスマートバンクユニットB12の出力は、チャンネルCH1のスマートバンクユニットB0の入力に接続される。
各チャンネル(例えば、CH1)内の実線矢印線1010は、チャンネルのスマートバンクユニットの各々を通じたシストリックデータフロー方向を示す。
言い換えれば、シストリックデータフローは、スマートバンクユニットB0で始めて、その次のスマートバンクユニットB3に移動し、その次に方向を変え、スマートバンクユニットB7からスマートバンクユニットB4に反対方向に移動し、その次の方向を再び変え、このような蛇行方式でスマートバンクユニットの各々を通じて移動することができる。
各チャンネル(例えば、CH1)内の点線矢印線1015は、バンクデータI/O経路を示す。
したがって、バンクデータI/O経路は、スマートバンクユニットを通じた蛇行データフローを横切っていく。
DRAMバンクの各々は(例えば、202)、入力バッファ(例えば、1105)、シストリック乗算及び累算(MAC)アレイ1110、及び出力バッファ(例えば、320)と関連する。
一部の実施形態で、すべての読み出し動作は、各DRAMバンク(例えば、202)に対して局部的であり、そしてすべての書き込み動作は、次のDRAMバンクに伝播される。
入力バッファ(例えば、1105)、MACアレイ(例えば、1110)、及び出力バッファ(例えば、320)は、DRAMバンク(例えば、202)の各々に対して周辺ロジック、装置、回路等であり、そして隣接するバンクを接続する。
出力バッファからの出力は、隣接バンクに入力される。
例えば、1つのバンクの出力バッファからの出力は、隣接バンクのシストリックMACアレイに入力される。
並列処理は、空間的に、そして一時的に達成され得る。
言い換えれば、複数の臨時のプロセッシングサイクルの中で与えられたプロセッシングサイクルのために、行列データは、複数のバンクによって並列に(同時に)処理される。
各新しいプロセッシングサイクルは、複数の異なるバンクによって並列に処理される行列データを有する。
したがって、本発明の実施形態よるテンソル計算データフロー加速器の性能は、増加する。
以下では、図12及び図13を参照して説明する。
シストリックMACアレイ1110は、複数のPE(例えば、1215)を含む。
一部の実施形態で、入力バッファ1105は、ダブルバッファ1205を形成する。
各PE1215は、入力バッファ1220、MACユニット1210、加重値バッファ1225、及び部分和バッファ1230を含む。
PE1215内の垂直点線1235は、データの入力方向を示す。
PE1215内の水平の実線矢印1240は、データの部分和方向を示す。
MACユニット1210は、図13で示すように乗算器回路1305及び加算器回路1310を含む。
テンソル計算データフロー加速器1200は、1つのPEからの入力とシストリックMACアレイ1110内の次のPEヘの部分結果を利用してスカラベクトル乗算演算を実行する。
後述するように、加重値は、乗算及び累算演算を実行するための準備として、各PE(例えば、1215)のローカル書込みバッファ1225に事前に決定及び格納され得る。
シストリックMACアレイ1110は、任意の適切な数のPE1215、任意の適切な高さ1405、及び任意の適切な幅1410を有する。
技術は、バンクの複数のレイヤー(例えば、レイヤー1及びレイヤー2)を含む。
レイヤーの各々は、複数のバンク(例えば、バンク1~バンクN)を含む。
第1入力テンソルは、符号2005で提供される。
第1加重値テンソルは、符号2010で提供される。
第2入力テンソルは、符号2015で提供される。
第2加重値テンソルは、符号2020で提供される。
加重値テンソル(例えば、W1~WN)の第2タイリンググループ2030は、レイヤー1の複数のバンク(例えば、バンク1~バンクN)と関連する。
入力テンソル(例えば、T1~TM)の第3タイリンググループ2035は、レイヤー2の複数のバンク(例えば、バンク1~バンクN)と関連する。
加重値テンソル(例えば、W1~WM)の第4タイリンググループ2040は、レイヤー2の複数のバンク(例えば、バンク1~バンクN)と関連する。
データフィード2045は、レイヤー1バンクと第3タイリンググループ2035との間に提供される。
PG2105は、複数のPE(例えば、PE[1]~PE[8])を含む。
PEは互いに接続され、共有されたデータバス2110を経由してTSV2115に接続される。
PG2105は、TSV2215とTSV2120を経由してスイッチ2130に接続される。
コントローラ2125は、スイッチ2130及び/又はPG2105と通信するように接続され、スイッチ2130及び/又はPG2105を制御する。
TSV2140は、各スタックのPGを相互接続する。
例えば、ボールトは、PGの垂直のグルーピング(grouping)を含む。
ベースダイ2405は、ネットワークインターフェイス2410及びプログラマブルコア2415を含む。
ベースダイ2405は、複数のボールト周辺ロジック、装置、又は回路2420をさらに含む。
ボールト周辺の各々は(例えば、2420)、該当ボールト(例えば、図18のVault[1])と関連し、支援するバッファーリング、プロセッシング、及びスイッチングサービスを該当ボールトに提供する。
キューブ(例えば、2205)は、交差する(又は十字形)(crisscrossing)矢印によって図に示すように、互いに通信することができる。
テンソル計算データフロー加速器2600は、DRAMバンク2605、データバッファ2610、第1被乗数バッファ2615、マルチプレクサーのような選択器2620、入力FIFO(first-in-first-out)2625、第2被乗数バッファ2630、複数のMAC(例えば、2635)、及び出力FIFO2640を含む。
図21において、丸数字1によって表示された第1番目の段階で、A-ベクトルは、ローカルDRAMバンク2605から読み出され、データバッファ2610に格納される。
丸数字2で、A-ベクトルは、被乗数バッファ2630にコピー及び格納される。
丸数字3によって表示された第3番目の段階で、B-ベクトルは、ローカルDRAMバンク2605から読み出され、データバッファ2610に格納される。
丸数字4で、B-ベクトルは、被乗数バッファ2615にコピー及び格納される。
垂直点線(例えば、2650)は、マルチプレクサー2620を経由して被乗数バッファ2615から受信される行列データの入力方向を示す。
垂直実線(例えば、2655)は、部分和がMAC(例えば、2635)にわたって伝播され、累算されることに対応した部分和のフロー方向を示す。
MAC2635のアレイは、任意の適切な高さ及び幅を有することができることが理解される。
データレイアウト及びデータフロー2700は、出力行列2705を含む。
出力行列2705は、例示的な部分ベクトル2710及び部分ベクトル2715、関連する外積演算2720を図に示す。
PGの各々は、複数のPE(PE[1]、PE[2]等)を含み得る。
加重値行列2730もまた図に示す。
加重値行列2730は、複数のPG(PG[1]、PG[2]等)を含み得る。
加重値行列2730は、各々が複数のPGを含む1つ以上の計算グループ(例えば、CG[1])を含む。
PGの各々は、複数のPE(PE[1]、PE[2]等)を含み得る。
演算の出力順序2735を図に示す。
例えば、外積演算2720からの出力は、出力行列2705を通じて蛇行的に伝播する。
CGが、最終結果のタイル(例えば、ボックス2740)を生成した以後に、最終結果のタイルは、最終減少(final reduction)のためにベースダイ(例えば、図19の2405)にストリーミングされる。
すべての部分結果が同一のチャンネルで減少された以後に、後述するように、部分結果はチャンネル間で組み合わせることができる。
例えば、各PGは、複数のPE(PE[1]~PE[8])を含む。
1つのPG(例えば、PG[1])から1つのPE(例えば、PE[8])の出力は、他のPG(例えば、PG[2])の他のPE(例えば、PE[1])の入力に入力(提供)することができる。
したがって、行列データは、処理及び累算される。
各キューブ(例えば、CUBE[1]、CUBE[2])は、複数の計算グループ(例えば、CG[1]、CG[2]等)を含む。
丸数字2で、行列データは、1つのボールト(例えば、Vault[1])が他のボールト(例えば、Vault[2])に統合され、減少する。
丸数字3で、行列データは、キューブ交差(cross-cube)累算動作でCUBE[2]からのボールト(例えば、Vault[4])に統合され、減少する。
これは「O」(log2(numberCG))減少ラウンド(round)の最大レイテンシを有し、プロセスは、最終結果が漸進的に生成されるにしたがって出力タイルの最終結果と共に完全にパイプライン化されるので、性能オーバーヘッドは最小であり、実質的に無視することができる。
逆方向伝播データレイアウト及びデータフロー3000は、複数の入力データDRAMバンク(例えば、入力データバンク[1]、入力データバンク[2]等)を含む。
逆方向伝播データレイアウト及びデータフロー3000は、複数のPG(例えば、PG[1]及びPG[2])をさらに含み、各PGは、複数のPE(例えば、PE[1]、PE[2]等)を含む。
点線矢印線3005は、部分結果累算を示し、そして実線矢印線3010は、入力データブロードキャスティング(broadcasting)を示す。
言い換えれば、入力行列データは、入力データバンク(例えば、入力データバンク[1]、入力データバンク[2]等)から実線矢印線3010を経由して受信され、PE(例えば、PE[1]、PE[2]等)に提供される。
PEは、入力行列データを用いることができるので、乗算及び加算演算を実行することができ、その次の部分結果は、点線矢印線3005に沿って累算される。
言い換えれば、複数の臨時のプロセッシングサイクルの中で与えられたプロセッシングサイクルのために、行列データは複数のバンクによって並列に(同時に)処理される。
各新しいプロセッシングサイクルは、複数の異なるバンクによって並列に処理される行列データを有する。
したがって、本発明の実施形態によるテンソル計算データフロー加速器の性能は、増加する。
したがって、計算ロジックは、各DRAMバンクの周辺に追加することができ、普通パッシブ構成要素でスマートプロセッシングエンジンに転換する。
主計算資源(例えば、MACアレイ)は、DRAMバンクに対して周辺サイドロジック(peripheral side logic)としてDRAMダイ上に配置される。
PEを用いるシストリックMACアレイは、処理及び累算される行列データを引き起こす。
転置(transpose)エンジンは、逆方向経路に用いることができる。
計算ロジック(例えば、MACアレイ)は、DRAMバンクに隣接するので、メモリは分散され、そして逆方向に適切なメモリレイアウト及び部分転置レイアウトが可能になる。
3D積層DRAM技術は、並列処理を向上させるのに使用される。
したがって、MACアレイ及び関連した構成要素は、例えばGPU計算区域から分離され、DRAMバンク横に集積された計算ロジックを有するPIM3D積層構造内に埋め込まれる(embedded)。
行列乗算及び他のプロセッシングは、DRAMバンクに隣接した外部で実行されるため、すべての読み出しがローカルDRAMバンクからであるバンクレベルの内部高帯域幅を使用するようになる。
本発明の一実施形態は、浮動少数点演算を支援し、そして例えば、人工ニューラルネットワーク及び関連したトレーニングに特別に有用である。
累算次元(例えば、GEMM[M、K、N]でK次元)に対するタイリングを伴う技術であり、同一のバンクに対するライトバックを必要としなく、読み出し-書き込み衝突が発生しない。
すべての書き込み動作は、データフローパイプラインで次のレベルに伝播される。
すべての以前レイヤーの出力は、次のレイヤーの入力バンクであり、これは全体行列データ移動を減少させる。
本発明の一実施形態は、逆伝播プロセスを可能にする行列転置のためのデータレイアウト及びハードウェア支援を含む。
ハードウェア効率(性)は、浮動少数点乗算ユニットの個数を最小化することによって向上する。
本発明の一実施形態によるPIM構造は、部分結果がシストリック方式にPE間で伝播される外積プロセッシングエンジンのための分割方法を使用する。
DRAMベースルックアップテーブルは、浮動少数点ユニットの面積オーバーヘッドを減少させるのに使用される。
階層的構造は、ルックアップテーブルベースの浮動少数点ユニットのレイテンシを減少させるのに使用される。
外積計算技術は、PE当たりに使用される。
したがって、浮動少数点テンソル乗算がPIM構造で提供される。
DRAMベースルックアップテーブルは、ベクトル外積を具現するのに使用される。
シストリックアレイパイプライン方式の構造は、バンク間接続に使用される。
周辺ロジックは、DRAMバンクの外部に隣接して配置されるので、DRAMコアロジックを変更する必要がなく、このようにすることによって本発明の一実施形態は、非常に実用的に具現することができる。
ベースロジックダイ上のNDP技術と比較して、本発明の一実施形態は、より高い(TSVレベルよりはバンクレベルの)内部帯域幅及びより高い計算性能を提供する。
複数のルックアップテーブルバッファは、長い行活性化レイテンシ及びエネルギー消費を減少させるのに使用される。
前述した方法の多様な動作(演算)は、多様な動作(演算)を実行することができる多様なハードウェア及び/又はソフトウェア構成要素)、回路、及び/又はモジュールのような任意の適切な手段によって実行される。
テンソル計算データフロー加速器半導体回路は、メモリバンク、及びメモリバンクに隣接するように配置される(乗算・加算)ユニットの周辺アレイを含む。
一部の実施形態で、(乗算・加算)ユニットの周辺アレイは、データ累算のために(乗算・加算)ユニットのアレイの中の1つの(乗算・加算)ユニットからの部分出力データが(乗算-・加算)ユニットのアレイの中の他の(乗算・加算)ユニットに入力されるパイプライン方式のデータフローチェーンを形成するように構成される。
一部の実施形態で、プロセッシングエンジンの各々は、入力バッファ、部分和バッファ、及び加重値バッファを含む。
一部の実施形態で、プロセッシングエンジンの各々の加重値バッファは、初期化された状態で加重値行列ベクトルを格納するように構成される。
一部の実施形態で、プロセッシングエンジンの周辺アレイの中のプロセッシングエンジンの入力バッファは、ストリーミング方式にメモリバンクから入力行列ベクトルを受信するように構成される。
一部の実施形態で、プロセッシングエンジンの(乗算・加算)ユニットは、入力行列ベクトルとプロセッシングエンジンの加重値バッファに格納された加重値行列ベクトルの積を計算するように構成される。
一部の実施形態で、プロセッシングエンジンの周辺アレイは、ストリーミング方式に複数の入力行列ベクトルを受信し、部分和のデータフロー方向と垂直である方向に複数の入力行列ベクトルを伝播させるように構成される。
一部の実施形態で、メモリバンクは、DRAMメモリバンクである。
回路は、複数のチャンネルを含む「NDP-DF」(near-DRAM-processing dataflow)加速器ユニットダイをさらに含む。
一部の実施形態で、チャンネルの各々は、蛇行的に配列される複数のスマートバンクユニットを含む。
一部の実施形態で、スマートバンクユニットの各々は、DRAMバンク、入力バッファ、シストリックMACアレイ、及び出力バッファを含む。
一部の実施形態で、「NDP-DF」加速器ユニットダイは、順次に積層される複数の「NDP-DF」加速器ユニットダイの中の1つである。
一部の実施形態で、テンソル計算データフロー加速器半導体回路は、パッシブシリコンインターポーザ、パッシブシリコンインターポーザ上に配置されるプロセッサ、及びプロセッサに隣接してパッシブシリコンインターポーザ上に配置されるベースダイをさらに含む。
一部の実施形態で、テンソル計算データフロー加速器半導体回路は複数のNDP-DF加速器ユニットダイ及びベースダイを貫通して配置される1つ以上のTSV(through silicon via)をさらに含む。
一部の実施形態で、1つ以上のTSVは、複数の「NDP-DF」加速器ユニットダイとベースダイ、及びベースダイとプロセッサを相互接続するように構成される。
一部の実施形態で、複数の「NDP-DF」加速器ユニットダイとベースダイは、プロセッサから計算をオフロード(offload)するように構成される。
一部の実施形態で、複数の「NDP-DF」加速器ユニットダイは、ベースダイ上に積層される。
一部の実施形態で、テンソル計算データフロー加速器半導体回路は、複数の「NDP-DF」加速器ユニットダイとベースダイを貫通して配置される1つ以上のTSV(through silicon via)をさらに含む。
一部の実施形態で、1つ以上のTSVは、複数の「NDP-DF」加速器ユニットダイとベースダイ、及びベースダイとコントローラを相互接続するように構成される。
一部の実施形態で、複数の「NDP-DF」加速器ユニットダイとベースダイは、テンソル計算データフロー加速器半導体回路から分離されたホストから計算をオフロードするように構成される。
一部の実施形態で、複数の積層された「NDP-DF」加速器ユニットダイとベースダイは、逆方向へ部分出力データを伝播させるように構成される。
一部の実施形態で、複数の積層された「NDP-DF」加速器ユニットダイとベースダイは、部分行列転置を実行するように構成される。
GEMMデータフロー加速器半導体回路は、メモリバンク、メモリバンクに格納された周辺ルックアップテーブル、ルックアップテーブルヘのローアドレスとして使用される第1ベクトルを格納するように構成される第1ベクトルバッファを含む。
GEMMデータフロー加速器半導体回路は、ルックアップテーブルヘのカラムアドレスとして使用される第2ベクトルを格納するように構成される第2ベクトルバッファをさらに含み得る。
一部の実施形態で、第2ベクトルバッファは、第2ベクトルを1つ以上のルックアップテーブルバッファにストリーミングするように構成され、1つ以上のルックアップテーブルバッファは、ルックアップテーブルから1つ以上のルックアップテーブルエントリを格納するように構成される。
一部の実施形態で、1つ以上のルックアップテーブルバッファは、乗算演算を実行しなく、第1ベクトルと第2ベクトルの積を決定するように構成される。
一部の実施形態で、積は第1積であり、GEMM回路は、第1積と第2積を加算するように構成される1つ以上の加算器、第1積と第2積の合算結果を格納するように構成される出力バッファをさらに含む。
一部の実施形態で、1つ以上のルックアップテーブルバッファは、乗算演算を実行しなく、ルックアップテーブルヘの、各々、カラムアドレス及びローアドレスとして、第3ベクトルの値と第4ベクトルの値を利用して第2積を決定するように構成される。
一部の実施形態で、メモリバンク、周辺ルックアップテーブル、第1ベクトルバッファ、1つ以上のルックアップテーブルバッファ、及び第2ベクトルバッファは、階層的ルックアップ構造を形成してレイテンシを減少させる。
一部の実施形態で、複数のルックアップテーブルバッファは、該当複数の行列ベクトルを格納してメモリバンクに格納されたルックアップテーブルにアクセスすることなく、乗算演算を実行しないで、複数の行列ベクトルの複数の積を決定するように構成される。
一部の実施形態で、GEMMデータフロー加速器半導体回路は、スマートバンクユニットの周辺アレイをさらに含む。
一部の実施形態で、スマートバンクユニットの周辺アレイは、データ累算のためにスマートバンクユニットのアレイの中の1つのスマートバンクユニットからの部分出力データがスマートバンクユニットのアレイの中の他のスマートバンクユニットに入力されるパイプライン方式のデータフローチェーンを形成するように構成される。
一部の実施形態で、複数のスマートバンクユニットの中の第1スマートバンクユニットは、第1スマートバンクユニットに隣接する第2スマートバンクユニットに積を出力するように構成される。
一部の実施形態で、第2スマートバンクユニットは、第1スマートバンクユニットから受信した積を格納するように構成される。
一部の実施形態で、積は第1積であり、第2スマートバンクユニットは、ストリーミング方式でメモリバンクから第3ベクトルを受信するように構成される。
一部の実施形態で、第2スマートバンクユニットの1つ以上の加算器は、第1積と第2積の和を計算するように構成される。
一部の実施形態で、第2スマートバンクユニットの出力バッファは、第1積と第2積の和を格納するように構成される。
一部の実施形態で、第2スマートバンクユニットは第1積と第2積の和をスマートバンクユニットの周辺アレイの中で第3スマートバンクユニットに出力するように構成される。一部の実施形態で、第3スマートバンクユニットは第2スマートバンクユニットに隣接する。一部の実施形態で、第3スマートバンクユニットは和を格納するように構成される。
一部の実施形態で、スマートバンクユニットの周辺アレイは、蛇行的に部分和を伝播するように構成される。
一部の実施形態で、スマートバンクユニットの周辺アレイは、ストリーミング方式で複数の入力行列ベクトルを受信し、部分和のデータフロー方向と垂直になる方向に複数の入力行列ベクトルを伝播するように構成される。
一部の実施形態で、チャンネルの各々は、蛇行的に配列されるスマートバンクユニットの周辺アレイを含む。
一部の実施形態で、スマートバンクユニットの各々は、DRAMバンク、ルックアップテーブル、複数のルックアップテーブルバッファ、1つ以上の加算器、及び出力バッファを含む。
一部の実施形態で、GEMM回路は、パッシブシリコンインターポーザ、パッシブシリコンインターポーザ上に配置されるプロセッサ、及びプロセッサに隣接してパッシブシリコンインターポーザ上に配置されるベースダイをさらに含む。
一部の実施形態で、複数の「NDP-DF」加速器ユニットダイは、ベースダイ上に積層される。
一部の実施形態で、GEMM回路は、複数の「NDP-DF」加速器ユニットダイ及びベースダイを貫通して配置される1つ以上のTSV(through silicon via)をさらに含む。
一部の実施形態で、複数の「NDP-DF」加速器ユニットダイとベースダイは、プロセッサから計算をオフロードするように構成される。
一部の実施形態で、GEMMデータフロー加速器半導体回路は、パッシブシリコンインターポーザ、パッシブシリコンインターポーザ上に配置されるコントローラ、及びコントローラに隣接してパッシブシリコンインターポーザ上に配置されるベースダイをさらに含む。
一部の実施形態で、複数の「NDP-DF」加速器ユニットダイは、ベースダイ上に積層される。
一部の実施形態で、1つ以上のTSVは、複数の「NDP-DF」加速器ユニットダイとベースダイ、及びベースダイとコントローラを相互接続するように構成される。
一部の実施形態で、複数の「NDP-DF」加速器ユニットダイとベースダイは、テンソル計算データフロー加速器半導体回路から分離されたホストから計算をオフロードするように構成される。
一部の実施形態で、複数の積層された「NDP-DF」加速器ユニットダイとベースダイは、並列に部分出力データを処理するように構成される。
本発明の実施形態は、1つ以上のプロセッサによって実行可能な命令語を含む非一時的機械読み出し可能な記録媒体を含むことができ、命令語は本発明の一実施形態に係る要素を実行する命令語を含む。
ソフトウェアモジュールは、RAM(Random Access Memory)、フラッシュメモリ、ROM(Read Only Memory)、EPROM(Electrically Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、レジスター、ハードディスク、移動式ディスク(removable disk)、CD ROM、又は技術分野に公知された任意の他の形態の記録媒体に位置することができる。
普通、機械又は複合体機械は、プロセッサ、メモリ、例えばRAM、ROM、又は他の状態保持媒体、格納装置、ビデオインターフェイス、及び入力/出力インターフェイスポートが付着されたシステムバスを含む。
機械又は複合体機械は、少なくとも一部は他の機械から受信される指示、仮想現実(VR)環境との相互作用、生体フィードバック、又は他の入力信号のみならず、キーボード、マウス等のような通常的な入力装置からの入力によって制御される。
例示的な機械は、例えば自動車、鉄道列車、タクシー等のような個人用又は公共輸送のような輸送装置のみならず、個人用コンピュータ、ワークステーション、サーバー、ポータブル(portable)コンピュータ、ハンドヘルド(handheld)装置、電話、タブレット(tablets)等のようなコンピューティング装置を含む。
機械又は複合体機械は、プログラム可能な又はプログラム不可能である論理装置又はアレイ、ASIC(Application Specific Integrated Circuit)、埋め込み型コンピュータ、スマートカード等のような埋め込み型コントローラを含むことができる。
機械又は複合体機械は、ネットワークインターフェイス、モデム、又は他の通信カップリングを介して、1つ以上の遠隔機械に対する1つ以上の接続を利用できる。
当業者は、ネットワーク通信が多様な有線及び/又は無線近距離又は遠距離キャリヤー及び無線周波数(RF)、衛星、マイクロ波、IEEE(Institute of Electrical and Electronics Engineers)545.11、Bluetooth(登録商標)、光学、赤外線、ケーブル、レーザー等を含むプロトコルを活用できることを理解できる。
関連したデータは、例えば、RAM、ROM等のような揮発性及び/又は不揮発性メモリ、又は他のストレージ装置、及びハードドライブ、フロッピーディスク(登録商標)、光学ストレージ、テープ、フラッシュメモリ、メモリスティック(登録商標)、デジタルビデオディスク、生体ストレージ等を含む関連したストレージ媒体に格納することができる。
関連したデータは、物理的及び/又は論理的ネットワークを含む伝送環境を経てパケット、直列データ、並列データ、伝送信号等の形態に伝達され、圧縮された又は暗号化されたフォーマットとして利用される。
関連したデータは、分散環境で使用することができ、機械アクセスに対して地域的及び/又は遠隔に格納することができる。
105 ルックアップテーブル
110 符号ビットロジック
115 加算器回路
120 累算器(又は累積器)
145 符号ビット((A-符号ビット)、(B-符号ビット))
150 指数((A-指数)、(B-指数))
155 少数((A-少数)及び(B-少数))
202 ローカルDRAMバンク
220 (C-エントリ)
225 (A-エントリ)
230 (B-エントリ)
235、235a、235b ルックアップテーブルバッファ
300 GEMMデータフロー加速器
305 Bベクトルバッファ
310 Aベクトルバッファ
315a、315b 加算器
320 出力バッファ
325 ルックアップテーブルアレイ
330 データアレイ
335 ルックアップテーブルバッファ区域
400 集積されたスタックデータフロー加速器
405 スタック(レイヤー)
410 「NDP-DF」加速器ユニット
415 ベースダイ
420 パッシブシリコンインターポーザ
425 プロセッサ
435 TSV(Through silicon via)
500 ホスト
505 通信リンク
Claims (18)
- テンソル計算データフロー加速器半導体回路であって、
メモリバンクと、
前記メモリバンクに隣接するように配置される複数の(乗算・加算)ユニットの周辺アレイと、
前記(乗算・加算)ユニットの周辺アレイの中の(乗算・加算)ユニットを含む複数のプロセッシングエンジンの周辺アレイと、を有し、
前記複数のプロセッシングエンジンの周辺アレイの各プロセッシングエンジンは、前記複数の(乗算・加算)ユニットのアレイの中の各(乗算・加算)ユニットを含み、
前記複数のプロセッシングエンジンの周辺アレイは、データ累算のために前記複数のプロセッシングエンジンの周辺アレイの中の第1プロセッシングエンジンに含まれる(乗算・加算)ユニットからの部分出力データが前記複数のプロセッシングエンジンの周辺アレイの中の他のプロセッシングエンジンに含まれる(乗算・加算)ユニットに入力されるパイプライン方式のデータフローチェーン(dataflow chain)を形成するように構成され、
前記プロセッシングエンジンの各々は、入力バッファと、部分和バッファと、加重値バッファと、を含み、
前記メモリバンクは、DRAMメモリバンクであり、
前記テンソル計算データフロー加速器半導体回路は、複数のチャンネルを含む「NDP-DF」(near-DRAM-processing dataflow)加速器ユニットダイをさらに有し、
前記チャンネルの各々は、蛇行方式で配列される複数のスマートバンクユニットを含み、
前記スマートバンクユニットの各々は、DRAMバンク、入力バッファ、シストリックMACアレイ、及び出力バッファを含むことを特徴とするテンソル計算データフロー加速器半導体回路。 - 前記複数のプロセッシングエンジンの前記第1プロセッシングエンジンに含まれる(乗算・加算)ユニットは、第1(乗算・加算)ユニットであり、
前記複数のプロセッシングエンジンの他のプロセッシングエンジンに含まれる(乗算・加算)ユニットは、第2(乗算・加算)ユニットであり、
前記複数の(乗算・加算)ユニットのアレイは、前記メモリバンクに隣接するように配置されることを特徴とする請求項1に記載のテンソル計算データフロー加速器半導体回路。 - 前記プロセッシングエンジンの各々の前記加重値バッファは、初期化された状態で加重値行列ベクトルを格納するように構成されることを特徴とする請求項1に記載のテンソル計算データフロー加速器半導体回路。
- 前記プロセッシングエンジンの周辺アレイの中でプロセッシングエンジンの前記入力バッファは、ストリーミング方式で前記メモリバンクから複数の入力行列ベクトルを受信するように構成されることを特徴とする請求項3に記載のテンソル計算データフロー加速器半導体回路。
- 前記プロセッシングエンジンの前記(乗算・加算)ユニットは、前記入力行列ベクトルと、前記プロセッシングエンジンの前記加重値バッファに格納された前記加重値行列ベクトルとの積を計算するように構成されることを特徴とする請求項4に記載のテンソル計算データフロー加速器半導体回路。
- 前記プロセッシングエンジンが、第1プロセッシングエンジンであると、前記第1プロセッシングエンジンは、前記第1プロセッシングエンジンに隣接する第2プロセッシングエンジンに前記積を出力するように構成されることを特徴とする請求項5に記載のテンソル計算データフロー加速器半導体回路。
- 前記第2プロセッシングエンジンは、前記第2プロセッシングエンジンの前記部分和バッファに前記積を格納するように構成されることを特徴とする請求項6に記載のテンソル計算データフロー加速器半導体回路。
- 前記入力行列ベクトルが、第1入力行列ベクトルであると、前記積は、第1積であり、
前記第2プロセッシングエンジンの前記入力バッファは、前記ストリーミング方式で前記メモリバンクから第2入力行列ベクトルを受信するように構成され、
前記第2プロセッシングエンジンの前記(乗算・加算)ユニットは、前記第2入力行列ベクトルと、前記第2プロセッシングエンジンの前記加重値バッファに格納された前記加重値行列ベクトルとの第2積を計算するように構成され、
前記第2プロセッシングエンジンの前記(乗算・加算)ユニットは、前記第1積と前記第2積との和を計算するように構成されることを特徴とする請求項7に記載のテンソル計算データフロー加速器半導体回路。 - 前記第2プロセッシングエンジンは、前記第1積と前記第2積との和を前記プロセッシングエンジンの周辺アレイの中で前記第2プロセッシングエンジンに隣接する第3プロセッシングエンジンに出力するように構成され、
前記第3プロセッシングエンジンは、前記和を前記第3プロセッシングエンジンの前記部分和バッファに格納するように構成されることを特徴とする請求項8に記載のテンソル計算データフロー加速器半導体回路。 - 前記複数のプロセッシングエンジンの周辺アレイは、蛇行方式(serpentine fashion)で部分和を伝播するように構成されるシストリックアレイ(systolic array)であり、
前記プロセッシングエンジンの周辺アレイは、ストリーミング方式で複数の入力行列ベクトルを受信し、前記部分和のデータフロー方向と垂直になる方向に前記複数の入力行列ベクトルを伝播させるように構成されることを特徴とする請求項9に記載のテンソル計算データフロー加速器半導体回路。 - 前記シストリックMACアレイは、前記(乗算・加算)ユニットのアレイを含み、
前記「NDP-DF」加速器ユニットダイは、順次に積層される複数の「NDP-DF」加速器ユニットダイの中の1つであることを特徴とする請求項1に記載のテンソル計算データフロー加速器半導体回路。 - パッシブシリコンインターポーザ(passive silicon interposer)と、
前記パッシブシリコンインターポーザ上に配置されるプロセッサと、
前記プロセッサに隣接して前記パッシブシリコンインターポーザ上に配置されるベースダイと、をさらに有し、
前記複数の「NDP-DF」加速器ユニットダイは、前記ベースダイ上に積層されることを特徴とする請求項11に記載のテンソル計算データフロー加速器半導体回路。 - 前記複数の「NDP-DF」加速器ユニットダイと前記ベースダイとを貫通して配置される1つ以上のTSV(through silicon via)をさらに有し、
前記1つ以上のTSVは、前記複数の「NDP-DF」加速器ユニットダイと前記ベースダイとを相互接続し、前記ベースダイと前記プロセッサを相互接続するように構成され、
前記複数の「NDP-DF」加速器ユニットダイと前記ベースダイは、前記プロセッサから計算をオフロードするように構成されることを特徴とする請求項12に記載のテンソル計算データフロー加速器半導体回路。 - パッシブシリコンインターポーザと、
前記パッシブシリコンインターポーザ上に配置されるコントローラと、
前記コントローラに隣接して前記パッシブシリコンインターポーザ上に配置されるベースダイと、をさらに有し、
前記複数の「NDP-DF」加速器ユニットダイは、前記ベースダイ上に積層されることを特徴とする請求項11に記載のテンソル計算データフロー加速器半導体回路。 - 前記複数の「NDP-DF」加速器ユニットダイと前記ベースダイとを貫通して配置される1つ以上のTSV(through silicon via)をさらに有し、
前記1つ以上のTSVは、前記複数の「NDP-DF」加速器ユニットダイと前記ベースダイとを相互接続し、前記ベースダイと前記コントローラを相互接続するように構成され、
前記複数の「NDP-DF」加速器ユニットダイと前記ベースダイは、前記テンソル計算データフロー加速器半導体回路から分離されたホストから計算をオフロードするように構成されることを特徴とする請求項14に記載のテンソル計算データフロー加速器半導体回路。 - 前記複数の積層された「NDP-DF」加速器ユニットダイと前記ベースダイは、前記部分出力データを並列に処理するように構成されることを特徴とする請求項14に記載のテンソル計算データフロー加速器半導体回路。
- 前記複数の積層された「NDP-DF」加速器ユニットダイと前記ベースダイは、前記部分出力データを逆方向(backward direction)に伝播するように構成されることを特徴とする請求項14に記載のテンソル計算データフロー加速器半導体回路。
- 前記複数の積層された「NDP-DF」加速器ユニットダイと前記ベースダイは、部分行列転置(partial matrix transposition)を実行するように構成されることを特徴とする請求項14に記載のテンソル計算データフロー加速器半導体回路。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862777046P | 2018-12-07 | 2018-12-07 | |
US62/777,046 | 2018-12-07 | ||
US16/388,863 | 2019-04-18 | ||
US16/388,863 US20200183837A1 (en) | 2018-12-07 | 2019-04-18 | Dataflow accelerator architecture for general matrix-matrix multiplication and tensor computation in deep learning |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020091861A JP2020091861A (ja) | 2020-06-11 |
JP7474586B2 true JP7474586B2 (ja) | 2024-04-25 |
Family
ID=70971724
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019205909A Active JP7209616B2 (ja) | 2018-12-07 | 2019-11-14 | Gemmデータフロー加速器半導体回路 |
JP2019213487A Active JP7474586B2 (ja) | 2018-12-07 | 2019-11-26 | テンソル計算データフロー加速器半導体回路 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019205909A Active JP7209616B2 (ja) | 2018-12-07 | 2019-11-14 | Gemmデータフロー加速器半導体回路 |
Country Status (5)
Country | Link |
---|---|
US (3) | US20200183837A1 (ja) |
JP (2) | JP7209616B2 (ja) |
KR (2) | KR102511911B1 (ja) |
CN (2) | CN111291859B (ja) |
TW (2) | TWI789547B (ja) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200183837A1 (en) * | 2018-12-07 | 2020-06-11 | Samsung Electronics Co., Ltd. | Dataflow accelerator architecture for general matrix-matrix multiplication and tensor computation in deep learning |
US11061738B2 (en) * | 2019-02-28 | 2021-07-13 | Movidius Limited | Methods and apparatus to store and access multi dimensional data |
KR102425909B1 (ko) * | 2019-07-30 | 2022-07-29 | 한국과학기술원 | 뉴럴 네트워크 가속기 시스템 및 그것의 동작 방법 |
US11947959B2 (en) * | 2019-09-10 | 2024-04-02 | Micron Technology, Inc. | Re-using processing elements of an artificial intelligence processor |
US11841792B1 (en) | 2019-12-09 | 2023-12-12 | Amazon Technologies, Inc. | Instructions with multiple memory access modes |
US11334358B2 (en) * | 2019-12-09 | 2022-05-17 | Amazon Technologies, Inc. | Hardware accelerator having reconfigurable instruction set and reconfigurable decoder |
US11429310B2 (en) * | 2020-03-06 | 2022-08-30 | Samsung Electronics Co., Ltd. | Adjustable function-in-memory computation system |
US11461651B2 (en) * | 2020-04-09 | 2022-10-04 | Micron Technology, Inc. | System on a chip with deep learning accelerator and random access memory |
US11874897B2 (en) | 2020-04-09 | 2024-01-16 | Micron Technology, Inc. | Integrated circuit device with deep learning accelerator and random access memory |
US11355175B2 (en) | 2020-04-09 | 2022-06-07 | Micron Technology, Inc. | Deep learning accelerator and random access memory with a camera interface |
US11887647B2 (en) | 2020-04-09 | 2024-01-30 | Micron Technology, Inc. | Deep learning accelerator and random access memory with separate memory access connections |
US11687336B2 (en) * | 2020-05-08 | 2023-06-27 | Black Sesame Technologies Inc. | Extensible multi-precision data pipeline for computing non-linear and arithmetic functions in artificial neural networks |
CN115516628A (zh) * | 2020-05-28 | 2022-12-23 | 松下知识产权经营株式会社 | Ai芯片 |
CN116134416A (zh) * | 2020-06-28 | 2023-05-16 | 华为技术有限公司 | 避免张量内存布局中存储体冲突和流水线冲突的方法 |
US20220019407A1 (en) * | 2020-07-14 | 2022-01-20 | Taiwan Semiconductor Manufacturing Company, Ltd. | In-memory computation circuit and method |
US11403111B2 (en) * | 2020-07-17 | 2022-08-02 | Micron Technology, Inc. | Reconfigurable processing-in-memory logic using look-up tables |
US20220044101A1 (en) * | 2020-08-06 | 2022-02-10 | Micron Technology, Inc. | Collaborative sensor data processing by deep learning accelerators with integrated random access memory |
US11755523B2 (en) * | 2020-08-20 | 2023-09-12 | Rambus Inc. | Stacked device system |
US11960438B2 (en) | 2020-09-08 | 2024-04-16 | Rambus Inc. | Methods and circuits for streaming data to processing elements in stacked processor-plus-memory architecture |
US11355170B1 (en) | 2020-12-16 | 2022-06-07 | Micron Technology, Inc. | Reconfigurable processing-in-memory logic |
US11748062B2 (en) | 2021-01-28 | 2023-09-05 | Macronix International Co., Ltd. | Multiplication and addition operation device and control method for multiplication and addition operation thereof |
US11656909B2 (en) * | 2021-04-15 | 2023-05-23 | National Taiwan University | Tensor accelerator capable of increasing efficiency of data sharing |
US11693796B2 (en) * | 2021-05-31 | 2023-07-04 | Arm Limited | Multi-dimensional data path architecture |
WO2023046001A1 (en) * | 2021-09-22 | 2023-03-30 | Huawei Technologies Co., Ltd. | Method and apparatus for matrix computation acceleration |
KR20230061180A (ko) * | 2021-10-28 | 2023-05-08 | 주식회사 사피온코리아 | 컴퓨팅 시스템 및 이를 위한 전치 방법 |
US11630605B1 (en) * | 2022-08-10 | 2023-04-18 | Recogni Inc. | Methods and systems for processing read-modify-write requests |
CN115860079B (zh) * | 2023-01-30 | 2023-05-12 | 深圳市九天睿芯科技有限公司 | 神经网络加速装置、方法、芯片、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012064087A (ja) | 2010-09-17 | 2012-03-29 | Keio Gijuku | 生活習慣病の診断予測装置、生活習慣病の診断予測方法及びプログラム |
WO2017171769A1 (en) | 2016-03-31 | 2017-10-05 | Hewlett Packard Enterprise Development Lp | Logical operations |
JP2018521374A (ja) | 2015-05-21 | 2018-08-02 | グーグル エルエルシー | ニューラルネットワークプロセッサで使用される重みのプリフェッチ |
US20180253402A1 (en) | 2017-03-01 | 2018-09-06 | Texas Instruments Incorporated | Implementing Fundamental Computational Primitives Using A Matrix Multiplication Accelerator (MMA) |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2698675B2 (ja) * | 1989-12-11 | 1998-01-19 | 大日本印刷株式会社 | カラー画像情報の符号化及び再生方法 |
JP3182171B2 (ja) | 1991-08-29 | 2001-07-03 | 富士通株式会社 | 光モジュール |
JPH07248841A (ja) * | 1994-03-09 | 1995-09-26 | Mitsubishi Electric Corp | 非線形関数発生装置およびフォーマット変換装置 |
US9195784B2 (en) * | 1998-08-31 | 2015-11-24 | Cadence Design Systems, Inc. | Common shared memory in a verification system |
AU2002339867A1 (en) * | 2001-09-04 | 2003-03-18 | Microunity Systems Engineering, Inc. | System and method for performing multiplication |
PL1955123T3 (pl) * | 2005-11-15 | 2010-06-30 | Ericsson Telefon Ab L M | Urządzenie mnożące z tablicą wyszukiwań |
US7532785B1 (en) * | 2007-10-23 | 2009-05-12 | Hewlett-Packard Development Company, L.P. | Photonic interconnects for computer system devices |
EP2612465A4 (en) * | 2010-08-30 | 2014-03-05 | Nokia Corp | METHOD AND DEVICE FOR IMPLEMENTING A CONTEXT-BASED SEARCH |
US20140289445A1 (en) | 2013-03-22 | 2014-09-25 | Antony Savich | Hardware accelerator system and method |
US9384168B2 (en) * | 2013-06-11 | 2016-07-05 | Analog Devices Global | Vector matrix product accelerator for microprocessor integration |
JP2017098711A (ja) * | 2015-11-20 | 2017-06-01 | 富士通株式会社 | 歪補償装置および歪補償方法 |
US11501130B2 (en) | 2016-09-09 | 2022-11-15 | SK Hynix Inc. | Neural network hardware accelerator architectures and operating method thereof |
EP3560111A4 (en) * | 2016-12-21 | 2020-12-02 | Intel Capital Corporation | WIRELESS COMMUNICATION TECHNOLOGY, DEVICES, AND METHODS |
US20190392297A1 (en) * | 2016-12-30 | 2019-12-26 | Intel Corporation | Deep learning hardware |
US10186011B2 (en) | 2017-04-28 | 2019-01-22 | Intel Corporation | Programmable coarse grained and sparse matrix compute hardware with advanced scheduling |
US10643297B2 (en) * | 2017-05-05 | 2020-05-05 | Intel Corporation | Dynamic precision management for integer deep learning primitives |
US11373266B2 (en) * | 2017-05-05 | 2022-06-28 | Intel Corporation | Data parallelism and halo exchange for distributed machine learning |
US11501152B2 (en) * | 2017-05-05 | 2022-11-15 | Intel Corporation | Efficient learning and using of topologies of neural networks in machine learning |
US10628295B2 (en) * | 2017-12-26 | 2020-04-21 | Samsung Electronics Co., Ltd. | Computing mechanisms using lookup tables stored on memory |
US10761850B2 (en) * | 2017-12-28 | 2020-09-01 | Texas Instruments Incorporated | Look up table with data element promotion |
US11373088B2 (en) * | 2017-12-30 | 2022-06-28 | Intel Corporation | Machine learning accelerator mechanism |
US11494620B2 (en) * | 2018-02-08 | 2022-11-08 | Western Digital Technologies, Inc. | Systolic neural network engine capable of backpropagation |
US10346093B1 (en) * | 2018-03-16 | 2019-07-09 | Xilinx, Inc. | Memory arrangement for tensor data |
US11188814B2 (en) * | 2018-04-05 | 2021-11-30 | Arm Limited | Systolic convolutional neural network |
US10599429B2 (en) * | 2018-06-08 | 2020-03-24 | Intel Corporation | Variable format, variable sparsity matrix multiplication instruction |
US11348909B2 (en) * | 2018-09-28 | 2022-05-31 | Intel Corporation | Multi-die packages with efficient memory storage |
CN111144545B (zh) * | 2018-11-02 | 2022-02-22 | 深圳云天励飞技术股份有限公司 | 用于实现卷积运算的处理元件、装置和方法 |
US20200183837A1 (en) * | 2018-12-07 | 2020-06-11 | Samsung Electronics Co., Ltd. | Dataflow accelerator architecture for general matrix-matrix multiplication and tensor computation in deep learning |
-
2019
- 2019-04-18 US US16/388,863 patent/US20200183837A1/en active Pending
- 2019-04-18 US US16/388,860 patent/US11100193B2/en active Active
- 2019-09-09 TW TW108132452A patent/TWI789547B/zh active
- 2019-09-12 TW TW108132890A patent/TWI811450B/zh active
- 2019-10-11 KR KR1020190126467A patent/KR102511911B1/ko active IP Right Grant
- 2019-10-11 KR KR1020190126481A patent/KR20200070089A/ko active Search and Examination
- 2019-11-14 JP JP2019205909A patent/JP7209616B2/ja active Active
- 2019-11-22 CN CN201911159633.6A patent/CN111291859B/zh active Active
- 2019-11-22 CN CN201911158714.4A patent/CN111291858A/zh active Pending
- 2019-11-26 JP JP2019213487A patent/JP7474586B2/ja active Active
-
2021
- 2021-07-13 US US17/374,988 patent/US20210374210A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012064087A (ja) | 2010-09-17 | 2012-03-29 | Keio Gijuku | 生活習慣病の診断予測装置、生活習慣病の診断予測方法及びプログラム |
JP2018521374A (ja) | 2015-05-21 | 2018-08-02 | グーグル エルエルシー | ニューラルネットワークプロセッサで使用される重みのプリフェッチ |
WO2017171769A1 (en) | 2016-03-31 | 2017-10-05 | Hewlett Packard Enterprise Development Lp | Logical operations |
US20180253402A1 (en) | 2017-03-01 | 2018-09-06 | Texas Instruments Incorporated | Implementing Fundamental Computational Primitives Using A Matrix Multiplication Accelerator (MMA) |
Non-Patent Citations (1)
Title |
---|
GAO,Mingyu et al.,TETRIS: Scalable and Efficient Neural Network Acceleration with 3D Memory, ACM SIGARCH Computer Architecture News,米国,ACM,2017年04月04日,Volume 45 Issue 1,pp 751-764 |
Also Published As
Publication number | Publication date |
---|---|
JP2020091861A (ja) | 2020-06-11 |
CN111291859B (zh) | 2022-06-14 |
KR20200070089A (ko) | 2020-06-17 |
CN111291858A (zh) | 2020-06-16 |
TW202038099A (zh) | 2020-10-16 |
US20210374210A1 (en) | 2021-12-02 |
US20200184001A1 (en) | 2020-06-11 |
JP2020091853A (ja) | 2020-06-11 |
KR102511911B1 (ko) | 2023-03-20 |
US11100193B2 (en) | 2021-08-24 |
TWI811450B (zh) | 2023-08-11 |
US20200183837A1 (en) | 2020-06-11 |
CN111291859A (zh) | 2020-06-16 |
TWI789547B (zh) | 2023-01-11 |
KR20200070088A (ko) | 2020-06-17 |
TW202024960A (zh) | 2020-07-01 |
JP7209616B2 (ja) | 2023-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7474586B2 (ja) | テンソル計算データフロー加速器半導体回路 | |
Ma et al. | ALAMO: FPGA acceleration of deep learning algorithms with a modularized RTL compiler | |
CN109992743B (zh) | 矩阵乘法器 | |
CN108805266B (zh) | 一种可重构cnn高并发卷积加速器 | |
Yuan et al. | High performance CNN accelerators based on hardware and algorithm co-optimization | |
Qiao et al. | FPGA‐accelerated deep convolutional neural networks for high throughput and energy efficiency | |
Zhou et al. | Transpim: A memory-based acceleration via software-hardware co-design for transformer | |
JP2020091853A5 (ja) | ||
KR20190010642A (ko) | 심층 신경망용 가속기 | |
Choi et al. | An energy-efficient deep convolutional neural network training accelerator for in situ personalization on smart devices | |
CN108170640B (zh) | 神经网络运算装置及应用其进行运算的方法 | |
Tao et al. | Lw-gcn: A lightweight fpga-based graph convolutional network accelerator | |
Chen et al. | An efficient accelerator for multiple convolutions from the sparsity perspective | |
Wang et al. | TAICHI: A tiled architecture for in-memory computing and heterogeneous integration | |
Li et al. | Fsa: A fine-grained systolic accelerator for sparse cnns | |
Li et al. | Optimized data reuse via reordering for sparse matrix-vector multiplication on fpgas | |
JP7413549B2 (ja) | 並列ロードストアを有する共有スクラッチパッドメモリ | |
CN109615061B (zh) | 一种卷积运算方法及装置 | |
Chang et al. | A reconfigurable neural network processor with tile-grained multicore pipeline for object detection on FPGA | |
CN114118348A (zh) | 加速器、操作加速器的方法以及包括加速器的电子装置 | |
TWI684140B (zh) | 適用於人工神經元的處理裝置及其方法 | |
Park et al. | TMA: Tera‐MACs/W neural hardware inference accelerator with a multiplier‐less massive parallel processor | |
Chen et al. | Exploring the programmability for deep learning processors: from architecture to tensorization | |
Choi et al. | A Power-Efficient Hybrid Architecture Design for Image Recognition Using CNNs | |
US20230195836A1 (en) | One-dimensional computational unit for an integrated circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221110 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230823 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231003 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240104 |
|
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: 20240409 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240415 |