JP7209616B2 - Gemmデータフロー加速器半導体回路 - Google Patents

Gemmデータフロー加速器半導体回路 Download PDF

Info

Publication number
JP7209616B2
JP7209616B2 JP2019205909A JP2019205909A JP7209616B2 JP 7209616 B2 JP7209616 B2 JP 7209616B2 JP 2019205909 A JP2019205909 A JP 2019205909A JP 2019205909 A JP2019205909 A JP 2019205909A JP 7209616 B2 JP7209616 B2 JP 7209616B2
Authority
JP
Japan
Prior art keywords
lookup table
accelerator
gemm
unit
bank
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019205909A
Other languages
English (en)
Other versions
JP2020091853A5 (ja
JP2020091853A (ja
Inventor
ペン 谷,
クリシュナ マラディ,
宏 忠 鄭,
迪 民 牛,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2020091853A publication Critical patent/JP2020091853A/ja
Publication of JP2020091853A5 publication Critical patent/JP2020091853A5/ja
Application granted granted Critical
Publication of JP7209616B2 publication Critical patent/JP7209616B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System 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/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8046Systolic arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B12/00Dynamic random access memory [DRAM] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

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)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)

Description

本発明はディープラーニングに係り、より詳しくは、ディープラーニング(deep learning)で一般的な行列-行列乗算及びテンソル計算のためのデータフロー加速器構造(dataflow accelerator architecture)に関する。
深層ニューラルネットワーク(Deep neural networks;DNN)は人工知能を実現するための有望なアプローチと見なされており、そして多数のアプリケーションでその効果が立証されている。深層ニューラルネットワークトレーニング(training;訓練)は効率的な浮動少数点演算を要求する高い正確性(正確度)と広い動的範囲の全てを必要とする。浮動少数点演算の大部分を含み、深層ニューラルネットワークトレーニングで最大時間を占めるテンソル計算(tensor computation)は加速のための核心基本演算である。計算性能はメモリ帯域幅及びレイテンシ(latency)よりはるかに速くスケーリングされ、そしてオフチップデータ移動は浮動少数点演算より2桁大きいエネルギーを消費するので、テンソル計算のためのコンピューティング中心の加速器は‘‘メモリ壁(memory wall)’’問題を抱えている。
テンソル計算(tensor computation)はディープラーニングで幅広いアプリケーションで重要な役割を果たす。メモリモジュールの内部又はメモリモジュールに隣接する計算能力を有効にするPIM(Process-in-memory)構造はその大きな内部帯域幅、データ移動の減少、及び大規模なメモリ並列処理(parallelism)のため、テンソル計算を加速する潜在力が立証している。しかし、従来のPIM接近法は減少された正確性を許容するが、複雑な浮動少数点トレーニング作業(task)ができないディープラーニング推論アプリケーションを主に探求する。NDP(Near-Data-Processing)構造は侵入(intrusive)が少なく、そして複雑なALU(Arithmetic Logic Unit)をメモリコアバンクの外部に配置する。しかし、ALUの数はエリアバジェット(area budget)のために厳格に制限され、そしてNDP接近法は、またコンピューティング中心の構造と比較して内部帯域幅の相当な量を損失する。これらの短所はコンピューティング中心の接近法と比較してNPD構造を浮動少数点性能で効果が低くなる。
さらに、テンソルプロセシングの計算上の要求を満足するために単純にFPU(floating points unit)を追加することに相当し、そして大きな許容できないDRAMダイ(die)内の面積オーバーヘッドを引き起こす。また、最近に作られた不揮発性メモリに基づいた加速器は良くない書込み耐久性(endurance)及び長い書込みレイテンシを経るので、書込み集中的なディープラーニングトレーニング作業に適合でない。また、SRAM(static random-access memory)基盤加速器はディープラーニングトレーニングに必要である全てのモデルパラメーターと中間結果を格納するのに充分なオンチップメモリ容量を有さない。
米国特許公開第2018/0075339号明細書 米国特許公開第2018/0315158号明細書
上述した技術的課題を解決するための本発明の目的はGEMMデータフロー加速器半導体回路を提供することにある。
本発明に開示する本発明はスマート3D積層DRAM構造を含むGEMM(general matrix-matrix multiplication)データフロー加速器半導体回路を含む。GEMMデータフロー加速器回路はメモリバンク、メモリバンクに格納された周辺ルックアップテーブル、及びルックアップテーブルヘのローアドレスとして使用される第1ベクトルを格納する第1ベクトルバッファを含む。GEMMデータフロー加速器回路はメモリバンクの全体ルックアップテーブルからキャッシュされたコピーとしてルックアップテーブルエントリを受信し、格納するルックアップテーブルバッファを含む。GEMMデータフロー加速器回路はルックアップテーブルヘのカラムアドレスとして使用される第2ベクトルを格納する第2ベクトルバッファを含む。GEMMデータフロー加速器半導体回路は第1積と第2積を加算する加算器、そして合算の結果を格納する出力バッファをさらに含む。ルックアップテーブルバッファは乗算演算を遂行しなく、第1ベクトルと第2ベクトルの外積を決定する。開示された実施形態は階層的ルックアップ構造を含んでレイテンシを減少させる。累算結果はシストリック方式(systolic manner)に伝播される。
本発明はディープラーニングでGEMM及びテンソル計算のためのデータフロー(dataflow)加速器構造に係る。開示する実施形態は浮動少数点スカラ-ベクトル乗算をDRAM基盤ルックアップテーブルでの同時ルックアップ(検索)動作に変形し、そしてすべての周辺ロジック支援をDRAMコアバンクの外部に追加する。したがって、全体にFPUを追加することと比較してより小さい面積が消費され、より短いレイテンシが達成される。
本発明の原理の前述した、そして追加の特徴と長所は添付した図面を参照した次の詳細な説明から容易に明白になる。
本発明の一実施形態に係るルックアップテーブルを利用するスカラ乗算-累算演算の例示的なブロック図と順序図である。 本発明の一実施形態に係る計算のために全体ルックアップテーブルと関連された入力行列を含むローカルDRAMバンクを図示する例示的なブロック図である。 本発明の一実施形態に係るGEMMデータフロー加速器の例示的なブロック図である。 本発明の一実施形態に係る集積されたスタックデータフロー加速器の側面図を図示する例示的なブロック図である。 本発明の一実施形態に係る集積されたスタックデータフロー加速器を図示する例示的なブロック図である。 本発明の一実施形態に係る別個のスタックデータフロー加速器の側面図を図示する例示的なブロック図である。 本発明の一実施形態に係る別個のスタックデータフロー加速器を図示する例示的なブロック図である。 本発明の一実施形態に係る別個のスタックデータフロー加速器の側面図を図示する例示的なブロック図である。 本発明の一実施形態に係る別個のスタックデータフロー加速器を図示する例示的なブロック図である。 浮動少数点乗算-累算エンジン及び/又はGEMMデータフロー加速器と関連して使用されることができる単一NDP-DFダイのコンテンツを含む例示的なブロック図である。 本発明の一実施形態に係るテンソル計算データフロー加速器と関連して使用されることができる単一NDP-DFダイのコンテンツを含む例示的なブロック図である。 本発明の一実施形態に係るテンソル計算データフロー加速器の例示的なブロック図である。 MACユニットの例示的なブロック図である。 シストリックMACアレイの高さとシストリックアレイのアレイ幅を図示する例示的なブロック図である。 レイヤー間データフィーディング及びタイリング技術の例示的なブロック図である。 本発明の一実施形態に係るテンソル計算データフロー加速器のPGのマイクロ構造の例示的なブロック図である。 本発明の一実施形態に係る多数のPGが多数のスタックで順に積層されてPGのキューブを形成するテンソル計算データフロー加速器のPGのキューブの例示的な側面図である。 本発明の一実施形態に係るPGの多数のボールトを含むテンソル計算データフロー加速器のPGのキューブの例示的な図である。 本発明の一実施形態に係るテンソル計算データフロー加速器のベースダイの例示的な図である。 本発明の一実施形態に係るパッシブシリコンインターポーザ、及びその上に配置される多数のキューブを含むテンソル計算データフロー加速器の例示的なブロック図である。 本発明の一実施形態に係るテンソル計算データフロー加速器の例示的なブロック図である。 本発明の一実施形態に係る順方向伝播データレイアウト及びデータフローの例示的なブロック図である。 本発明の一実施形態に係る互いに連結された多数のプロセシンググループを含む計算グループの例示的なブロック図である。 本発明の一実施形態に係る減少動作がどのように遂行されるかを示すテンソル計算データフロー加速器の多数のキューブの例示的なブロック図である。 本発明の一実施形態に係る逆方向伝播データレイアウト及びデータフローの例示的なブロック図である。 本発明の一実施形態に係る逆方向伝播データレイアウト及びデータフローの例示的なブロック図である。 本発明の一実施形態に係る逆方向伝播データレイアウト及びデータフローの例示的なブロック図である。
本発明の実施形態を詳細に参照し、これらの例示は添付した図面に図示される。次の詳細な説明で、多様な特定な細部事項が本発明の完全な理解を可能であるようにするために提供される。しかし、当業者はこのような特定な細部事項無しでも本発明を具現することができることが理解されなければならない。他の例として、広く公知の方法、手続、構成要素、回路、及びネットワークは実施形態を不必要に曖昧にしないために詳細に説明しない。
第1、第2、等の用語が多様な要素を説明するために本明細書で使用するが、これらの要素はこのような用語によって限定されないことが理解されるべきである。これらの用語は単なる1つの要素を他の要素と区別するためにのみ使用する。例えば、本発明の範囲から逸脱せず、第1スタック(stack)は第2スタックと称されることができ、同様に、第2スタックは第1スタックと称されることができる。
本発明の説明で使用する用語は単なる特定の実施形態を説明するための目的であり、本発明を制限しようとする意図ではない。本発明の説明及び添付した請求項で使用するように、脈絡で明確に異なって示さない限り、単数形態は複数の形態も含むと看做される。本明細書で使用する‘‘及び/又は’’との用語は1つ以上の関連された列挙された項目の任意の、そしてすべての可能な組合せを含むことがまた理解されるべきである。‘‘包含する’’及び/又は‘‘含む’’との用語は、本明細書で使用する時、明示した特徴、整数、段階、動作、要素、及び/又は構成要素の存在を明示するが、1つ以上の他の特徴、整数、段階、動作、要素、構成要素、及び/又はそれらのグループの存在又は追加を排除しないことがさらに理解されるべきである。図面の構成要素及び特徴は必ず一定の比率により図示されることではない。
本発明はディープラーニングでGEMM(general matrix-matrix multiplication)及びテンソル計算(tensor computation)のためのデータフロー(dataflow)加速器構造に係る。本明細書で開示する実施形態は浮動少数点スカラ-ベクトル乗算をDRAM(dynamic random access memory)基盤ルックアップテーブル(lookup table)での同時(並行;concurrent)ルックアップ(検索)動作に変形し、そしてすべての周辺ロジック支援をDRAMコアバンクの外部に追加する。したがって、全体にFPU(floating point multiplication unit)を追加するのと比較してより小さい面積が消費され、より短いレイテンシが達成される。本明細書で開示する実施形態はメモリ感知回路の相当な修正を要求する現位置の(in-situ)アナログPIMユニットよりさらに実用的である。テーブル検索間ロー活性化回数を減少させるため、周辺ロジックは1つ以上のルックアップテーブルバッファを使用して検索結果をキャッシュし、そして開示されたデータマッピングは一括処理された(batched)ディープラーニングトレーニング作業で非常に高いバッファヒートレート(hit rate)を算出する。開示されたマッピングは、また入力テンソルがローカルDRAMバンクから来ることをまた保障し、したがって読出しトラフィック(traffic)のためにバンクそのままの(raw)内部帯域幅を完全に利用する。拡張性及び書込みトラフィックを向上させるために、シストリック(systolic)アレイデータフロー構造が開示され、これは多数のバンク及びチャンネルに掛けてテンソル計算を調整して、隣接バンク又はチャンネルは生成者-消費者(或いはプロデューサー-コンシューマー(producer-consumer))パイプライン方式に作動し、そしてデータは最終ステージのみでバンクに書き込まれる(記入される)。不足なテンソル計算を支援するために、ゼロスキップロジック(zero-skipping logic)が使用されることができる。
本明細書で開示する実施形態はメモリLUT(ルックアップテーブル)を利用する乗算器を具現し、ここで乗数(multiplier)はローアドレスとして使用されることができ、そして被乗数(multiplicand)はカラムアドレスとして使用されることができる。LUTの幅はバンク内に含まれることができ、そしてDRAMサブアレイに効果的に格納及び接近されることができる。電力及び時間を全て消耗するDRAM LUTロー活性化を減少させるため、LUTバッファがバンク周辺回路に追加されることができ、そしてGEMM(general matrix-multiplication)タイリング(tiling)技術が使用されてLUTバッファの検索結果の再使用が増加することができる。処理量を向上させるために、検索基盤テンソル外積プロセシングエンジン(processing engine;PE)が使用されることができる。各バッファは幾つかのセグメント(segment)に分けられ、セグメントの各々は1つの独立的な値基盤の検索を提供することができる。累算器(或いは累積器;accumulator)は時分割(time-multiplexed)技術で部分和を合算するために(又は集計するために)またバンク周辺に含まれることができる。部分和のライトバック(write-back)及び再びロード(re-load)を回避するために、シストリックデータフロー構造が使用されることができ、ここで以前バンクの累算器はそれらの現在部分和を次のバンクの累算(或いは累積)のために伝送することができ、そして最後バンクはその結果を他のチャンネルに伝達することができる(relay)。3D積層(stacking)でのシリコン貫通電極(Through-silicon-via;TSV)はチャンネル間の高いデータ伝送帯域幅を提供するのに使用されることができる。開示するGEMMブロックマッピング技術は任意のサイズの入力テンソルを同一のデータフローグループ内すべてのバンクに掛けて分散させることができる。入力部分テンソル及びLUTは全てバンクに対して局部的であるので、テンソルを接近する広いバンクインターフェイス(例えば、256ビット)に使用されることができ、そして1回のサイクルでLUTの全体ローを接近するロー-複製引用(row-clone citation)が使用されることができる。
したがって、DRAM基盤ルックアップテーブルは隣接メモリデータフロー構造と共に使用されることができるので、ディープラーニングで浮動少数点テンソル計算を加速することができ、このようにすることによってコンピューティング中心の接近法に比べて帯域幅拡張性長所を増加させる。メモリ内の検索(Lookup-in-memory)データフローテンソル計算が支援される。バンク内部帯域幅を利用する外積基盤GEMMブロックマッピングはロー活性化を減少させ、帯域幅拡張性を増加させる。
本明細書で開示する実施形態は豊富なオンチップメモリ容量、対称的な読出し/書込み性能を有し、そして書込み耐久性問題から自由な3D積層DRAM基盤加速器を含むことができる。3D積層はメモリ及び計算の密度を増加させることができ、そしてダイ間通信の高帯域幅を提供することができる。浮動少数点乗算器の大部分の面積は少数乗算器が主に占め、全体少数乗算テーブルは無視できる程度の容量オーバーヘッドに1つのDRAMバンクに格納されることができる。並列乗算は並列検索計算に変換されることができる。1つのバンクは各バンクの横に周辺回路を追加することによって、1つのPEに変形されることができるので、検索オーバーヘッドを緩和し、そしてPEの性能を増加させることができる。開示するデータマッピング技術はすべての読出しトラフィックが各バンクに対して局部的であることを保証してデータ移動長さを短縮させ、そしてまたバンクレベルの読出し帯域幅を利用する。バンクレベルの回路及びマイクロ構造細部事項を本明細書で開示する。データを再書込みの前にデータ再使用を増加させるために、シストリックデータフロー構造がチャンネル内の多数のバンクに使用されることができ、ここで部分結果は累算のために隣接するバンクに伝播(propagate)される。円滑なデータフローを維持し、各バンクの活用を最大化するために、効率的なデータフィーディング(feeding;供給又は提供とも称されることができる)技術がニューラルネットワーク内部レイヤー間のデータ移動に使用されることができる。さらに一般的なニューラルネットワークトレーニングのために、1つ以上の汎用ALUが3Dスタック(stack)のベースダイ(base die)上に配置されるので、重要であるが、時間を消費しない配置正規化(batch-normalization)、活性化(activation)、及びプーリング(pooling)のような演算を実現することができる。ダイ及びスタックレベルの構造も本明細書で開示する。また、任意のサイズの行列乗算及びコンヴォリューション演算をベクトル外積演算に公式化し(定式化し)、パイプライン並列処理及びデータ並列処理プログラミングを利用してデータマッピングを決定し、そして計算をスケジューリング(scheduling)するスケーラブル(scalable)技術を開示する。また、加速器のための新しい構造及びコントローラ設計を開示する。コントローラ、計算スケジューリング、全体アプリケーションデータマッピング、及びシステム集積様相をまた本明細書で開示する。
図1は本発明の一実施形態に係るルックアップテーブルを利用するスカラ浮動少数点乗算-累算エンジン(scalar floating point multiply-and-accumulate engine)100の例示的なブロック図と順序図である。浮動少数点乗算-累算エンジン100はルックアップテーブル105、符号ビットロジック110、加算器回路115、累算器(又は累積器)120を含むことができる。ルックアップテーブル105は125でA-少数155ローアドレスと130でB-少数155カラムアドレスを受信することができる。言い換えれば、A-少数155の値はルックアップテーブル105へのローアドレスとして使用され、そしてB-少数155の値はルックアップテーブル105ヘのカラムアドレスとして使用される。したがって、通常的に使用される部分積乗算器はそれ以上必要としない。したがって、ダイ面積の相当な量が節約される。ルックアップテーブル105からの出力135は符号ビットロジック110によって決定されるA-符号ビット145及びB-符号ビット145と結合される。符号ビット(例えば、A-符号ビット145及びB-符号ビット145)は乗算結果の符号を示す。加算器回路115はA-少数及びB-少数と関連された指数(例えば、A-指数150及びB-指数150)を合算することができる。乗算演算の積140は累算器120によって累算されることができる。一部の実施形態で、積140は11ビット値である。ルックアップテーブル105はDRAM基盤ルックアップテーブルである。DRAM基盤ルックアップテーブル105はベクトル外積(vector outer-product)を具現するのに使用されることができる。一部の実施形態で、DRAM基盤ルックアップテーブル105のサイズは16Mbである。
周辺ロジックはDRAMバンクの外部に含むことができるので、DRAMコアは変更される必要がない。DRAMバンクの外部にMAC(multiply-and-add又はmultiply-and-accumulate)ユニットを使用するのと比較して、DRAM基盤ルックアップテーブル105は相当な面積及びプロセシングオーバーヘッドを節約する。また、ベースロジックダイ上のNDPと比較して、DRAM基盤ルックアップテーブル105はより高い内部帯域幅(例えば、バンクレベルの帯域幅)及びより高い計算性能を提供する。したがって、浮動少数点テンソル乗算はルックアップテーブル105を利用するPIM(Process-in-Memory)構造で支援される。
図2は本発明の一実施形態に係る計算のために全体ルックアップテーブル105と関連された入力行列を含むローカルDRAMバンク202を図示する例示的なブロック図200である。ルックアップテーブル105は2つの整数のすべての可能な組合せの乗算結果を含むことができる。2つの整数は浮動少数点数の少数部分の長さと同一なビット長さを有する。A-エントリ225及びB-エントリ230はローカルDRAMバンク(例えば、202)に格納されることができ、そしてC-エントリ220は他のPEの間で伝播及び累算されることができる。累算されたチェーン(chain)の最後のPEはローカルDRAMバンク(例えば、202)に再び格納される累算されたC-エントリ220を惹起することができる。A-エントリ225はローカルDRAMバンク202から直接的にストリーミング(streaming)されることができ、このようにすることによってDRAMローバッファ及び高いバンク読出し帯域幅を利用する。B-エントリ230は1つ以上の加重値を含むことができ、そしてローカルDRAMバンク202から全体ルックアップテーブル105に接近するためのローアドレスとして使用されることができる。後述するように、A-エントリ225がローカルDRAMバンク202からストリーミングされる間に、全体ルックアップテーブル105の結果はルックアップテーブルバッファ235に臨時的に固定されることができる。
図3は本発明の一実施形態に係るGEMMデータフロー加速器300の例示的なブロック図である。GEMMデータフロー加速器300はローカルDRAMバンク202、多数のルックアップテーブルバッファ(例えば、235a及び235b)を含むルックアップテーブルバッファ区域335を含むことができる。GEMMデータフロー加速器300はB-ベクトルバッファ305及びA-ベクトルバッファ310をさらに含むことができる。GEMMデータフロー加速器300は1つ以上の加算器(例えば、315a及び315b)をさらに含むことができる。GEMMデータフロー加速器300は出力バッファ320をさらに含むことができる。
GEMMデータフロー加速器300は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-ベクトル情報に基づいて決定されることができる。言い換えれば、ルックアップテーブルバッファ235a及び235bは乗算動作を遂行せず、積を決定することができる。(5)で、加算演算が積に対して遂行されることができる(例えば、図1の140)。加算演算の結果340は出力バッファ320に格納されることができる。言い換えれば、積は他の積に加えられ、合わせた積は累算される。(6)で、出力バッファ320は結果340をルックアップテーブルアレイ325及び/又はデータアレイ330に伝送することができる。
段階((1)、(2)、及び(3))はバンクレベルの高帯域幅を活用することができる。段階((3)、(4)、(5)、及び(6))で図示した段階は複数回、そして段階((1)及び(2))より多数回繰り返されることができる。これはルックアップテーブルバッファ区域335に提供される多数のルックアップテーブルバッファ(例えば、235a及び235b)に対する高いバッファヒートレート(buffer hit rate)が存在するためである。したがって、ルックアップテーブルバッファ区域335で多くのルックアップテーブルバッファ(例えば、235a及び235b)を提供することによって、ローカルDRAMバンク202に格納された全体ルックアップテーブル(例えば、105)の性能は相当に大きく増加される。例えば、8、16、32、64、128、256、又はさらに多いルックアップテーブルバッファが使用されることができる。
図4は本発明の一実施形態に係る集積されたスタックデータフロー加速器400の側面図を図示する例示的なブロック図である。集積されたスタックデータフロー加速器400はNDP-DF(near-DRAM-processing dataflow)加速器ユニット410の多数のスタック405を含むことができる。4つのNDP-DF加速器ユニット410が図4で図示したが、任意の適合な数のNDP-DF加速器ユニット410が順に(1つが他の1つの上に)積層されることが理解されるべきである。NDP-DF加速器ユニット410は垂直方向に順に積層されることができる。NDP-DF加速器ユニット410はベースダイ415上に積層されることができる。ベースダイ415はコントローラ、バッファ、プロセシングロジック等を含むことができる。ベースダイ415はパッシブシリコンインターポーザ(passive silicon interposer;420)上に積層されることができる。プロセッサ(例えば、xPU425)はベースダイ415に隣接してパッシブシリコンインターポーザ420上に積層されることができる。プロセッサはCPU(central processing unit)、GPU(graphical processing unit)、又は他の適合なプロセッサである。
計算は430の矢印で図示したようにプロセッサ425でNDP-DF加速器ユニット410のスタック405及びベースダイ415にオフロード(offload)されることができる。TSV(Through silicon via)435は1つ以上のNDP-DF加速器ユニット410を貫通して配置されることができる。TSV435はNDP-DF加速器ユニット410とベースダイ415を相互連結することができる。その代わりに又は追加に、TSV435はベースダイ415とプロセッサ425を相互連結することができる。TSV435はパッシブシリコンインターポーザ420を経由してベースダイ415とプロセッサ425を相互連結することができる。
図5は本発明の一実施形態に係る集積されたスタックデータフロー加速器400を図示する例示的なブロック図である。集積されたスタックデータフロー加速器400はNDP-DF加速器ユニット410の多数のスタック405を含むことができる。NDP-DF加速器ユニット410のスタックの各々はパッシブシリコンインターポーザ420を経由してプロセッサ425と通信するように連結されることができる。ホスト500は通信リンク505を経由して集積されたスタックデータフロー加速器400と通信するように連結されることができる。通信リンク505は有線リンク、無線リンク、カード、ポート等であってもよい。
図6は本発明の一実施形態に係る別個の(discrete)スタックデータフロー加速器600の側面図を図示する例示的なブロック図である。スタックデータフロー加速器600はNDP-DF加速器ユニット410の多数のスタック405を含むことができる。4つのNDP-DF加速器ユニット410を図6に図示したが、任意の適合な数のNDP-DF加速器ユニット410が順に積層されることが理解されるべきである。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を相互連結することができる。
図7は本発明の一実施形態に係る別個のスタックデータフロー加速器600を図示する例示的なブロック図である。スタックデータフロー加速器600はNDP-DF加速器ユニット410の多数のスタック405を含むことができる。NDP-DF加速器ユニット410のスタックの各々はパッシブシリコンインターポーザ620を経由してコントローラ625と通信するように連結されることができる。ホスト700は通信リンク705を経由して別個のスタックデータフロー加速器600と通信するように連結されることができる。通信リンク705は有線リンク、無線リンク、カード、ポート等であってもよい。計算は730の矢印で図示したようにホスト700で別個のスタックデータフロー加速器600にオフロードされることができる。
図8は本発明の一実施形態に係る別個のスタックデータフロー加速器800の側面図を図示する例示的なブロック図である。スタックデータフロー加速器800はNDP-DF(near-DRAM-processing dataflow)加速器ユニット410の多数のレイヤー405を含むことができる。スタック405当たり4つのNDP-DF加速器ユニット410を図8に図示したが、任意の適合な数のNDP-DF加速器ユニット410が順に積層されることができることが理解されるべきである。NDP-DF加速器ユニット410は垂直方向に順に積層されることができる。各スタック405でNDP-DF加速器ユニット410は該当ベースダイ(例えば、815)上に積層されることができる。各ベースダイ815はコントローラ、バッファ、プロセシングロジック等を含むことができる。各ベースダイ815はパッシブシリコンインターポーザ820上に積層されることができる。コントローラ625はベースダイ815の中で1つに隣接してパッシブシリコンインターポーザ820上に積層されることができる。
TSV(Through silicon via)435は1つ以上のNDP-DF加速器ユニット410を貫通して配置されることができる。TSV435はNDP-DF加速器ユニット410と該当ベースダイ815を相互連結することができる。その代わりに又は追加に、TSV435は各ベースダイ815とコントローラ825を相互連結することができる。TSV435はパッシブシリコンインターポーザ820を経由して各ベースダイ815とコントローラ825を相互連結することができる。1つ以上のスイッチ850は1つ以上のベースダイ815に隣接してパッシブシリコンインターポーザ820上に配置されることができる。一部の実施形態で、コントローラ825はまたスイッチを含む。
図9は本発明の一実施形態に係る別個のスタックデータフロー加速器800を図示する例示的なブロック図である。スタックデータフロー加速器800はNDP-DF加速器ユニット410の多数のスタック405を含むことができる。一部の実施形態で、NDP-DF加速器ユニット410の12個のスタック405がある。一部の実施形態で、コントローラ/スイッチ825から離れた4つのスイッチ850がある。各スイッチ850はNDP-DF加速器ユニット410の4つのスタック405と通信するように連結されることができる。NDP-DF加速器ユニット410のスタックの各々はスイッチ850及び/又はパッシブシリコンインターポーザ820を経由してコントローラ825と通信するように連結されることができる。一部の実施形態で、コントローラ/スイッチ825はその両側にNDP-DF加速器ユニット410の6個のスタック405、そして両側に2つのスイッチ850を有するパッシブシリコンインターポーザ820の中心領域に配置される。
ホスト900は通信リンク905を経由してスタックデータフロー加速器800と通信するように連結されることができる。通信リンク905は有線リンク、無線リンク、カード、ポート等であってもよい。計算は930の矢印で図示したようにホスト900でスタックデータフロー加速器800にオフロードされることができる。
図10は浮動少数点乗算-累算エンジン100及び/又はGEMMデータフロー加速器300と関連して使用されることができる単一NDP-DFダイ410のコンテンツ(contents)を含む例示的なブロック図1000である。NDP-DFダイ410は多数のチャンネル(例えば、CH0、CH1)を含むことができる。チャンネル(例えば、CH0、CH1)の各々は多数のスマートバンクユニット(例えば、B0、B1、…、B15)を含むことができる。チャンネル(例えば、CH0、CH1)は線1005によって互いに連結されることができる。例えば、チャンネルCH0のスマートバンクユニットB12の出力はチャンネルH1のスマートバンクユニットB0の入力に連結されることができる。TSV435は(例えば、図4乃至図9で図示したように)チャンネル(例えば、CH0、CH1)を他のNDP-DFダイ410の他のチャンネルに連結することができる。各チャンネル(例えば、CH1)内の実線1010はチャンネルのスマートバンクユニットの各々を通じたシストリックデータフロー方向を示す。言い換えれば、シストリックデータフローはスマートバンクユニットB0で始め、その次のスマートバンクユニットB3に移動(travel)し、その次の方向を変え、スマートバンクユニットB7からスマートバンクユニットB4に反対方向に移動し、その次の方向を再び変え、このような蛇行(又はS字形;serpentine)方式にスマートバンクユニットの各々を通じて移動することができる。各チャンネル(例えば、CH1)内の点線1015はバンクデータI/O経路を示す。したがって、バンクデータI/O経路はスマートバンクユニットを通じた蛇行データフローを横切っていく。
スマートバンクユニットの各々は(例えば、B0)DRAMバンク(例えば、図3の202)を含むことができる。DRAMバンクの各々は(例えば、202)全体ルックアップテーブル(例えば、図1の105)を含むことができる。RAMバンクの各々は(例えば、202)多数のルックアップテーブルバッファ(例えば、235a、235b)、多数の加算器(例えば、315a、315b)、及び出力バッファ(例えば、320)と関連され得る。ルックアップテーブルバッファ(例えば、235a、235b)は前述又は後述するように、全体ルックアップテーブル202の部分を臨時的に格納することができる。一部の実施形態で、すべての読出し動作は各DRAMバンク(例えば、202)に対して局部的であり、そしてすべての書込み動作は次のDRAMバンクに伝播される。ルックアップテーブルバッファ(例えば、235a、235b)、加算器(例えば、315a、315b)、及び出力バッファ(例えば、320)はDRAMバンクの各々(例えば、202)に対して周辺ロジック、装置、回路等であり、そして隣接するバンクを連結することができる。マルチプレクサー(multiplexor;図示せず)及びデマルチプレクサー(de-multiplexor;図示せず)のような他の周辺ロジックがまた含まれることができる。出力バッファからの出力は隣接バンクに入力(或いは、フィード(feed))されることができる。例えば、1つのバンクの出力バッファからの出力は隣接バンクの加算器に入力されることができる。並列処理は空間的にそして一時的に達成されることができる。言い換えれば、多数の臨時のプロセシングサイクルの中で与えられたプロセシングサイクルのために、行列データは多数のバンクによって並列に(或いは同時に)処理されることができる。各新しいプロセシングサイクルは多数の異なるバンクによって並列に処理される行列データを有することができる。したがって、本文で開示するGEMMデータフロー加速器の性能は増加されることができる。
図11は本発明の一実施形態に係るテテンソル計算データフロー加速器と関連して使用されることができる単一NDP-DFダイ410のコンテンツを含む例示的なブロック図1100である。NDP-DFダイ410は多数のチャンネル(例えば、CH0、CH1)を含むことができる。チャンネル(例えば、CH0、CH1)の各々は多数のスマートバンクユニット(例えば、B0、B1、…、B15)を含むことができる。チャンネル(例えば、CH0、CH1)は線1005によって互いに連結されることができる。例えば、チャンネルCH0のスマートバンクユニットB12の出力はチャンネルCH1のスマートバンクユニットB0の入力に連結されることができる。TSV435はチャンネル(例えば、CH0、CH1)を他のNDP-DFダイ410(例えば、図4乃至図9に図示したように)の他のチャンネルに連結することができる。各チャンネル(例えば、CH1)内の実線1010はチャンネルのスマートバンクユニットの各々を通じたシストリックデータフロー方向を示す。言い換えれば、シストリックデータフローはスマートバンクユニットB0で始めて、その次のスマートバンクユニットB3に移動し、その次の方向を変え、スマートバンクユニットB7からスマートバンクユニットB4に反対方向に移動し、その次の方向を再び変え、このような蛇行的にスマートバンクユニットの各々を通じて移動することができる。各チャンネル(例えば、CH1)内の点線1015はバンクデータI/O経路を示す。したがって、バンクデータI/O経路はスマートバンクユニットを通じた蛇行データフローを横切っていく。
スマートバンクユニット(例えば、B0)の各々はDRAMバンク(例えば、図3の202)を含むことができる。DRAMバンクの各々は(例えば、202)入力バッファ(例えば、1105)、シストリック乗算及び累算(MAC)アレイ1110、及び出力バッファ(例えば、320)と関連されることができる。一部の実施形態で、すべての読出し動作は各DRAMバンク(例えば、202)に対して局部的であり、そしてすべての書込み動作は次のDRAMバンクに伝播される。入力バッファ(例えば、1105)、MACアレイ(例えば、1110)、及び出力バッファ(例えば、320)はDRAMバンク(例えば、202)の各々に対して周辺ロジック、装置、回路等であり、そして隣接するバンクを連結することができる。マルチプレクサー(図示せず)及びデマルチプレクサー(図示せず)のような他の周辺ロジックがまた含まれることができる。出力バッファからの出力は隣接バンクに入力されることができる。例えば、1つのバンクの出力バッファからの出力は隣接バンクのシストリックMACアレイに入力されることができる。並列処理は空間的に、そして一時的に達成されることができる。言い換えれば、多数の臨時のプロセシングサイクルの中で与えられたプロセシングサイクルのために、行列データは多数のバンクによって並列に(同時に)処理されることができる。各新しいプロセシングサイクルは多数の異なるバンクによって並列に処理される行列データを有することができる。したがって、本発明で開示されたテンソル計算データフロー加速器の性能は増加されることができる。
図12は本発明の一実施形態に係るテンソル計算データフロー加速器1200の例示的なブロック図である。図13はMACユニット1210の例示的なブロック図1300である。以下では図12及び図13を参照する。
テンソル計算データフロー加速器1200はローカルDRAMバンク202、1つ以上の入力バッファ(例えば、1105)、シストリックMACアレイ1110、及び出力バッファ320を含むことができる。シストリックMACアレイ1110は多数のPE(例えば、1215)を含むことができる。一部の実施形態で、入力バッファ1105はダブルバッファ1205を形成する。各PE1215は入力バッファ1220、MACユニット1210、加重値バッファ1225、及び部分和バッファ1230を含むことができる。PE1215内の垂直点線1235はデータの入力方向を図示する。PE1215内の水平の実線1240はデータの部分和方向を示す。加重値バッファ1225は加重値をMACユニット1210に入力する。MACユニット1210は図13に図示するように乗算器回路1305及び加算器回路1310を含む。
テンソル計算データフロー加速器1200は1つのPEからの入力とシストリックMACアレイ1110内の次のPEヘの部分結果を利用してスカラベクトル乗算演算を遂行することができる。後述するように、加重値は乗算及び累算演算を遂行するための準備として、各PE(例えば、1215)の加重値バッファ1225に事前に決定及び格納されることができる。
図14はシストリックMACアレイ1110の高さ1405とシストリックMACアレイ1110の幅1410を図示する例示的なブロック図である。シストリックMACアレイ1110は任意の適合な数のPE1215、任意の適合な高さ1405、及び任意の適合なアレイ幅1410を有することができる。
図15はレイヤー間データフィーディング及びタイリング技術の例示的なブロック図2000である。本技術はバンクの多数のレイヤー(例えば、レイヤー1及びレイヤー2)を含むことができる。レイヤーの各々は多数のバンク(例えば、バンク1乃至バンクN)を含むことができる。第1入力テンソル2005が提供されることができる。第1加重値テンソル2010が提供されることができる。第2入力テンソルは2015で提供されることができる。第2加重値テンソルは2020で提供されることができる。入力テンソル(例えば、T1乃至TN)の第1タイリンググループ2025はレイヤー1の多数のバンク(例えば、バンク1乃至バンクN)と関連されることができる。加重値テンソル(例えば、W1乃至WN)の第2タイリンググループ2030はレイヤー1の多数のバンク(例えば、バンク1乃至バンクN)と関連されることができる。入力テンソル(例えば、T1乃至TM)の第3タイリンググループ2035はレイヤー2の多数のバンク(例えば、バンク1乃至バンクN)と関連されることができる。加重値テンソル(例えば、W1乃至WM)の第4タイリンググループ2040はレイヤー2の多数のバンク(例えば、バンク1乃至バンクN)と関連されることができる。データフィード(data feed;2045)はレイヤー1のバンクと第3タイリンググループ2035との間に提供されることができる。
図16は本発明の一実施形態に係るテンソル計算データフロー加速器のプロセシンググループ(processing group(PG);2105)のマイクロ構造の例示的なブロック図である。PG2105は多数のPE(例えば、PE[1]乃至PE[8])を含むことができる。PEは互いに連結されることができ、共有されたデータバス2110を経由してTSV2115に連結されることができる。PG2105はTSV2115とTSV2120を経由してスイッチ2130に連結されることができる。コントローラ2125はスイッチ2130及び/又はPG2105と通信するように連結されることができ、そしてスイッチ2130及び/又はPG2105を制御することができる。
図17は本発明の一実施形態に係る多数のPG(例えば、PG[1]乃至PG[8])が多数のスタック(例えば、2210及び2215)で順に積層されてPGのキューブ(cube)を形成するテンソル計算データフロー加速器のPGのキューブ2205の例示的な側面図である。TSV2140は各スタックのPGを相互連結することができる。
図18は本発明の一実施形態に係るPGの多数のボールト(vaults;例えば、Vault[1]乃至Vault[8])を含むテンソル計算データフロー加速器のPGのキューブ2205の例示的な図である。例えば、ボールトはPGの垂直のグルーピング(grouping)を含むことができる。
図19は本発明の一実施形態に係るテンソル計算データフロー加速器のベースダイ2405の例示的な図である。ベースダイ2405はネットワークインターフェイス2410及びプログラマブルコア2415を含むことができる。ベースダイ2405は多数のボールト周辺ロジック、装置、又はボールト2420をさらに含むことができる。各ボールト2420はバッファ2425、1つ以上のALU2430、スイッチ2130、コントローラ2125、及び/又は1つ以上のTSV2120を含むことができる。ボールトの各々は(例えば、2420)、該当ボールト(例えば、図18のVault[1])と関連されることができ、そして支援するバッファーリング、プロセシング、及びスイッチングサービスを該当ボールトに提供することができる。
図20は本発明の一実施形態に係るパッシブシリコンインターポーザ2505、及びその上に配置される多数のキューブ(例えば、2205)を含むテンソル計算データフロー加速器2500の例示的なブロック図である。キューブ(例えば、2205)は交差する(crisscrossing;又は十字形)矢印によって図示したように、互いに通信することができる。
図21は本発明の一実施形態に係るテンソル計算データフロー加速器2600の例示的なブロック図である。テンソル計算データフロー加速器2600はDRAMバンク2605、データバッファ2610、第1被乗数バッファ2615、マルチプレクサーのような選択器2620、入力FIFO(first-in-first-out;2625)、第2被乗数バッファ2630、多数のMAC(例えば、2635)、及び出力FIFO2640を含むことができる。
テンソル計算データフロー加速器2600は1つ以上の計算マッピング演算(動作)を遂行することができる。(1)によって表示された第1番目の段階で、A-ベクトルはローカルDRAMバンク2605から読み出されることができ、データバッファ2610に格納されることができる。(2)で、A-ベクトルは第2被乗数バッファ2630にコピー及び格納されることができる。(3)によって表示された第3番目の段階で、B-ベクトルはローカルDRAMバンク2605から読み出されることができ、データバッファ2610に格納されることができる。(4)で、B-ベクトルは第1被乗数バッファ2615にコピー及び格納されることができる。(5)で、スカラ-ベクトル乗算は与えられたPEから来る入力、そして次のPEに伝達される部分結果を利用し、MAC(例えば、2635)を利用して数回遂行されることができる。垂直点線(例えば、2650)はマルチプレクサーのような選択器2620を経由して第1被乗数バッファ2615から受信される行列データの入力方向を示す。水平実線(例えば、2655)は部分和がMAC(例えば、2635)にわたって伝播され、累算されることに応じる部分和のフロー方向を示す。MAC2635のアレイは任意の適合な高さ及び幅を有することができることが理解される。
図22は本発明の一実施形態に係る順方向(forward)伝播データレイアウト及びデータフロー2700の例示的なブロック図である。データレイアウト及びデータフロー2700は出力行列2705を含むことができる。出力行列2705は例示的な部分ベクトル2710及び部分ベクトル2715、そして関連された外積演算2720を図示する。多数のPG(PG[1]、PG[2]等)を含むことができる入力行列2725を図示する。PGの各々は多数のPE(PE[1]、PE[2]等)を含むことができる。また、加重値行列2730を図示する。加重値行列2730は多数のPG(PG[1]、PG[2]等)を含むことができる。加重値行列2730は各々が多数のPGを含む1つ以上の計算グループ(例えば、CG[1])を含むことができる。PGの各々は多数のPE(PE[1]、PE[2]等)を含むことができる。一部の実施形態で、PG当たり8個のPEがある。演算の出力順序2735を図示する。例えば、外積演算2720からの出力は出力行列2705を通じて蛇行的に伝播することができる。CGがタイル(例えば、ボックス2740)の最終結果を生成した以後に、タイルの最終結果は最終減少のためにベースダイ(例えば、図19の2405)にストリーミングされることができる。すべての部分結果が同一なチャンネルで減少された以後に、部分結果は後述するように、チャンネルに掛けて結合されることができる。
図23は本発明の一実施形態に係る互いに連結された多数のプロセシンググループ(例えば、PG[1]、PG[2])を含む計算グループ(例えば、CG[1])の例示的なブロック図である。例えば、各PGは多数のPE(PE[1]乃至PE[8])を含むことができる。1つのPG(例えば、PG[1])から1つのPE(例えば、PE[8])の出力は他のPG(例えば、PG[2])の他のPE(例えば、PE[1])の入力として提供されることができる。したがって、行列データは処理及び累算され得る。
図24は本発明の一実施形態に係る減少動作がどのように遂行されるかを示すテンソル計算データフロー加速器(例えば、図21の2600)の多数のキューブ(例えば、CUBE[1]、CUBE[2])の例示的なブロック図である。各キューブ(例えば、CUBE[1]、CUBE[2])は多数の計算グループ(例えば、CG[1]、CG[2]等)を含むことができる。各計算グループは行列データをボールト(例えば、Vault[1]、Vault[2]等)に入力して(1)で図示したように、行列データが該当ボールトヘの減少動作で減少される。(2)で、行列データは1つのボールト(例えば、Vault[1])で他のボールト(例えば、Vault[2])に統合され、減少される。(3)で、行列データはキューブ交差(cross-cube)累算動作でCUBE[2]からのボールト(例えば、Vault[4])に統合され、減少される。これはO(log2(numberCG))減少ラウンド(round)の最大レイテンシを有し、そしてプロセスは最終結果が漸進的に生成されるにしたがって出力タイルの最終結果と共に完全にパイプライン化されるので、性能オーバーヘッドは最小であり、実質的に無視されることができる。
図25乃至図27は本発明の一実施形態に係る逆方向伝播データレイアウト及びデータフロー3000の例示的なブロック図である。逆方向伝播データレイアウト及びデータフロー3000は多数の入力データDRAMバンク(例えば、入力データバンク[1]、入力データバンク[2]等)を含むことができる。逆方向伝播データレイアウト及びデータフロー3000は出力データバンク3015をさらに含むことができる。逆方向伝播データレイアウト及びデータフロー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技術は並列処理を向上させるのに使用されることができる。
本発明が開示した実施形態はメモリ制約的(memory-bound)であり、計算集約的(compute-intensive)であるカーネルを対象とした強い計算能力を有する。したがって、MACアレイ及び関連された構成要素は、例えばGPU計算区域から分離された、DRAMバンク横に集積された計算ロジックを有するPIM3D積層構造内に埋め込まれる(embedded)ことができる。行列乗算及び他のプロセシングは外部で遂行されるが、DRAMバンクに隣接し、このようにすることによってすべての読出しがローカルDRAMバンクからであるバンクレベルの内部高帯域幅を使用するようにする。開示した本発明の実施形態は浮動少数点演算を支援し、そして例えば、人工ニューラルネットワーク及び関連されたトレーニングに特別に有用である。
本発明が開示する実施形態はディープラーニングトレーニングで帯域幅に制限された浮動少数点GEMM演算を目標とする。累算次元(例えば、GEMM[M、K、N]でK次元)に対するタイリングを伴う技術であり、同一のバンクに対するライトバックが必要でなく、読出し-書込み衝突が発生しない。すべての書込み動作はデータフローパイプラインで次のレベルに伝播される。すべての以前レイヤーの出力は次のレイヤーの入力バンクであり、これは全体行列データ移動を減少させる。本発明が開示した一部の実施形態は逆伝播プロセスを可能にする行列転置のためのデータレイアウト及びハードウェア支援を含む。
開示したように、ロジックレイヤーはTSVを利用して互いに垂直に通信するDRAMダイの間に又は隣接して積層されることができる。ハードウェア効率(性)は浮動少数点乗算ユニットの個数を最小化することによって向上される。開示したPIM構造は部分結果がシストリック方式にPE間で伝播される外積プロセシングエンジンのための分割方法を使用する。DRAM基盤ルックアップテーブルは浮動少数点ユニットの面積オーバーヘッドを減少させるのに使用されることができる。階層的構造はルックアップテーブル基盤の浮動少数点ユニットのレイテンシを減少させるのに使用される。外積計算技術はPE当たりに使用される。分割及びスケジューリングアルゴリズムは任意のサイズのGEMM演算に使用されて性能及びエネルギー効率を向上させることができる。したがって、浮動少数点テンソル乗算がPIM構造で提供される。ADRAM基盤ルックアップテーブルはベクトル外積を具現するのに使用されることができる。シストリックアレイパイプライン方式の構造はバンク間連結に使用されることができる。周辺ロジックはDRAMバンクの外部にしかし隣接して配置されるので、DRAMコアロジックが変更される必要がなく、このようにすることによって開示した実施形態は非常に実用的に具現されることができる。DRAMバンクの外部にMACユニットを直接的に追加するのと比較して、DRAM基盤のルックアップテーブルは相当な面積オーバーヘッドを節減することができる。ベースロジックダイ上のNDP技術と比較して、開示した実施形態はより高い(TSVレベルよりはバンクレベルの)内部帯域幅及びより高い計算性能を提供する。多数のルックアップテーブルバッファは長い行活性化レイテンシ及びエネルギー消耗を減少させるのに使用されることができる。
前述した方法の多様な動作(演算)は多様な動作(演算)を遂行することができる多様なハードウェア及び/又はソフトウェア構成要素)、回路、及び/又はモジュールのような任意の適合な手段によって遂行され得る。
一部の実施形態はテンソル計算データフロー加速器半導体回路を含む。テンソル計算データフロー加速器半導体回路はメモリバンク、及びメモリバンクに隣接するように配置される乗算-加算ユニットの周辺アレイを含むことができる。一部の実施形態で、乗算-加算ユニットの周辺アレイはデータ累算のために乗算-加算ユニットのアレイの中の1つの乗算-加算ユニットからの部分出力データが乗算-加算ユニットのアレイの中の他の乗算-加算ユニットに入力されるパイプライン方式のデータフローチェーンを形成するように構成される。
一部の実施形態で、テンソル計算データフロー加速器半導体回路は各々が乗算-加算ユニットの周辺アレイの中で乗算-加算ユニットを含むプロセシングエンジンの周辺アレイを含むことができる。一部の実施形態で、プロセシングエンジンの各々は入力バッファ、部分和バッファ、及び加重値バッファを含む。一部の実施形態で、プロセシングエンジンの各々の加重値バッファは初期化された状態で加重値行列ベクトルを格納するように構成される。一部の実施形態で、プロセシングエンジンの周辺アレイの中でプロセシングエンジンの入力バッファはストリーミング方式にメモリバンクから入力行列ベクトルを受信するように構成される。一部の実施形態で、プロセシングエンジンの乗算-加算ユニットは入力行列ベクトルとプロセシングエンジンの加重値バッファに格納された加重値行列ベクトルの積を計算するように構成される。
一部の実施形態で、プロセシングエンジンの周辺アレイは蛇行的に部分和を伝播するように構成されるシストリックアレイである。一部の実施形態で、プロセシングエンジンの周辺アレイはストリーミング方式により複数の入力行列ベクトルを受信し、そして部分和のデータフロー方向と垂直である方向に複数の入力行列ベクトルを伝播させるように構成される。
一部の実施形態で、メモリバンクはDRAMメモリバンクである。回路は複数のチャンネルを含むNDP-DF(near-DRAM-processing dataflow)加速器ユニットダイをさらに含む。一部の実施形態で、チャンネルの各々は蛇行的に配列される複数のスマートバンクユニットを含む。一部の実施形態で、スマートバンクユニットの各々はDRAMバンク、入力バッファ、シストリックMACアレイ、及び出力バッファを含む。
一部の実施形態で、シストリックMACアレイは乗算-加算ユニットの周辺アレイを含む。一部の実施形態で、NDP-DF加速器ユニットダイは順に積層される複数のNDP-DF加速器ユニットダイの中の1つである。
一部の実施形態で、テンソル計算データフロー加速器半導体回路はパッシブシリコンインターポーザ、パッシブシリコンインターポーザ上に配置されるプロセッサ、及びプロセッサに隣接してパッシブシリコンインターポーザ上に配置されるベースダイをさらに含むことができる。一部の実施形態で、複数のNDP-DF加速器ユニットダイはベースダイ上に積層される。一部の実施形態で、テンソル計算データフロー加速器半導体回路は複数の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加速器ユニットダイとベースダイは逆方向へ部分出力データを伝播させるように構成される。一部の実施形態で、複数の積層されたNDP-DF加速器ユニットダイとベースダイは部分行列転置を遂行するように構成される。
開示した一部の実施形態はGEMMデータフロー加速器半導体回路を含む。GEMMデータフロー加速器半導体回路はメモリバンク、メモリバンクに格納された周辺ルックアップテーブル、そしてルックアップテーブルヘのローアドレスとして使用される第1ベクトルを格納するように構成される第1ベクトルバッファを含むことができる。GEMMデータフロー加速器半導体回路はルックアップテーブルヘのカラムアドレスとして使用される第2ベクトルを格納するように構成される第2ベクトルバッファをさらに含むことができる。GEMMデータフロー加速器半導体回路は1つ以上のルックアップテーブルエントリを受信するように構成される1つ以上のルックアップテーブルバッファをさらに含むことができる。一部の実施形態で、第2ベクトルバッファは第2ベクトルを1つ以上のルックアップテーブルバッファにストリーミングするように構成され、そして1つ以上のルックアップテーブルバッファはルックアップテーブルから1つ以上のルックアップテーブルエントリを格納するように構成される。一部の実施形態で、1つ以上のルックアップテーブルバッファは乗算演算を遂行せず、第1ベクトルと第2ベクトルの積を決定するように構成される。
一部の実施形態で、積は第1積であり、そしてGEMM回路は第1積と第2積を加算するように構成される1つ以上の加算器、そして第1積と第2積の合算結果を格納するように構成される出力バッファをさらに含む。一部の実施形態で、1つ以上のルックアップテーブルバッファは乗算演算を遂行せず、ルックアップテーブルヘの、各々、カラムアドレス及びローアドレスとして、第1ベクトルの値と第2ベクトルの値を利用して第1積を決定するように構成される。一部の実施形態で、1つ以上のルックアップテーブルバッファは乗算演算を遂行せず、ルックアップテーブルヘの、各々、カラムアドレス及びローアドレスとして、第3ベクトルの値と第4ベクトルの値を利用して第2積を決定するように構成される。
一部の実施形態で、メモリバンク、周辺ルックアップテーブル、第1ベクトルバッファ、1つ以上のルックアップテーブルバッファ、及び第2ベクトルバッファは階層的ルックアップ構造を形成してレイテンシを減少させる。一部の実施形態で、GEMMデータフロー加速器半導体回路は1つ以上のルックアップテーブルバッファを含む複数のルックアップテーブルバッファをさらに含む。一部の実施形態で、複数のルックアップテーブルバッファは該当の複数の行列ベクトルを格納してメモリバンクに格納されたルックアップテーブルに接近せず、そして乗算演算を遂行しないが、複数の行列ベクトルの複数の積を決定するように構成される。
一部の実施形態で、GEMMデータフロー加速器半導体回路はスマートバンクユニットの周辺アレイをさらに含む。一部の実施形態で、スマートバンクユニットの周辺アレイはデータ累算のためにスマートバンクユニットのアレイの中の1つのスマートバンクユニットからの部分出力データがスマートバンクユニットのアレイの中の他のスマートバンクユニットに入力されるパイプライン方式のデータフローチェーンを形成するように構成される。
一部の実施形態で、スマートバンクユニットの各々はメモリバンク、ルックアップテーブル、複数のルックアップテーブルバッファ、1つ以上の加算器、及び出力バッファを含む。一部の実施形態で、複数のスマートバンクユニットの中の第1スマートバンクユニットは第1スマートバンクユニットに隣接する第2スマートバンクユニットに積を出力するように構成される。一部の実施形態で、第2スマートバンクユニットは第1スマートバンクユニットから受信された積を格納するように構成される。
一部の実施形態で、積は第1積であり、そして第2スマートバンクユニットはストリーミング方式にメモリバンクから第3ベクトルを受信するように構成される。一部の実施形態で、第2スマートバンクユニットの1つ以上のルックアップテーブルバッファは乗算演算を遂行せず、ルックアップテーブルを利用して第3ベクトルに基づいて第2積を決定するように構成される。一部の実施形態で、第2スマートバンクユニットの1つ以上の加算器は第1積と第2積の和を計算するように構成される。一部の実施形態で、第2スマートバンクユニットの出力バッファは第1積と第2積の和を格納するように構成される。
一部の実施形態で、第2スマートバンクユニットは第1積と第2積の和をスマートバンクユニットの周辺アレイの中の第3スマートバンクユニットに出力するように構成される。一部の実施形態で、第3スマートバンクユニットは第2スマートバンクユニットに隣接する。一部の実施形態で、第3スマートバンクユニットは和を格納するように構成される。
一部の実施形態で、スマートバンクユニットの周辺アレイは蛇行的に部分和を伝播するように構成される。一部の実施形態で、スマートバンクユニットの周辺アレイはストリーミング方式により複数の入力行列ベクトルを受信し、そして部分和のデータフロー方向と垂直になる方向に複数の入力行列ベクトルを伝播するように構成される。
一部の実施形態で、メモリバンクはDRAMメモリバンクであり、回路は複数のチャンネルを含むNDP-DF(near-DRAM-processing dataflow)加速器ユニットダイをさらに含む。一部の実施形態で、チャンネルの各々は蛇行的に配列されるスマートバンクユニットの周辺アレイを含む。一部の実施形態で、スマートバンクユニットの各々はDRAMバンク、ルックアップテーブル、複数のルックアップテーブルバッファ、1つ以上の加算器、及び出力バッファを含む。
一部の実施形態で、NDP-DF加速器ユニットダイは順に積層される複数のNDP-DF加速器ユニットダイの中の1つである。一部の実施形態で、GEMM回路はパッシブシリコンインターポーザ、パッシブシリコンインターポーザ上に配置されるプロセッサ、及びプロセッサに隣接してパッシブシリコンインターポーザ上に配置されるベースダイをさらに含む。一部の実施形態で、複数のNDP-DF加速器ユニットダイはベースダイ上に積層される。
一部の実施形態で、GEMM回路は複数のNDP-DF加速器ユニットダイ及びベースダイを貫通して配置される1つ以上のTSV(through silicon via)をさらに含む。一部の実施形態で、1つ以上のTSVは複数のNDP-DF加速器ユニットダイとベースダイを、そしてベースダイとプロセッサを相互連結するように構成される。一部の実施形態で、複数のNDP-DF加速器ユニットダイとベースダイはプロセッサから計算をオフロードするように構成される。
一部の実施形態で、GEMMデータフロー加速器半導体回路はパッシブシリコンインターポーザ、パッシブシリコンインターポーザ上に配置されるコントローラ、及びコントローラに隣接してパッシブシリコンインターポーザ上に配置されるベースダイをさらに含む。一部の実施形態で、複数のNDP-DF加速器ユニットダイはベースダイ上に積層される。
一部の実施形態で、GEMMデータフロー加速器半導体回路は複数のNDP-DF加速器ユニットダイとベースダイを貫通して配置される1つ以上のTSV(through silicon via)をさらに含む。一部の実施形態で、1つ以上のTSVは複数のNDP-DF加速器ユニットダイとベースダイを、そしてベースダイとコントローラを相互連結するように構成される。一部の実施形態で、複数のNDP-DF加速器ユニットダイとベースダイはテンソル計算データフロー加速器半導体回路から分離されたホストから計算をオフロードするように構成される。一部の実施形態で、複数の積層されたNDP-DF加速器ユニットダイとベースダイは並列に部分出力データを処理するように構成される。
開示した実施形態と関連して説明した方法又はアルゴリズム及び機能のブロック又は段階はハードウェア方式、プロセッサによって実行されるソフトウェアモジュール、又はこれらの2つの組合せで直接的に具現されることができる。ソフトウェアとして具現されれば、機能は有形の(tangible)、非一時的(non-transitory)コンピュータ読出し可能媒体上の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つ以上の連結を活用することができる。機械はイントラネット、インターネット、LAN(local area networks)、WAN(wide area networks)等のような物理的及び/又は論理的ネットワークを経由して相互連結されることができる。当業者はネットワーク通信が多様な有線及び/又は無線近距離又は遠距離キャリヤー及び無線周波数(RF)、衛星、マイクロ波、IEEE(Institute of Electrical and Electronics Engineers) 545.11、Bluetooth(登録商標)、光学、赤外線、ケーブル、レーザー等を含むプロトコルを活用できることを理解できる。
本発明の実施形態は機械によってアクセスされる時に機械が作業を遂行するか、又は抽象的なデータ類型又は低レベルハードウェアコンテキストを定義することを引き起こす関数、手続、データ構造、アプリケーションプログラム等を含む関連されたデータを参照して又は協力して説明することができる。関連されたデータは、例えばRAM、ROM等のような揮発性及び/又は不揮発性メモリ、又は他のストレージ装置、及びハードドライブ、フロッピーディスク、光学ストレージ、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、生体ストレージ等を含む連関されたストレージ媒体に格納され得る。関連されたデータは物理的及び/又は論理的ネットワークを含む伝送環境を経てパケット、直列データ、並列データ、伝送信号等の形態に伝達され、圧縮された又は暗号化されたフォーマットに利用され得る。連関されたデータは分散環境で使用され得、機械アクセスに対して地域的及び/又は遠隔に格納され得る。
図示した実施形態を参照して説明し、図示した本発明の原理を有すれば、図示した実施形態がこのような原理から逸脱せず、配列及び細部事項で修正されることができ、任意の望む方式に結合されることができることが理解できる。そして、たとえ前述の説明が特定の実施形態に集中したが、他の構成が考慮される具体的に、‘‘本発明の実施形態に係る’’のような表現又は本文で使用した類似な表現にも拘らず、これら文句は一般的に実施が可能であると看做され、本発明を具体的な実施形態構成に制限すると意図しない。本文で使用したように、これらの用語は他の実施形態に結合可能な同一な又は異なる実施形態を参照することができる。
本発明の実施形態は1つ以上のプロセッサによって実行可能な命令語を含む非一時的機械読出し可能な媒体を含むことができ、命令語は本文で開示した本発明の要素を遂行する命令語を含む。
前述した例示的な実施形態は本発明を制限しようとすると解釈されない。幾つかの実施形態を説明したが、当業者は本発明の新規な教示と長所から実質的に逸脱せず、これら実施形態に対する多くの修正が可能であることを容易に理解することができる。したがって、すべてのこのような修正は請求項で定義する本発明の範囲以内に含まれると意図する。
100 浮動少数点乗算-累算エンジン
105 ルックアップテーブル
110 符号ビットロジック
115、1310 加算器回路
120 累算器(又は累積器)
135 出力
140 乗算演算の積
145 符号ビット
150 指数
155 少数
200、1000、1100、1300、2000 ブロック図
202 ローカルDRAMバンク
220 C-エントリ
225 A-エントリ
230 B-エントリ
235 ルックアップテーブルバッファ
300 GEMMデータフロー加速器
305 B-ベクトルバッファ
310 A-ベクトルバッファ
315 加算器
320 出力バッファ
325 ルックアップテーブルアレイ
330 データアレイ
335 ルックアップテーブルバッファ区域
340 結果
400、600、800 スタックデータフロー加速器
405 スタック
410 NDP-DF加速器ユニット
415、615、815、2405 ベースダイ
420、620、820、2505 パッシブシリコンインターポーザ
425 プロセッサ
435 TSV
500、700、900 ホスト
505、705、905 通信リンク
625、825、2125 コントローラ
850、2130 スイッチ
1105、1220 入力バッファ
1110 MACアレイ
1200、2500、2600 テンソル計算データフロー加速器
1205 ダブルバッファ
1210 MACユニット
1215 PE
1225 加重値バッファ
1230 部分和バッファ
1305 乗算器回路
1410 幅
2025 第1タイリンググループ
2030 第2タイリンググループ
2035 第3タイリンググループ
2040 第4タイリンググループ
2045 データフィード
2105 PG
2110 データバス
2115、2120、2140 TSV
2205 キューブ
2210、2215 スタック
2410 ネットワークインターフェイス
2415 プログラマブルコア
2420 ボールト
2425 バッファ
2430 ALU
2605 DRAMバンク
2610 データバッファ
2615 第1被乗数バッファ
2620 選択器
2630 第2被乗数バッファ
2635 MAC
2640 出力FIFO
2700、3000 データフロー
2705 出力行列
2710、2715 部分ベクトル
2720 外積演算
2725 入力行列
2730 加重値行列
2735 出力順序
2740 ボックス
3015 出力データバンク

