JP7474586B2 - テンソル計算データフロー加速器半導体回路 - Google Patents

テンソル計算データフロー加速器半導体回路 Download PDF

Info

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
Application number
JP2019213487A
Other languages
English (en)
Other versions
JP2020091861A (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 JP2020091861A publication Critical patent/JP2020091861A/ja
Application granted granted Critical
Publication of JP7474586B2 publication Critical patent/JP7474586B2/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
    • 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
    • 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
    • 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
    • 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/08Learning methods
    • 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

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

本発明はディープラーニング(deep learning)に関し、特に、ディープラーニングで一般的な(行列-行列)乗算及びテンソル計算のためのデータフロー加速器構造(dataflow accelerator architecture)に関する。
深層ニューラルネットワーク(Deep neural networks:DNN)は、人工知能を実現するための有望なアプローチとみなされており、そして多数のアプリケーションでその効果が立証されている。
深層ニューラルネットワークトレーニング(training)は、効率的な浮動少数点演算を要求する高い正確性(正確度)と広い動的範囲の全てを必要とする。
浮動少数点演算の大部分を含み、深層ニューラルネットワークトレーニングで最大時間を占めるテンソル計算(tensor computation)は、加速のための核心基本演算である。
計算性能は、メモリ帯域幅及びレイテンシ(latency)よりはるかに速くスケーリングされ、そしてオフチップデータ移動は浮動少数点演算より2桁大きいエネルギーを消費するので、テンソル計算のためのコンピューティング中心の加速器は“メモリ壁(memory wall)”問題を抱えている。
テンソル計算は、ディープラーニングで幅広いアプリケーションで重要な役割を果たす。
メモリモジュールの内部又はメモリモジュールに隣接する計算能力を有効にするPIM(Process-in-memory)構造は、その大きな内部帯域幅、データ移動の減少、及び大規模なメモリ並列処理(parallelism)のため、テンソル計算を加速する潜在力が立証されている。
しかし、従来のPIMアプローチ法は、減少した正確性を許容するが、複雑な浮動少数点トレーニング作業ができないディープラーニング推論アプリケーションを主に探求する。
NDP(Near-Data-Processing)構造は、侵入(intrusive)が少なく、そして複雑なALU(Arithmetic Logic Unit)をメモリコアバンクの外部に配置する。
しかし、ALUの数は、エリアバジェット(area budget)のために厳格に制限され、そしてNDPアプローチ法は、またコンピューティング中心の構造と比較して内部帯域幅の相当な量を損失する。
これらの短所は、コンピューティング中心のアプローチ法と比較してNPD構造を浮動少数点性能で効果が低くなる。
さらに、テンソルプロセッシングの計算上の要求を満足するために、単にFPU(floating points unit)を追加することは、DRAMダイ(die)内における重大な許容できない面積オーバーヘッドを引き起こす。
また、最近作られた不揮発性メモリベースの加速器は、書き込み耐久性(endurance)が良くなく、書き込みレイテンシが長いので、書込み集中型のディープラーニングトレーニング作業には適していないという問題がある。
また、SRAMベースの加速器は、ディープラーニングトレーニングに必要である全てのモデルパラメーターと中間結果を格納するのに充分なオンチップメモリ容量を有しないという問題がある。
米国特許出願公開第2018/0075339号明細書 米国特許出願公開第2018/0315158号明細書
本発明は上記従来のデータフロー加速器における問題点に鑑みてなされたものであって、本発明の目的は、ディープラーニングのためのテンソル計算データフロー加速器半導体回路を提供することにある。
上記目的を達成するためになされた本発明によるテンソル計算データフロー加速器半導体回路は、メモリバンクと、前記メモリバンクに隣接するように配置される複数の(乗算・加算)ユニットの周辺アレイと、前記(乗算・加算)ユニットの周辺アレイの中の(乗算・加算)ユニットを含む複数のプロセッシングエンジンの周辺アレイと、を有し、前記複数のプロセッシングエンジンの周辺アレイの各プロセッシングエンジンは、前記複数の(乗算・加算)ユニットのアレイの中の各(乗算・加算)ユニットを含み、前記複数のプロセッシングエンジンの周辺アレイは、データ累算のために前記複数のプロセッシングエンジンの周辺アレイの中の第1プロセッシングエンジンに含まれる(乗算・加算)ユニットからの部分出力データが前記複数のプロセッシングエンジンの周辺アレイの中の他のプロセッシングエンジンに含まれる(乗算・加算)ユニットに入力されるパイプライン方式のデータフローチェーン(dataflow chain)を形成するように構成され、前記プロセッシングエンジンの各々は、入力バッファと、部分和バッファと、加重値バッファと、を含み、前記メモリバンクは、DRAMメモリバンクであり、前記テンソル計算データフロー加速器半導体回路は、複数のチャンネルを含む「NDP-DF」(near-DRAM-processing dataflow)加速器ユニットダイをさらに有し、前記チャンネルの各々は、蛇行方式で配列される複数のスマートバンクユニットを含み、前記スマートバンクユニットの各々は、DRAMバンク、入力バッファ、シストリックMACアレイ、及び出力バッファを含むことを特徴とする。
データフロー加速器は、DRAMバンク及びDRAMバンクに隣接するように配置される(乗算・加算)ユニットの周辺アレイを含む。
(乗算・加算)ユニットの周辺アレイは、(乗算・加算)ユニットのアレイの中で1つの(乗算・加算)ユニットからの部分出力データがデータ累算のために(乗算・加算)ユニットのアレイの中で他の(乗算・加算)ユニットに入力されるパイプライン方式のデータフローチェーンを形成するように構成される。
「NDP-DF」(Near-DRAM-processing dataflow)加速器ユニットダイは、ベースダイ上に積層される。
ベースダイは、プロセッサ又はコントローラに隣接してパッシブシリコンインターポーザ上に配置される。
「NDP-DF」加速器ユニットは、部分行列出力データを並列に処理する。
部分行列出力データは、順方向又は逆方向に伝播される。
テンソル計算データフロー加速器は、部分行列転置を実行する。
本発明に係るテンソル計算データフロー加速器半導体回路によれば、ディープラーニングでGEMM及びテンソル計算のためのデータフロー加速器構造に関して、検索で、浮動少数点(スカラ-ベクトル)乗算をDRAMベースルックアップテーブルでの同時ルックアップ(検索)動作に変形し、すべての周辺ロジック支援をDRAMコアバンクの外部に追加する。
したがって、全的にFPUを追加することと比較してより小さい面積が消費され、より短いレイテンシが達成される。
本発明の一実施形態に係るルックアップテーブルを利用するスカラ浮動少数点(乗算・累算)エンジンを説明するための例示的なブロック図である。 本発明の一実施形態に係る計算のために全体のルックアップテーブルと関連した入力行列を含むローカルDRAMバンクを説明するための例示的なブロック図である。 本発明の一実施形態に係るGEMMデータフロー加速器の概略構成を例示するブロック図である。 本発明の一実施形態に係る集積されたスタックデータフロー加速器の概略構成を側面から例示するブロック図である。 本発明の一実施形態に係る集積されたスタックデータフロー加速器の概略構成を例示するブロック図である。 本発明の他の実施形態に係る別個のスタックデータフロー加速器の概略構成を側面から例示するブロック図である。 本発明の他の実施形態に係る別個のスタックデータフロー加速器の概略構成を例示するブロック図である。 本発明のさらに他の実施形態に係る別個のスタックデータフロー加速器の概略構成を側面から例示するブロック図である。 本発明のさらに他の実施形態に係る別個のスタックデータフロー加速器の概略構成を例示するブロック図である。 本発明の一実施形態に係る浮動少数点(乗算・累算)エンジン及び/又はGEMMデータフロー加速器と関連して使用され得る単一「NDP-DF」ダイのコンテンツを含む例示的なブロック図である。 本発明の一実施形態に係るテンソル計算データフロー加速器と関連して使用される単一「NDP-DF」ダイのコンテンツを含む例示するブロック図である。 本発明の一実施形態に係るテンソル計算データフロー加速器の概略構成を例示するブロック図である。 MACユニットの概略構成を例示するブロック図である。 シストリックMACアレイの高さとシストリックアレイの幅を説明するための例示的なブロック図である。 レイヤー間データフィーディング及びタイリング技術を説明するための例示的なブロック図である。 本発明の一実施形態に係るテンソル計算データフロー加速器のPGのマイクロ構造を示す例示的なブロック図である。 本発明の一実施形態に係るテンソル計算データフロー加速器のPGのキューブを示す例示的な側面図である。 本発明の一実施形態に係るPGの多数のボールトを含むテンソル計算データフロー加速器のPGのキューブを示す例示的な平面図である。 本発明の一実施形態に係るテンソル計算データフロー加速器のベースダイの概略構成を例示するブロック図である。 本発明の一実施形態に係るパッシブシリコンインターポーザ、及びその上に配置される複数のキューブを含むテンソル計算データフロー加速器の概略構成を例示するブロック図である。 本発明の一実施形態に係るテンソル計算データフロー加速器の概略構成を例示するブロック図である。 本発明の一実施形態に係る順方向伝播データレイアウト及びデータフローを説明するための図である。 本発明の一実施形態に係る互いに接続された複数のプロセッシンググループを含む計算グループを例示的に示すブロック図である。 本発明の一実施形態に係るテンソル計算データフロー加速器の複数のキューブの概略構成を例示するブロック図であり、減少動作がどのように実行されるかを示す図である。 本発明の一実施形態に係る逆方向伝播データレイアウト及びデータフローを説明するための図である。 本発明の一実施形態に係る逆方向伝播データレイアウト及びデータフローを説明するための図である。 本発明の一実施形態に係る逆方向伝播データレイアウト及びデータフローを説明するための図である。
次に、本発明に係るテンソル計算データフロー加速器半導体回路を実施するための形態の具体例を図面を参照しながら説明する。
本発明の実施形態を詳細に例示し、これらの例示は添付した図面を参照する。
以下の詳細な説明で、多様な特定な細部事項が本発明の完全な理解を可能であるようにするために提供する。
しかし、当業者はこのような特定な細部事項無しでも本発明を具現することができることが理解されなければならない。
他の例として、広く公知された方法、手続、構成要素、回路、及びネットワークは実施形態の側面を不必要に曖昧にしないために詳細に説明しない。
第1、第2、等の用語が多様な要素を説明するために本文で使用することがあるが、これらの要素はこのような用語によって限定されないことを理解するべきである。
これらの用語は単なる1つの要素を他のことと区別するためにのみ使用する。
例えば、本発明の範囲から逸脱しなく、第1スタック(stack)は第2スタックで称することができ、そして、類似に、第2スタックは第1スタックで称することができる。
本発明の説明で使用する用語は、単なる特定な実施形態を説明するための目的であり、本発明を制限しようとする意図ではない。
本発明の説明及び添付された請求項で使用したように、脈絡で明確に相違を示さない限り、単数形態は複数の形態も含むこととみなすものとする。
本文で使用する“及び/又は”用語は1つ以上の関連した列挙された項目の任意の、そしてすべての可能な組み合せを示し、含むことがまた理解されるべきである。
“包含する”及び/又は“含む”用語は、本明細書で使用する時、明示された特徴、整数、段階、動作、要素、及び/又は構成要素の存在を明示するが、1つ以上の他の特徴、整数、段階、動作、要素、構成要素、及び/又はそれらのグループの存在又は追加を排除しないことをさらに理解されるべきである。
図面の構成要素及び特徴は、必ずしも一定の比率で示すものではない。
本発明は、ディープラーニングでGEMM(general matrix-matrix multiplication)及びテンソル計算(tensor computation)のためのデータフロー(dataflow)加速器構造に関する。
開示する実施形態は、浮動少数点(スカラ-ベクトル)乗算をDRAMベースのルックアップテーブル(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サブアレイに効果的に格納及びアクセスすることができる。
電力及び時間を全て消費するDRAMLUTロー活性化を減少させるため、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つ以上の外積演算を実行する。
図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ベクトル情報に基づいて決定される。
言い換えれば、ルックアップテーブルバッファ(235a及び235b)は、乗算動作を実行しないで、積を決定する。
丸数字5で、加算演算が積に対して実行される(例えば、図1の符号140)。
加算演算の結果340は、出力バッファ320に格納される。
言い換えれば、積は他の積に加えられ、合わせた積は累算される。
丸数字6で、出力バッファ320は、結果340をルックアップテーブルアレイ325及び/又はデータアレイ330に伝送する。
段階(丸数字1、丸数字2、及び丸数字3)は、バンクレベルの高帯域幅を活用することができる。
段階(丸数字3、丸数字4、丸数字5、及び丸数字6)で、図に示した段階は、複数回、そして段階(丸数字1及び丸数字1)より複数回繰り返され得る。
これは、ルックアップテーブルバッファ区域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は、パッシブシリコンインターポーザ420(passive silicon interposer)上に積層することができる。
プロセッサ425(例えば、xPU)は、ベースダイ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」加速器ユニット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上に積層される。
TSV435は、1つ以上の「NDP-DF」加速器ユニット410を貫通して配置される。
TSV435は、「NDP-DF」加速器ユニット410と該当ベースダイ815を相互接続する。
その代わりに、又は追加に、TSV435は、各ベースダイ815とコントローラ825を相互接続することができる。
TSV435は、パッシブシリコンインターポーザ825を経由して各ベースダイ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)は、前述した、又は後述するように、全体のルックアップテーブル105の部分を臨時的に格納することができる。
一部の実施形態で、すべての読み出し動作は、各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)と関連する。
データフィード2045は、レイヤー1バンクと第3タイリンググループ2035との間に提供される。
図16は、本発明の一実施形態に係るテンソル計算データフロー加速器のプロセッシンググループ2105(processing group:PG)のマイクロ構造を示す例示的なブロック図である。
PG2105は、複数のPE(例えば、PE[1]~PE[8])を含む。
PEは互いに接続され、共有されたデータバス2110を経由してTSV2115に接続される。
PG2105は、TSV2215と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つ以上の計算マッピング演算(動作)を実行する。
図21において、丸数字1によって表示された第1番目の段階で、A-ベクトルは、ローカルDRAMバンク2605から読み出され、データバッファ2610に格納される。
丸数字2で、A-ベクトルは、被乗数バッファ2630にコピー及び格納される。
丸数字3によって表示された第3番目の段階で、B-ベクトルは、ローカルDRAMバンク2605から読み出され、データバッファ2610に格納される。
丸数字4で、B-ベクトルは、被乗数バッファ2615にコピー及び格納される。
丸数字5で、(スカラ-ベクトル)乗算は、与えられたPEから来る入力、そして次のPEに伝達される部分結果を用いて、MAC(例えば、2635)を用いて数回実行される。
垂直点線(例えば、2650)は、マルチプレクサー2620を経由して被乗数バッファ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)を生成した以後に、最終結果のタイルは、最終減少(final reduction)のためにベースダイ(例えば、図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]等)に入力して、図24にて丸数字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に沿って累算される。
以下に示す数式1は、本発明の一実施形態に係る順方向データレイアウトソフトウェア分割技術の擬似コード例示である。
Figure 0007474586000001
以下に示す数式2は、本発明の一実施形態に係る逆方向データレイアウトの擬似コード例示である。
Figure 0007474586000002
以下に示す数式3は、本発明の一実施形態に係る順方向計算スケジューリングソフトウェアスケジューリング技術の擬似コード例示である。
Figure 0007474586000003
以下に示す数式1は、本発明の一実施形態に係る逆方向計算スケジューリングの擬似コード例示である。
Figure 0007474586000004
並列処理は、空間的に、そして一時的に達成される。
言い換えれば、複数の臨時のプロセッシングサイクルの中で与えられたプロセッシングサイクルのために、行列データは複数のバンクによって並列に(同時に)処理される。
各新しいプロセッシングサイクルは、複数の異なるバンクによって並列に処理される行列データを有する。
したがって、本発明の実施形態によるテンソル計算データフロー加速器の性能は、増加する。
したがって、計算ロジックは、各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構造で提供される。
DRAMベースルックアップテーブルは、ベクトル外積を具現するのに使用される。
シストリックアレイパイプライン方式の構造は、バンク間接続に使用される。
周辺ロジックは、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つ間の組み合わせで直接的に具現することができる。
本発明の実施形態は、1つ以上のプロセッサによって実行可能な命令語を含む非一時的機械読み出し可能な記録媒体を含むことができ、命令語は本発明の一実施形態に係る要素を実行する命令語を含む。
ソフトウェアとして具現されれば、機能は有形の(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、又は技術分野に公知された任意の他の形態の記録媒体に位置することができる。
次の論議は、本発明の特定な様相が具現され得る適切な機械(マシン)又は複合体の機械(machines)であり、一般的な説明を提供するように意図される。
普通、機械又は複合体機械は、プロセッサ、メモリ、例えば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等のような揮発性及び/又は不揮発性メモリ、又は他のストレージ装置、及びハードドライブ、フロッピーディスク(登録商標)、光学ストレージ、テープ、フラッシュメモリ、メモリスティック(登録商標)、デジタルビデオディスク、生体ストレージ等を含む関連したストレージ媒体に格納することができる。
関連したデータは、物理的及び/又は論理的ネットワークを含む伝送環境を経てパケット、直列データ、並列データ、伝送信号等の形態に伝達され、圧縮された又は暗号化されたフォーマットとして利用される。
関連したデータは、分散環境で使用することができ、機械アクセスに対して地域的及び/又は遠隔に格納することができる。
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
100 浮動少数点乗算累算エンジン
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. テンソル計算データフロー加速器半導体回路であって、
    メモリバンクと、
    前記メモリバンクに隣接するように配置される複数の(乗算・加算)ユニットの周辺アレイと、
    前記(乗算・加算)ユニットの周辺アレイの中の(乗算・加算)ユニットを含む複数のプロセッシングエンジンの周辺アレイと、を有し、
    前記複数のプロセッシングエンジンの周辺アレイの各プロセッシングエンジンは、前記複数の(乗算・加算)ユニットのアレイの中の各(乗算・加算)ユニットを含み、
    前記複数のプロセッシングエンジンの周辺アレイは、データ累算のために前記複数のプロセッシングエンジンの周辺アレイの中の第1プロセッシングエンジンに含まれる(乗算・加算)ユニットからの部分出力データが前記複数のプロセッシングエンジンの周辺アレイの中の他のプロセッシングエンジンに含まれる(乗算・加算)ユニットに入力されるパイプライン方式のデータフローチェーン(dataflow chain)を形成するように構成され、
    前記プロセッシングエンジンの各々は、入力バッファと、部分和バッファと、加重値バッファと、を含み、
    前記メモリバンクは、DRAMメモリバンクであり、
    前記テンソル計算データフロー加速器半導体回路は、複数のチャンネルを含む「NDP-DF」(near-DRAM-processing dataflow)加速器ユニットダイをさらに有し、
    前記チャンネルの各々は、蛇行方式で配列される複数のスマートバンクユニットを含み、
    前記スマートバンクユニットの各々は、DRAMバンク、入力バッファ、シストリックMACアレイ、及び出力バッファを含むことを特徴とするテンソル計算データフロー加速器半導体回路。
  2. 前記複数のプロセッシングエンジンの前記第1プロセッシングエンジンに含まれる(乗算・加算)ユニットは、第1(乗算・加算)ユニットであり、
    前記複数のプロセッシングエンジンの他のプロセッシングエンジンに含まれる(乗算・加算)ユニットは、第2(乗算・加算)ユニットであり、
    前記複数の(乗算・加算)ユニットのアレイは、前記メモリバンクに隣接するように配置されることを特徴とする請求項1に記載のテンソル計算データフロー加速器半導体回路。
  3. 前記プロセッシングエンジンの各々の前記加重値バッファは、初期化された状態で加重値行列ベクトルを格納するように構成されることを特徴とする請求項1に記載のテンソル計算データフロー加速器半導体回路。
  4. 前記プロセッシングエンジンの周辺アレイの中でプロセッシングエンジンの前記入力バッファは、ストリーミング方式で前記メモリバンクから複数の入力行列ベクトルを受信するように構成されることを特徴とする請求項3に記載のテンソル計算データフロー加速器半導体回路。
  5. 前記プロセッシングエンジンの前記(乗算・加算)ユニットは、前記入力行列ベクトルと、前記プロセッシングエンジンの前記加重値バッファに格納された前記加重値行列ベクトルとの積を計算するように構成されることを特徴とする請求項4に記載のテンソル計算データフロー加速器半導体回路。
  6. 前記プロセッシングエンジンが、第1プロセッシングエンジンであると、前記第1プロセッシングエンジンは、前記第1プロセッシングエンジンに隣接する第2プロセッシングエンジンに前記積を出力するように構成されることを特徴とする請求項5に記載のテンソル計算データフロー加速器半導体回路。
  7. 前記第2プロセッシングエンジンは、前記第2プロセッシングエンジンの前記部分和バッファに前記積を格納するように構成されることを特徴とする請求項6に記載のテンソル計算データフロー加速器半導体回路。
  8. 前記入力行列ベクトルが、第1入力行列ベクトルであると、前記積は、第1積であり、
    前記第2プロセッシングエンジンの前記入力バッファは、前記ストリーミング方式で前記メモリバンクから第2入力行列ベクトルを受信するように構成され、
    前記第2プロセッシングエンジンの前記(乗算・加算)ユニットは、前記第2入力行列ベクトルと、前記第2プロセッシングエンジンの前記加重値バッファに格納された前記加重値行列ベクトルとの第2積を計算するように構成され、
    前記第2プロセッシングエンジンの前記(乗算・加算)ユニットは、前記第1積と前記第2積との和を計算するように構成されることを特徴とする請求項7に記載のテンソル計算データフロー加速器半導体回路。
  9. 前記第2プロセッシングエンジンは、前記第1積と前記第2積との和を前記プロセッシングエンジンの周辺アレイの中で前記第2プロセッシングエンジンに隣接する第3プロセッシングエンジンに出力するように構成され、
    前記第3プロセッシングエンジンは、前記和を前記第3プロセッシングエンジンの前記部分和バッファに格納するように構成されることを特徴とする請求項8に記載のテンソル計算データフロー加速器半導体回路。
  10. 前記複数のプロセッシングエンジンの周辺アレイは、蛇行方式(serpentine fashion)で部分和を伝播するように構成されるシストリックアレイ(systolic array)であり、
    前記プロセッシングエンジンの周辺アレイは、ストリーミング方式で複数の入力行列ベクトルを受信し、前記部分和のデータフロー方向と垂直になる方向に前記複数の入力行列ベクトルを伝播させるように構成されることを特徴とする請求項9に記載のテンソル計算データフロー加速器半導体回路。
  11. 前記シストリックMACアレイは、前記(乗算・加算)ユニットのアレイを含み、
    前記「NDP-DF」加速器ユニットダイは、順次に積層される複数の「NDP-DF」加速器ユニットダイの中の1つであることを特徴とする請求項1に記載のテンソル計算データフロー加速器半導体回路。
  12. パッシブシリコンインターポーザ(passive silicon interposer)と、
    前記パッシブシリコンインターポーザ上に配置されるプロセッサと、
    前記プロセッサに隣接して前記パッシブシリコンインターポーザ上に配置されるベースダイと、をさらに有し、
    前記複数の「NDP-DF」加速器ユニットダイは、前記ベースダイ上に積層されることを特徴とする請求項11に記載のテンソル計算データフロー加速器半導体回路。
  13. 前記複数の「NDP-DF」加速器ユニットダイと前記ベースダイとを貫通して配置される1つ以上のTSV(through silicon via)をさらに有し、
    前記1つ以上のTSVは、前記複数の「NDP-DF」加速器ユニットダイと前記ベースダイとを相互接続し、前記ベースダイと前記プロセッサを相互接続するように構成され、
    前記複数の「NDP-DF」加速器ユニットダイと前記ベースダイは、前記プロセッサから計算をオフロードするように構成されることを特徴とする請求項12に記載のテンソル計算データフロー加速器半導体回路。
  14. パッシブシリコンインターポーザと、
    前記パッシブシリコンインターポーザ上に配置されるコントローラと、
    前記コントローラに隣接して前記パッシブシリコンインターポーザ上に配置されるベースダイと、をさらに有し、
    前記複数の「NDP-DF」加速器ユニットダイは、前記ベースダイ上に積層されることを特徴とする請求項11に記載のテンソル計算データフロー加速器半導体回路。
  15. 前記複数の「NDP-DF」加速器ユニットダイと前記ベースダイとを貫通して配置される1つ以上のTSV(through silicon via)をさらに有し、
    前記1つ以上のTSVは、前記複数の「NDP-DF」加速器ユニットダイと前記ベースダイとを相互接続し、前記ベースダイと前記コントローラを相互接続するように構成され、
    前記複数の「NDP-DF」加速器ユニットダイと前記ベースダイは、前記テンソル計算データフロー加速器半導体回路から分離されたホストから計算をオフロードするように構成されることを特徴とする請求項14に記載のテンソル計算データフロー加速器半導体回路。
  16. 前記複数の積層された「NDP-DF」加速器ユニットダイと前記ベースダイは、前記部分出力データを並列に処理するように構成されることを特徴とする請求項14に記載のテンソル計算データフロー加速器半導体回路。
  17. 前記複数の積層された「NDP-DF」加速器ユニットダイと前記ベースダイは、前記部分出力データを逆方向(backward direction)に伝播するように構成されることを特徴とする請求項14に記載のテンソル計算データフロー加速器半導体回路。
  18. 前記複数の積層された「NDP-DF」加速器ユニットダイと前記ベースダイは、部分行列転置(partial matrix transposition)を実行するように構成されることを特徴とする請求項14に記載のテンソル計算データフロー加速器半導体回路。
JP2019213487A 2018-12-07 2019-11-26 テンソル計算データフロー加速器半導体回路 Active JP7474586B2 (ja)

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)

* 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
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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