Claims (20)

  1. メモリバンクと、
    前記メモリバンクに格納されたルックアップテーブルと、
    前記ルックアップテーブルヘのローアドレスとして使用される第1ベクトルを格納するように構成される第1ベクトルバッファと、
    前記ルックアップテーブルヘのカラムアドレスとして使用される第2ベクトルを格納するように構成される第2ベクトルバッファと、
    1つ以上のルックアップテーブルエントリを受信するように構成される1つ以上のルックアップテーブルバッファと、を含み、
    前記第2ベクトルバッファは、前記第2ベクトルを前記1つ以上のルックアップテーブルバッファにストリーミングするように構成され、そして前記1つ以上のルックアップテーブルバッファは、前記ルックアップテーブルから前記1つ以上のルックアップテーブルエントリを格納するように構成され、
    前記1つ以上のルックアップテーブルバッファは、前記ルックアップテーブルからの前記1つ以上のルックアップテーブルエントリに少なくとも部分的に基づいて前記第1ベクトルと前記第2ベクトルの積を決定するように構成される、ことを特徴とするGEMM(general matrix-matrix multiplication)データフロー加速器半導体回路。
  2. 前記積は第1積であり、前記GEMMデータフロー加速器半導体回路は、
    前記第1積と第2積を加算するように構成される1つ以上の加算器と、
    前記第1積と前記第2積の合算結果を格納するように構成される出力バッファと、をさらに含む、ことを特徴とする請求項1に記載のGEMMデータフロー加速器半導体回路。
  3. 前記1つ以上のルックアップテーブルバッファは乗算演算を遂行せず、前記カラムアドレス及び前記ローアドレスとして前記第1ベクトルの値と前記第2ベクトルの値を利用して前記第1積を決定するように構成される、ことを特徴とする請求項2に記載のGEMMデータフロー加速器半導体回路。
  4. 前記1つ以上のルックアップテーブルバッファは、乗算演算を遂行せず、前記カラムアドレス及び前記ローアドレスとして、第3ベクトルの値と第4ベクトルの値を利用して前記第2積を決定するように構成される、ことを特徴とする請求項2に記載のGEMMデータフロー加速器半導体回路。
  5. 前記メモリバンク、前記ルックアップテーブル、前記第1ベクトルバッファ、前記1つ以上のルックアップテーブルバッファ、及び前記第2ベクトルバッファは階層的ルックアップ構造を形成してレイテンシを減少させる、ことを特徴とする請求項1に記載のGEMMデータフロー加速器半導体回路。
  6. 前記1つ以上のルックアップテーブルバッファを含む複数のルックアップテーブルバッファをさらに含み、
    前記複数のルックアップテーブルバッファは、該当する複数の行列ベクトルを格納して前記メモリバンクに格納された前記ルックアップテーブルに接近せず、乗算演算を遂行しながら、前記複数の行列ベクトルの複数の積を決定するように構成される、ことを特徴とする請求項1に記載のGEMMデータフロー加速器半導体回路。
  7. スマートバンクユニットの周辺アレイをさらに含み、
    前記スマートバンクユニットの周辺アレイは、データ累算のために前記スマートバンクユニットのアレイの中の1つのスマートバンクユニットからの部分出力データが前記スマートバンクユニットのアレイの中で他のスマートバンクユニットに入力されるパイプライン方式のデータフローチェーンを形成するように構成される、ことを特徴とする請求項6に記載のGEMMデータフロー加速器半導体回路。
  8. 前記スマートバンクユニットの各々は、前記メモリバンク、前記ルックアップテーブル、前記複数のルックアップテーブルバッファ、1つ以上の加算器、及び出力バッファを含む、ことを特徴とする請求項7に記載のGEMMデータフロー加速器半導体回路。
  9. 前記複数のスマートバンクユニットの中の第1スマートバンクユニットは、前記第1スマートバンクユニットに隣接する第2スマートバンクユニットに前記積を出力するように構成される、ことを特徴とする請求項8に記載のGEMMデータフロー加速器半導体回路。
  10. 前記第2スマートバンクユニットは、前記第1スマートバンクユニットから受信された前記積を格納するように構成される、ことを特徴とする請求項9に記載のGEMMデータフロー加速器半導体回路。
  11. 前記積は、第1積であり、
    前記第2スマートバンクユニットは、ストリーミング方式に前記メモリバンクから第3ベクトルを受信するように構成され、
    前記第2スマートバンクユニットの前記1つ以上のルックアップテーブルバッファは、乗算演算を遂行せず、前記ルックアップテーブルを利用して前記第3ベクトルに基づいて第2積を決定するように構成され、
    前記第2スマートバンクユニットの前記1つ以上の加算器は、前記第1積と前記第2積の和を計算するように構成され、
    前記第2スマートバンクユニットの前記出力バッファは、前記第1積と前記第2積の前記和を格納するように構成される、ことを特徴とする請求項10に記載のGEMMデータフロー加速器半導体回路。
  12. 前記第2スマートバンクユニットは、前記第1積と前記第2積の前記和を前記スマートバンクユニットの周辺アレイの中で第3スマートバンクユニットに出力するように構成され、前記第3スマートバンクユニットは前記第2スマートバンクユニットに隣接し、
    前記第3スマートバンクユニットは、前記和を格納するように構成される、ことを特徴とする請求項11に記載のGEMMデータフロー加速器半導体回路。
  13. 前記スマートバンクユニットの周辺アレイは、蛇行的に部分和を伝播するように構成されるシストリックアレイであり、
    前記スマートバンクユニットの周辺アレイは、ストリーミング方式により複数の入力行列ベクトルを受信し、そして前記部分和のデータフロー方向と垂直になる方向に前記複数の入力行列ベクトルを伝播するように構成される、ことを特徴とする請求項12に記載のGEMMデータフロー加速器半導体回路。
  14. 前記メモリバンクは、DRAMメモリバンクであり、前記GEMMデータフロー加速器半導体回路は、
    複数のチャンネルを含むNDP-DF(near-DRAM-processing dataflow)加速器ユニットダイをさらに含み、
    前記チャンネルの各々は、蛇行的に配列される前記スマートバンクユニットの周辺アレイを含み、
    前記スマートバンクユニットの各々は、前記DRAMメモリバンク、前記ルックアップテーブル、前記複数のルックアップテーブルバッファ、前記1つ以上の加算器、及び前記出力バッファを含む、ことを特徴とする請求項13に記載のGEMMデータフロー加速器半導体回路。
  15. 前記NDP-DF加速器ユニットダイは、順に積層される複数のNDP-DF加速器ユニットダイの中の1つである、ことを特徴とする請求項14に記載のGEMMデータフロー加速器半導体回路。
  16. パッシブシリコンインターポーザと、
    前記パッシブシリコンインターポーザ上に配置されるプロセッサと、
    前記プロセッサに隣接して前記パッシブシリコンインターポーザ上に配置されるベースダイと、をさらに含み、
    前記複数のNDP-DF加速器ユニットダイは、前記ベースダイ上に積層される、ことを特徴とする請求項15に記載のGEMMデータフロー加速器半導体回路。
  17. 前記複数のNDP-DF加速器ユニットダイ及び前記ベースダイを貫通して配置される1つ以上のTSV(through silicon via)をさらに含み、
    前記1つ以上のTSVは、前記複数のNDP-DF加速器ユニットダイと前記ベースダイを、そして前記ベースダイと前記プロセッサを相互連結するように構成され、
    前記複数のNDP-DF加速器ユニットダイと前記ベースダイは、前記プロセッサから計算をオフロードするように構成される、ことを特徴とする請求項16に記載のGEMMデータフロー加速器半導体回路。
  18. パッシブシリコンインターポーザと、
    前記パッシブシリコンインターポーザ上に配置されるコントローラと、
    前記コントローラに隣接して前記パッシブシリコンインターポーザ上に配置されるベースダイをさらに含み、
    前記複数のNDP-DF加速器ユニットダイは、前記ベースダイ上に積層される、ことを特徴とする請求項15に記載のGEMMデータフロー加速器半導体回路。
  19. 前記複数のNDP-DF加速器ユニットダイと前記ベースダイを貫通して配置される1つ以上のTSV(through silicon via)をさらに含み、
    前記1つ以上のTSVは、前記複数のNDP-DF加速器ユニットダイと前記ベースダイを、そして前記ベースダイと前記コントローラを相互連結するように構成され、
    前記複数のNDP-DF加速器ユニットダイと前記ベースダイはテンソル計算データフロー加速器半導体回路から分離されたホストから計算をオフロードするように構成される、ことを特徴とする請求項18に記載のGEMMデータフロー加速器半導体回路。
  20. 前記複数の積層されたNDP-DF加速器ユニットダイとベースダイは、並列に前記部分出力データを処理するように構成される、ことを特徴とする請求項15に記載のGEMMデータフロー加速器半導体回路。
JP2019205909A 2018-12-07 2019-11-14 Gemmデータフロー加速器半導体回路 Active JP7209616B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862777046P 2018-12-07 2018-12-07
US62/777046 2018-12-07
US16/388,860 US11100193B2 (en) 2018-12-07 2019-04-18 Dataflow accelerator architecture for general matrix-matrix multiplication and tensor computation in deep learning
US16/388860 2019-04-18

Publications (3)

Publication Number Publication Date
JP2020091853A JP2020091853A (ja) 2020-06-11
JP2020091853A5 JP2020091853A5 (ja) 2022-11-24
JP7209616B2 true JP7209616B2 (ja) 2023-01-20

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 After (1)

Application Number Title Priority Date Filing Date
JP2019213487A Active JP7474586B2 (ja) 2018-12-07 2019-11-26 テンソル計算データフロー加速器半導体回路

Country Status (5)

Country Link
US (3) US20200183837A1 (ja)
JP (2) JP7209616B2 (ja)
KR (2) KR102511911B1 (ja)
CN (2) CN111291858A (ja)
TW (2) TWI789547B (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
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
US11334358B2 (en) * 2019-12-09 2022-05-17 Amazon Technologies, Inc. Hardware accelerator having reconfigurable instruction set and reconfigurable decoder
US11841792B1 (en) 2019-12-09 2023-12-12 Amazon Technologies, Inc. Instructions with multiple memory access modes
US11429310B2 (en) * 2020-03-06 2022-08-30 Samsung Electronics Co., Ltd. Adjustable function-in-memory computation system
US11874897B2 (en) 2020-04-09 2024-01-16 Micron Technology, Inc. Integrated circuit device with deep learning accelerator and random access memory
US11461651B2 (en) * 2020-04-09 2022-10-04 Micron Technology, Inc. System on a chip 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芯片
WO2022000101A1 (en) * 2020-06-28 2022-01-06 Huawei Technologies Co., Ltd. Method to avoid memory bank conflicts and pipeline conflicts in tensor memory layout
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
US20210150328A1 (en) * 2021-01-27 2021-05-20 Intel Corporation Hierarchical Hybrid Network on Chip Architecture for Compute-in-memory Probabilistic Machine Learning Accelerator
TWI782574B (zh) * 2021-01-28 2022-11-01 旺宏電子股份有限公司 乘加運算裝置以及其乘加運算的控制方法
US20220308833A1 (en) * 2021-03-24 2022-09-29 Intel Corporation Multiplication circuit based on constituent partial product lookup table
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
CN117501250A (zh) * 2021-09-22 2024-02-02 华为技术有限公司 用于矩阵计算加速的方法和装置
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
KR20240083233A (ko) * 2022-12-02 2024-06-12 삼성전자주식회사 메모리 장치 및 그 동작 방법
CN115860079B (zh) * 2023-01-30 2023-05-12 深圳市九天睿芯科技有限公司 神经网络加速装置、方法、芯片、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3182171B2 (ja) 1991-08-29 2001-07-03 富士通株式会社 光モジュール
JP2009516248A (ja) 2005-11-15 2009-04-16 テレフオンアクチーボラゲット エル エム エリクソン(パブル) テーブルルックアップ乗算器
JP2011501238A (ja) 2007-10-23 2011-01-06 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. コンピュータシステムデバイスのための光配線
US20110307233A1 (en) 1998-08-31 2011-12-15 Tseng Ping-Sheng Common shared memory in a verification system
US20120215826A1 (en) 2001-09-04 2012-08-23 Microunity Systems Engineering, Inc. System and method to implement a matrix multiply unit of a broadband processor

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2698675B2 (ja) * 1989-12-11 1998-01-19 大日本印刷株式会社 カラー画像情報の符号化及び再生方法
JPH07248841A (ja) * 1994-03-09 1995-09-26 Mitsubishi Electric Corp 非線形関数発生装置およびフォーマット変換装置
US20140207794A1 (en) * 2010-08-30 2014-07-24 Nokia Corporation Method and apparatus for conducting a search based on context
JP2012064087A (ja) 2010-09-17 2012-03-29 Keio Gijuku 生活習慣病の診断予測装置、生活習慣病の診断予測方法及びプログラム
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
US10049322B2 (en) 2015-05-21 2018-08-14 Google Llc Prefetching weights for use in a neural network processor
JP2017098711A (ja) * 2015-11-20 2017-06-01 富士通株式会社 歪補償装置および歪補償方法
US11126549B2 (en) 2016-03-31 2021-09-21 Hewlett Packard Enterprise Development Lp Processing in-memory architectures for performing logical operations
US11501131B2 (en) 2016-09-09 2022-11-15 SK Hynix Inc. Neural network hardware accelerator architectures and operating method thereof
CN110447146A (zh) * 2016-12-21 2019-11-12 英特尔公司 无线通信技术、装置和方法
EP3563304B1 (en) * 2016-12-30 2022-03-09 Intel Corporation Deep learning hardware
US11086967B2 (en) 2017-03-01 2021-08-10 Texas Instruments Incorporated Implementing fundamental computational primitives using a matrix multiplication accelerator (MMA)
US10186011B2 (en) 2017-04-28 2019-01-22 Intel Corporation Programmable coarse grained and sparse matrix compute hardware with advanced scheduling
US11373266B2 (en) * 2017-05-05 2022-06-28 Intel Corporation Data parallelism and halo exchange for distributed machine learning
US10643297B2 (en) * 2017-05-05 2020-05-05 Intel Corporation Dynamic precision management for integer deep learning primitives
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
US11741346B2 (en) * 2018-02-08 2023-08-29 Western Digital Technologies, Inc. Systolic neural network engine with crossover connection optimization
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3182171B2 (ja) 1991-08-29 2001-07-03 富士通株式会社 光モジュール
US20110307233A1 (en) 1998-08-31 2011-12-15 Tseng Ping-Sheng Common shared memory in a verification system
US20120215826A1 (en) 2001-09-04 2012-08-23 Microunity Systems Engineering, Inc. System and method to implement a matrix multiply unit of a broadband processor
JP2009516248A (ja) 2005-11-15 2009-04-16 テレフオンアクチーボラゲット エル エム エリクソン(パブル) テーブルルックアップ乗算器
JP2011501238A (ja) 2007-10-23 2011-01-06 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. コンピュータシステムデバイスのための光配線

Also Published As

Publication number Publication date
JP2020091861A (ja) 2020-06-11
US20210374210A1 (en) 2021-12-02
US20200184001A1 (en) 2020-06-11
CN111291859A (zh) 2020-06-16
CN111291858A (zh) 2020-06-16
TWI789547B (zh) 2023-01-11
US20200183837A1 (en) 2020-06-11
KR20200070089A (ko) 2020-06-17
TW202024960A (zh) 2020-07-01
CN111291859B (zh) 2022-06-14
TW202038099A (zh) 2020-10-16
JP2020091853A (ja) 2020-06-11
JP7474586B2 (ja) 2024-04-25
KR102511911B1 (ko) 2023-03-20
US11100193B2 (en) 2021-08-24
TWI811450B (zh) 2023-08-11
KR20200070088A (ko) 2020-06-17

Similar Documents

Publication Publication Date Title
JP7209616B2 (ja) Gemmデータフロー加速器半導体回路
CN109992743B (zh) 矩阵乘法器
Judd et al. Proteus: Exploiting numerical precision variability in deep neural networks
Qiao et al. FPGA‐accelerated deep convolutional neural networks for high throughput and energy efficiency
JP2020091853A5 (ja)
Jaiswal et al. FPGA-based high-performance and scalable block LU decomposition architecture
WO2018160738A2 (en) Reconfigurable matrix multiplier system and method
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
CN116710912A (zh) 一种矩阵乘法器及矩阵乘法器的控制方法
Li et al. Fsa: A fine-grained systolic accelerator for sparse cnns
JP7413549B2 (ja) 並列ロードストアを有する共有スクラッチパッドメモリ
CN114118348A (zh) 加速器、操作加速器的方法以及包括加速器的电子装置
CN116888591A (zh) 一种矩阵乘法器、矩阵计算方法及相关设备
Iliev et al. Low latency CMOS hardware acceleration for fully connected layers in deep neural networks
TWI684140B (zh) 適用於人工神經元的處理裝置及其方法
WO2023114417A2 (en) One-dimensional computational unit for an integrated circuit
CN114912596A (zh) 面向稀疏卷积神经网络的多chiplet系统及其方法
Dey et al. An application specific processor architecture with 3D integration for recurrent neural networks
CN109583577B (zh) 运算装置及方法
Chen et al. Exploring the programmability for deep learning processors: from architecture to tensorization
Gondimalla et al. Eureka: Efficient Tensor Cores for One-sided Unstructured Sparsity in DNN Inference
TWI815392B (zh) 存內計算裝置及用於執行mac操作之方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221114

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221114

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20221114

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: 20221227

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230110

R150 Certificate of patent or registration of utility model

Ref document number: 7209616

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150