JP7232633B2 - ストレージデバイス及びその制御方法 - Google Patents
ストレージデバイス及びその制御方法 Download PDFInfo
- Publication number
- JP7232633B2 JP7232633B2 JP2018231630A JP2018231630A JP7232633B2 JP 7232633 B2 JP7232633 B2 JP 7232633B2 JP 2018231630 A JP2018231630 A JP 2018231630A JP 2018231630 A JP2018231630 A JP 2018231630A JP 7232633 B2 JP7232633 B2 JP 7232633B2
- Authority
- JP
- Japan
- Prior art keywords
- input feature
- value
- lookup table
- feature maps
- row
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Memory System (AREA)
- Image Processing (AREA)
- Complex Calculations (AREA)
Description
したがって、マシンラーニングアプリケーションは、相異なるデータセットを訓練するために多くのリソースを必要とすることで正確に学習することができる。
メモリでの処理は、CPU(Central Processing Unit)ではなく、メモリブロック内で計算を実行することによって、これらの問題のいくつかに対処するために使用されてきた。
カラムアクセススケジューラーと、カラムデコーダーと、をさらに有し、前記カラムアクセススケジューラーは、前記中間バッファーからの前記複数の入力特徴マップの内の前記2つ以上の入力特徴マップのそれぞれの前記第1値を受信し、前記複数の入力特徴マップの内の前記2つ以上の入力特徴マップのそれぞれの前記第1値について、前記第1値に対応する前記第1カラムに対応する前記ローバッファーの位置の前記第1結果値にアクセスするように前記カラムデコーダーを制御し、前記第1結果値を読み取りバッファーに出力するように構成されることが好ましい。
前記ロジックダイは、処理要素(processing element)を含み、前記読み取りバッファーは、前記中間バッファーの前記第1値に対する前記第1結果値を受信するとき、前記第1値に対する前記第1結果値を前記ロジックダイに出力し、前記処理要素は、前記第1値に対する前記第1結果値を処理するように構成されることが好ましい。
前記処理要素は、第1入力特徴マップに対応する前記第1値に対応する前記第1結果値を受信し、前記第1入力特徴マップに対する出力を生成するために前記受信した前記第1結果値を他の受信した結果値と結合するように構成されることが好ましい。
前記第2コマンドは、前記第2カーネルを前記第2の複数の入力特徴マップのうち、2つ以上の入力特徴マップとコンボルブ(convolve:畳み込み)するコンボリューション演算(convolution operation)を実行するためのものであることが好ましい。
前記コマンドは、行列乗算演算を実行し、前記複数の入力特徴マップの内の前記2つ以上の入力特徴マップに前記カーネルを乗算するためのものであることが好ましい。
前記ストレージデバイスは、前記コマンドに基づいて、前記カーネル、前記複数の入力特徴マップ、及び前記計算ルックアップテーブルを前記メモリアレイに格納するように構成されることが好ましい。
前記計算ルックアップテーブルに割り当てられた前記メモリアレイの割合は、前記コマンドによって識別される演算に基づき、前記計算ルックアップテーブルを含む前記メモリアレイの割合は「OPA×M/N」であり、ここで、「OPA」は、アクセスされた処理要素当り実行された点ごとの演算の数であり、「M」は、前記メモリアレイがサイクルに提供できる処理要素の個数であり、「N」は、前記計算ルックアップテーブルがサイクル(cycle)に提供できる点ごとの演算の個数であることが好ましい。
前記中間バッファーから前記複数の入力特徴マップの内の2つ以上の入力特徴マップのそれぞれの前記第1値を受信するステップと、前記複数の入力特徴マップの内の前記2つ以上の入力特徴マップのそれぞれの前記第1値について、前記第1値に対応する前記第1カラムに対応する前記ローバッファーの位置の前記第1結果値にアクセスするステップと、前記第1結果値を読み込みバッファーに出力するステップと、をさらに有することが好ましい。
前記中間バッファー内の前記第1値に対する前記第1結果値を受信すると、前記第1値に対する前記第1結果値をロジックダイに出力するステップと、処理要素により前記第1値ごとに前記第1結果値を処理するステップと、をさらに有することが好ましい。
前記処理要素により処理するステップは、第1入力特徴マップに対応する前記第1値に対応する前記第1結果値を受信するステップと、前記第1入力特徴マップに対する出力値を生成するために、前記受信した第1結果値を前記第1入力特徴マップに対する他の受信した結果値と結合するステップと、を含むことが好ましい。
前記第2コマンドは、前記第2の複数の入力特徴マップの内の前記2つ以上を前記第2カーネルとコンボルブ(convolve:畳み込み)するコンボリューション(convolution)演算を実行するためのものであることが好ましい。
前記コマンドは、行列乗算演算を実行し、前記複数の入力特徴マップの内の前記2つ以上の入力特徴マップに前記カーネルを乗算するためのものであることが好ましい。
前記コマンドに基づいて、前記カーネル、前記複数の入力特徴マップ、及び前記計算ルックアップテーブルを前記メモリアレイに格納するステップと、をさらに有することが好ましい。
前記計算ルックアップテーブルに割り当てられた前記メモリアレイの割合は、前記コマンドによって識別される演算に基づき、前記計算ルックアップテーブルを含む前記メモリアレイの割合は「OPA×M/N」であり、ここで、「OPA」は、アクセスされた処理要素当り実行された点ごとの演算の数であり、「M」は、前記メモリアレイがサイクルに提供できる処理要素の個数であり、「N」は、前記計算ルックアップテーブルがサイクル(cycle)に提供できる点ごとの演算の個数であることが好ましい。
異なるように定義されていない限り、本明細書で使用する(技術的な、科学的な用語を包含する)すべての用語は、本発明が属する技術分野における通常の技術者(当業者)によって一般的に理解されるのと同一な意味を有する。
一般的に使用される辞典で定義される用語のような用語は、本明細書で明示的に定義されていない限り、関連した技術及び/又は本明細書の脈絡での意味と一致する意味を有するものと解釈されるべきで、理想的であるか、過度に形式的な意味で解釈されてはならない。
アクセラレータカード100は、HBM2のような高帯域幅メモリ(High-Bandwidth Memory:HBM)アーキテクチャを使用することができる。
アクセラレータカード100は、ホスト110及び、複数のメモリスタック(以下、DRAMスタック)(120A~120D)を包含する。
図2の側面図は、DRAMスタック120の中の1つを含む。
DRAMスタック120は、複数のメモリダイ(die)(以下、DRAMダイ)(121A~121D)、及びロジックダイ123を含む。
いくつかの実施形態で、DRAMスタック120は、アクセラレータダイ125を含むことができ、アクセラレータダイ125は、ロジックダイ123と協力して、又はロジックダイ123に代わって演算を行うことができる。
インターポーザ130は、HBMアーキテクチャを使用して、ホスト110が、複数のDRAMスタック(120A~120D)と通信するように設計することができる。
インターポーザ130は、ホスト110と外部システムとの間のインタフェースを提供できるパッケージ基板140に接続される(例えば、パッケージ基板140は、PCIeコネクターを含み得る)。
DRAMダイ121は、書き込みバッファー240、スケジューラー250、要請/応答キュー260、及び読み取りバッファー270を含む。
DRAMダイ121はまた、1つ以上のメモリアレイにモデルパラメーター210、中間結果220、及び1つ以上の計算ルックアップテーブル230を含み得る。
書き込みバッファー240と読み取りバッファー270は、DRAMダイ121のための入力及び出力ポイント(points)としての役割を行い、スケジューラー250及び要請/応答キュー260は、DRAMダイ121上でデータの流れを制御する。
図4を参照すると、処理ブロック(320A、320B)は、点ごとの(pointwise)乗算結果やコンボリューション(畳み込み)演算の一部の結果等の入力値を一時的に格納する入力バッファー321と、演算結果を一時的に格納する出力バッファー310とを有する。
処理ブロック320は、ディスパッチャー325、及び複数の処理要素(或いは処理素子)(processing elements)(327A~327D)を含む。
ディスパッチャー325は、入力バッファー321のデータを処理要素(327A~327D)に伝送し、処理要素(327A~327D)からのデータを出力バッファー323に伝送する役割を担う。
コントローラー370は、ホスト110と通信する役割を担い、スケジューラー360は、計算作業をスケジューリングする役割を担う。
コマンドに応答して、コントローラー370は、コマンドの内容に基づいて、スケジューラー360に対し作業をスケジュールするように指示する。
スケジューラー360は、コマンドキュー330が事前計算データをDRAMダイ121に伝送することを要請することができる。
いくつかの実施形態では、事前計算データは、コマンドと共にホスト110から受信する。
いくつかの実施形態で、事前計算データは、ロジックダイ123により、例えば、ホスト110からのコマンドに基づいて、コントローラー370により、計算される。
DRAMダイ121は、出力バッファー310から書き込みバッファー240まで事前計算データを一時的に読み取ることができ、スケジューラー250は、モデルパラメーター210のアレイ、又は中間結果220のアレイに事前計算データを格納することができる。
1つ以上のカーネルに対する加重値は、モデルパラメーター210のアレイに格納することができ、複数の入力特徴マップは、中間結果220のアレイに格納されることができる。
それぞれのローとカラムの組み合わせは、位置とその位置に格納された値を有する。
いくつかの実施形態で、ホスト110は、計算ルックアップテーブル230の内容を計算し、その内容をアクセラレータカード100に伝送する。
いくつかの実施形態で、計算ルックアップテーブルは、ホストメモリからローディングされる。
いくつかの実施形態で、ホスト110は、ロジックダイ123でプログラムを初期化することができ、これにより、ロジックダイ123は、計算ルックアップテーブルの内容を計算することができる。
計算ルックアップテーブル230は、事前構成値の第1セット(例えば、カーネルの加重値)に対するすべての可能な値に対応するローを含み、事前構成値の第2セット(例えば、入力特徴マップ)に対するすべての可能な値に対応するコラムを含む。
それぞれの位置に格納された値は、その位置について、ローに関連する値とカラムに関連する値との積である。
事前構成値の第1セットの中の1つと事前構成値の中の1つとを乗算するため、DRAMダイ121は、事前構成値の第1セットの一つの値に対応するローを見つけ出してローデータをローバッファーに移すための計算ルックアップテーブル230上でのルックアップ動作を実行する。
その後、DRAMダイ121は、事前構成値の第2セットの中の1つの値に対応するコラムに対するリストを見つけ出すためにローバッファーのローデータ上でのカラムルックアップ動作を実行し、その動作での値を読み取りバッファー270に出力する。
演算は、算術(例えば、指数関数)演算及び/又は論理(例えば、XOR)演算を含み得る。
いくつかの実施形態で、DRAMダイ121は、相異なる点ごとの演算に対応する複数の計算ルックアップテーブル230を含む(又は、1つの計算ルックアップテーブル230にそれぞれの点ごとの演算に対するそれぞれの値に対する複数のローを包含する)。
例として、第1計算ルックアップテーブル230でそれぞれの位置での値は、その位置に対してローとカラムに対応する値の積に対応し、第2計算ルックアップテーブル230でそれぞれの位置での値は、その位置に対しローとカラムに対応する値の間の商(quotient)に対応する。
スケジューラー250は、点ごとの演算に対応する計算ルックアップテーブル230でのロー及び/又はカラムのアクセス動作をスケジューリングすることにより、どのような点ごとの演算を実行するかを判定する。
スケジューラー360は、入力バッファー340から処理ブロック320の入力バッファー321にデータをコピー(copy)し、処理ブロック320の処理要素(327A~327D)は、データ上で追加的な処理を実行して、そのデータを出力バッファー323に出力する。
メモリに対する計算の割合が高いコマンドに対しては、さらに多くの下位アレイが計算ルックアップテーブルとして構成され得、メモリに対する計算の割合が低いコマンドに対して、はるかに少ない下位アレイが計算ルックアップテーブルとして構成される。
カーネルのメモリに対する計算の割合は、計算ルックアップテーブルからアクセスされた処理要素当たりの演算(例えば、点ごとの演算)の個数を指し示す。
計算ルックアップテーブルを含むメモリ下位アレイの割合は、「OPA×M/N」であり得る。
このとき、「OPA」は、アクセスされた処理要素当り実行された点ごとの演算の数であり、「M」は、それぞれのメモリ下位アレイがそれぞれのサイクルに提供できる処理要素の個数であり、「N」は、それぞれの計算ルックアップテーブルがそれぞれのサイクル(cycle)に提供できる点ごとの演算の個数である。
図5及び図6を参照すると、バッチ処理されたコンボリューション演算は、以上説明したDRAMスタック120により実行されうる。
ホスト110は、複数の入力特徴マップ510及び1つ以上のカーネル520を使用するバッチ処理されたコンボリューション演算の実行を指示するコマンドをコントローラー370に伝送する。
バッチ処理サイズは、入力特徴マップ510の個数として理解することができる。
それぞれの入力特徴マップ510は、幅、高さ、及び深さ(depth)を有する値の3次元アレイであり得、入力チャンネルは、深さ(depth)として理解することができる。
カーネル520は、入力特徴マップ510の高さよりも小さいカーネルの高さ、入力特徴マップの幅よりも小さいカーネル幅、及び入力特徴マップの深さ(depth)と同等(つまり、入力チャンネルと同等)の深さ(depth)を有する値の3次元アレイであり得る。
それぞれの位置で、カーネル520の加重値は、入力特徴マップ510の対応する値に掛けられる。
与えられた位置でそれぞれの加重値と入力特徴マップ510の対応する値の積は、その入力特徴マップのその位置に対し出力値「P1」、「P2」及び「P3」を得るために共に加わって、与えられた入力特徴マップ510のそれぞれの位置に対する値は、その入力特徴マップとカーネルの組み合わせに対する出力行列610を形成するために結合される。
このようなプロセスは、それぞれの入力特徴マップ及びそれぞれのカーネルについて反復される。
図5に示すように、加重値「k1_w1」は、第1カーネルの示された位置に対応する。
図6の出力を生成するために、加重値「k1_w1」は、それぞれの値の「I1_P1_w1」、「1_P2_w1」、「I1_P3_w1」、「I2_P1_w1」、「I2_P2_w1」、「I2_P3_w1」及びそれぞれの入力特徴マップ510のそれぞれの位置の近似した値に掛けられる。
バッチ処理された行列の乗算演算は、以上で説明したDRAMスタック120によって実行することができる。
ホスト110は、複数の入力特徴マップ710及び1つ以上のカーネル720を使用するバッチ処理された行列乗算の演算に対する実行命令をコントローラー370に伝送する。
複数の入力特徴マップ710は、中間結果220のメモリアレイに格納され、1つ以上のカーネル720は、モデルパラメーター210のアレイに格納される。
バッチサイズは、入力特徴マップ710の個数として理解することができる。
それぞれの入力特徴マップ710は、幅と高さを有する値の2次元行列であり得、高さ方向の入力ロー712に分けられる。
入力特徴マップ710の高さ(つまり、ローの個数)は、カーネル720の幅(すなわち、カラムの数)と同等である。
カーネル720に対する出力を生成するために、カーネル720のカラムでのそれぞれの加重値は、入力特徴マップ710のそれぞれのローそれぞれに対応する値に掛けられる。
例として、カーネルの加重値は「kj_wi」と称され、この時、「j」は、加重値のカラムであり、「i」は、カラムで加重値の位置であり、入力特徴マップの値は、「Ix_Py_wz」と称され、この時、「x」は、入力特徴マップを識別し、「y」は、値のローであり、「z」は、ローで値の位置である。
図7に示すように、バッチ処理で入力特徴マップ710のそれぞれに対する出力を生成するために、加重値「k1_w1」は、値の「I1_P1_w1」、「I1_P2_w1」、「I1_P3_w1」、「I2_P1_w1」、「I2_P2_w1」、「I3_P3_w1」、「I3_P2_w1」、「I3_P3_w1」及び入力特徴マップ710のそれぞれのローのそれぞれで位置のそれぞれの近似した値に掛けられる。
図8の動作で、演算は、入力特徴マップのカーネル及びバッチ処理上で実行される。
例として、いくつかの実施形態で、入力特徴マップは値の3次元アレイであり、カーネルは入力特徴マップよりも小さい高さを有するが、同じ深さ(depth)を有する加重値の3次元アレイであり、演算はカーネルを入力特徴マップのバッチ処理とコンボルブ(convolve)する。
いくつかの実施形態で、入力特徴マップは値の2次元行列であり、カーネルは加重値の2次元行列であり、演算は、カーネルと、それぞれの入力特徴マップ行列を乗ずる。
計算ルックアップテーブル820は、カーネルのすべての可能な加重値に対応するローを含み、入力特徴マップのすべての可能な値に対応するカラムを含む。
位置のそれぞれに格納された値は、その位置に対しローに関連する加重値とカラムに関連する値の積である。
入力特徴マップテーブル810は、入力特徴マップのバッチ処理の値を含む。
カーネルの同じ加重値の位置と点ごとに掛けられなければならない入力の特徴マップの位置は、カーネルの加重値位置の値によってインデックス(index)された同じローに格納され得る。
これは説明の便宜のために単純化された図であり、ロジックダイ850は、他の構成要素を含むことができ、図に示した構成要素は、記載したものよりも複雑でありうる。
例として、入力バッファー、出力バッファー、加算器ADD、及びレジスターは、ロジックダイ850の1つの処理要素のためのものであり、ロジックダイ850は、いくつかの処理要素及び/又は図に示した入力バッファーと出力バッファーに/から情報を伝送するための分離された入力/出力バッファーを含み得る。
さらに説明すれば、カーネルの与えられた加重値に対する結果値は、加重値を相異なる入力特徴マップ及び/又は1つの入力特徴マップの相異なる位置に掛けて生成される値である。
これに応答して、要請キューは、第1加重値に対応するローに対するルックアップ要請を待機する。
一度ローアクセススケジューラーが実行されるべき第1加重値に対応するローに対するルックアップ要請を指示すると、第1加重値(又は第1加重値に対応するローの値)は、入力特徴マップテーブル810に対する第1ローデコーダー及び計算ルックアップテーブル810に対する第2ローデコーダーに伝達される。
第1加重値に対応する入力特徴マップテーブルのローの値は、第1加重値に掛けられなければならない入力特徴マップで多様な位置から抽出される値である。
例として、加重値が「k1_w1」のとき、値は「I1_P1_w1」、「I1_P2_w1」、「I1_P3_w1」であり得る。
第2ローデコーダーは、計算ルックアップテーブル820のローをローバッファーに出力する。
第1加重値に対応する計算ルックアップテーブルのローの値は、第1加重値と入力特徴テーブルの値のすべての可能な積である。
入力バッファーの値のそれぞれは、計算ルックアップテーブル820のカラムに対応する。
入力バッファーの値のそれぞれについて、カラムアクセススケジューラーは、値(つまり、結果値)に対応するカラムに対するローバッファーに格納された値を出力バッファーに出力するために、カラムデコーダーと通信する。
いくつかの実施形態で、カラムアクセススケジューラーは、演算を並列に実行するために、複数のカラムデコーダーと通信する。
ローバッファーに格納された結果値は、第1加重値と入力特徴マップの値のそれぞれの積であるので、ローバッファーの値に対するカラムは入力特徴マップの値であり、中間バッファーの値は入力特徴マップ値であり、出力バッファに出力される結果値は、第1加重値と入力特徴マップ値の積であり、これらは、メモリから、例えば、プロセッサのリソースを使用せずに決定される。
ローバッファーは、既に第1加重値に対するローの値を既に含むから、カラムルックアップ動作のみが入力バッファーの値のそれぞれに対する結果値を得るために行われなければならない。
別のロールックアップ動作は必要としない。
結果的に、メモリルックアップは、高いバッファーヒット率を有することができ(又は、第1加重値に対する追加的なロールックアップ動作を実行しない可能性があり)、これは動作の待機時間を相当に減少させることができる。
いくつかの実施形態で、出力バッファーは、より小さな結果値のセットを伝送したり、継続的に結果値をロジックダイ850の入力バッファーにストリーミングしたりすることができる。
例として、入力バッファーは、入力特徴マップ(この時、入力特徴マップは行列である)の与えられたロー又は入力特徴マップ(この時、入力特徴マップは、3次元アレイである)の与えられた位置に対する結果値のそれぞれを得て、その結果値を別の加算器ADDに伝達する。
したがって、加算器は、レジスターに格納された値を増加させる。
一度入力特徴マップに対する全ての値がカーネルの加重値のそれぞれについて処理されると、レジスターは、入力特徴マップに対する出力行列の1つのエントリーの値のようなそれぞれの入力特徴マップに対する出力を計算するために必要な値を含む。
レジスターは、この値を出力し、ロジックダイ及び/又はホストは、入力特徴マップのそれぞれに対する出力を生成するために、それぞれのレジスターからの出力を結合したり、さらに処理したりする。
例として、斯かるデバイスの多様な構成要素は、一つのICチップ又は分離されたICチップ上に形成することができる。
なお、斯かるデバイスの多様な構成要素は、フレキシブル印刷回路(flexible printed circuit:FPC)フィルム、TCP(tape carrier package)、印刷回路基板(printed circuit board;PCB)上で具現したり、単一の基板上で形成することもできる。
なお、斯かるデバイスの多様な構成要素は、本明細書で説明した多様な機能を実行するために、1つ以上のプロセッサに上で実行され、1つ以上のコンピューティングデバイスであり、コンピュータプログラム命令を実行し、他のシステム構成要素と相互作用するプロセッサ又はスレッドであり得る。
コンピュータプログラム命令は、例として、CD-ROM、フラッシュドライブなどのような他の非一時的コンピュータ読取可能記憶媒体に格納することもできる。
なお、当該技術の通常の技術者(当業者)は、多様なコンピューティングデバイスの機能が一つのコンピューティングデバイスに結合又は統合されることができるか、特定のコンピューティングデバイスの機能が、本発明の例示的な実施形態の思想と範囲から逸脱しない一つ以上の他のコンピューティングデバイス全般に分配されうることを認知しなければならない。
110 ホスト
120、120A~120D (メモリスタック)DRAMスタック
121、121A~121D (メモリダイ)DRAMダイ
123、850 ロジックダイ
125 アクセラレータダイ
130 インターポーザ
140 パッケージ基板
210 モデルパラメーター
220 中間結果
230、820 計算ルックアップテーブル
240 書き込みバッファー
250 スケジューラー
260 要請/応答キュー
270 読み取りバッファー
310、323 出力バッファー
320、320A、320B 処理ブロック
321、340 入力バッファー
325 ディスパッチャー
327A~327D 処理要素
330 コマンドキュー
360 スケジューラー
370 コントローラー
510、710 入力特徴マップ
520、720 カーネル
610 出力行列
712 入力特徴マップの高さ方向の入力ロー
722 カーネルの幅方向のカラム
810 入力特徴マップテーブル
Claims (20)
- ストレージデバイスであって、
カーネルと複数の入力特徴マップとを用いて演算を実行するためのコマンドを伝送するホストと、
前記ホストに結合され、前記コマンドを受信するように構成されるロジックダイと、
メモリアレイを含む前記ロジックダイに結合されるメモリダイを含む高帯域幅メモリ(High Bandwidth Memory:HBM)スタックと、を有し、
前記カーネルは、複数の加重値を含み、
前記入力特徴マップは、複数の値を含み、
前記演算は、前記カーネルの第1加重値と前記複数の入力特徴マップの内の2つ以上の入力特徴マップのそれぞれの前記複数の値の内の第1値との積を決定することを含み、
前記カーネル及び前記複数の入力特徴マップは、前記メモリアレイに格納され、
計算ルックアップテーブルが前記メモリアレイに格納され、
前記計算ルックアップテーブルは、複数のロー(row)及び複数のカラム(column)を有し、前記複数のローの内、第1ローは、前記カーネルの複数の加重値の中の1つに対応し、前記複数のカラムの内、第1カラムは、前記複数の入力特徴マップの値の中の1つに対応し、
第1結果値は、前記計算ルックアップテーブルの第1位置に格納され、
前記第1位置は、前記第1ローと前記第1カラムに対応し、
前記第1結果値は、前記第1ローに対応する前記複数の加重値の中の1つと、前記第1カラムに対応する前記複数の値の中の1つと、の積であることを特徴とするストレージデバイス。 - 第1ローデコーダーと、第2ローデコーダーと、をさらに有し、
前記メモリダイは、前記第1加重値に対応する前記計算ルックアップテーブルの前記第1ローをローバッファーにロード(load)するために、前記第1ローデコーダーに前記第1加重値を入力し、前記複数の入力特徴マップの内の前記2つ以上の入力特徴マップのそれぞれの前記第1値を中間バッファーにロードするために、前記第1加重値を前記第2ローデコーダーに入力することを特徴とする請求項1に記載のストレージデバイス。 - カラムアクセススケジューラーと、カラムデコーダーと、をさらに有し、
前記カラムアクセススケジューラーは、前記中間バッファーからの前記複数の入力特徴マップの内の前記2つ以上の入力特徴マップのそれぞれの前記第1値を受信し、前記複数の入力特徴マップの内の前記2つ以上の入力特徴マップのそれぞれの前記第1値について、前記第1値に対応する前記第1カラムに対応する前記ローバッファーの位置の前記第1結果値にアクセスするように前記カラムデコーダーを制御し、前記第1結果値を読み取りバッファーに出力するように構成されることを特徴とする請求項2に記載のストレージデバイス。 - 前記ロジックダイは、処理要素(processing element)を含み、
前記読み取りバッファーは、前記中間バッファーの前記第1値に対する前記第1結果値を受信するとき、前記第1値に対する前記第1結果値を前記ロジックダイに出力し、
前記処理要素は、前記第1値に対する前記第1結果値を処理するように構成されることを特徴とする請求項3に記載のストレージデバイス。 - 前記処理要素は、第1入力特徴マップに対応する前記第1値に対応する前記第1結果値を受信し、前記第1入力特徴マップに対する出力を生成するために前記受信した前記第1結果値を他の受信した結果値と結合するように構成されることを特徴とする請求項4に記載のストレージデバイス。
- 前記ホストは、第2カーネル及び第2の複数の入力特徴マップを用いて第2演算を実行するための第2コマンドを伝送し、
第2計算ルックアップテーブルは、前記メモリアレイに格納され、
前記第2計算ルックアップテーブルは、複数のローを有し、前記第2計算ルックアップテーブルの前記複数のロー(row)の内、第2ローは前記第2カーネルの前記複数の加重値に対応し、
前記第2計算ルックアップテーブルは、複数のカラム(column)を有し、前記第2計算ルックアップテーブルの前記複数のカラムの内、第2カラムは第2の複数の入力特徴マップの前記値の中の1つに対応し、
第2結果値は、前記第2計算ルックアップテーブルの第2位置に格納され、
前記第2位置は、前記複数のローの内の前記第2ロー、及び前記第2計算ルックアップテーブルの前記複数のカラムの内の前記第2カラムに対応し、
前記第2結果値は、前記第2ローに対応する前記加重値と前記第2カラムに対応する前記値との積であることを特徴とする請求項1に記載のストレージデバイス。 - 前記第2コマンドは、前記第2カーネルを前記第2の複数の入力特徴マップのうち、2つ以上の入力特徴マップとコンボルブ(convolve:畳み込み)するコンボリューション演算(convolution operation)を実行するためのものであることを特徴とする請求項6に記載のストレージデバイス。
- 前記コマンドは、行列乗算演算を実行し、前記複数の入力特徴マップの内の前記2つ以上の入力特徴マップに前記カーネルを乗算するためのものであることを特徴とする請求項1に記載のストレージデバイス。
- 前記ストレージデバイスは、前記コマンドに基づいて、前記カーネル、前記複数の入力特徴マップ、及び前記計算ルックアップテーブルを前記メモリアレイに格納するように構成されることを特徴とする請求項1に記載のストレージデバイス。
- 前記計算ルックアップテーブルに割り当てられた前記メモリアレイの割合は、前記コマンドによって識別される演算に基づき、前記計算ルックアップテーブルを含む前記メモリアレイの割合は「OPA×M/N」であり、
ここで、「OPA」は、アクセスされた処理要素当り実行された点ごとの演算の数であり、「M」は、前記メモリアレイがサイクルに提供できる処理要素の個数であり、「N」は、前記計算ルックアップテーブルがサイクル(cycle)に提供できる点ごとの演算の個数であることを特徴とする請求項9に記載のストレージデバイス。 - コマンドを伝送するホストと、前記ホストに結合されるロジックダイと、メモリアレイを含む前記ロジックダイに結合されるメモリダイを含む高帯域幅メモリスタックと、を有するストレージデバイスを制御する方法であって、
前記ホストにより、カーネルと複数の入力特徴マップを使用する演算を実行するためのコマンドを前記ロジックダイに伝送するステップと、
前記ロジックダイにより、前記メモリアレイに前記カーネルと前記複数の入力特徴マップを格納するステップと、を有し、
前記カーネルは、複数の加重値を含み、
前記入力特徴マップは、複数の値を含み、
前記演算の実行として、前記ロジックダイにより、前記カーネルの第1加重値と前記複数の入力特徴マップの内の2つ以上の入力特徴マップのそれぞれの前記複数の値の内の第1値との積を決定するステップをさらに有し、
前記ホストから計算ルックアップテーブルを前記メモリアレイに格納するステップをさらに有し、
前記計算ルックアップテーブルは、複数のロー(row)及び複数のカラム(column)を有し、前記複数のローの内、第1ローは、前記カーネルの複数の加重値の中の1つに対応し、前記複数のカラムの内、第1カラムは、前記複数の入力特徴マップの値の中の1つに対応し、
第1結果値は、前記計算ルックアップテーブルの第1位置に格納され、
前記第1位置は、前記第1ローと前記第1カラムに対応し、
前記第1結果値は、前記第1ローに対応する前記加重値と前記第1カラムに対応する前記値との積であることを特徴とするストレージデバイスの制御方法。 - 前記第1加重値に対応する前記計算ルックアップテーブルの前記第1ローをローバッファーにロード(load)するために、第1ローデコーダーに前記第1加重値を入力するステップと、
前記複数の入力特徴マップの内の前記2つ以上の入力特徴マップのそれぞれの前記第1値を中間バッファーにロードするために、前記第1加重値を第2ローデコーダーに入力するステップと、をさらに有することを特徴とする請求項11に記載のストレージデバイスの制御方法。 - 前記中間バッファーから前記複数の入力特徴マップの内の2つ以上の入力特徴マップのそれぞれの前記第1値を受信するステップと、
前記複数の入力特徴マップの内の前記2つ以上の入力特徴マップのそれぞれの前記第1値について、前記第1値に対応する前記第1カラムに対応する前記ローバッファーの位置の前記第1結果値にアクセスするステップと、
前記第1結果値を読み込みバッファーに出力するステップと、をさらに有することを特徴とする請求項12に記載のストレージデバイスの制御方法。 - 前記中間バッファー内の前記第1値に対する前記第1結果値を受信すると、前記第1値に対する前記第1結果値をロジックダイに出力するステップと、
処理要素により前記第1値ごとに前記第1結果値を処理するステップと、をさらに有することを特徴とする請求項13に記載のストレージデバイスの制御方法。 - 前記処理要素により処理するステップは、第1入力特徴マップに対応する前記第1値に対応する前記第1結果値を受信するステップと、
前記第1入力特徴マップに対する出力値を生成するために、前記受信した第1結果値を前記第1入力特徴マップに対する他の受信した結果値と結合するステップと、を含むことを特徴とする請求項14に記載のストレージデバイスの制御方法。 - 第2カーネル及び第2の複数の入力特徴マップを用いて第2演算を実行するための前記ロジックダイに第2コマンドを伝送するステップと、
前記メモリアレイに第2計算ルックアップテーブルを格納するステップと、をさらに有し、
前記第2計算ルックアップテーブルは、複数のロー(row)と複数のカラム(column)を含み、前記第2計算ルックアップテーブルの前記複数のローの内、第2ローは、前記第2カーネルの前記複数の加重値の中の1つに対応し、
前記第2計算ルックアップテーブルの前記複数のカラムの内、第2カラムは、前記第2の複数の入力特徴マップの前記値の中の1つに対応し、
第2結果値は、前記第2計算ルックアップテーブルの第2位置に格納され、
前記第2位置は、前記第2計算ルックアップテーブルの前記第2ロー及び前記第2カラムに対応し、
前記第2結果値は、前記第2ローに対応する前記加重値と前記第2カラムに対応する前記値との積であることを特徴とする請求項11に記載のストレージデバイスの制御方法。 - 前記第2コマンドは、前記第2の複数の入力特徴マップの内の前記2つ以上を前記第2カーネルとコンボルブ(convolve:畳み込み)するコンボリューション(convolution)演算を実行するためのものであることを特徴とする請求項16に記載のストレージデバイスの制御方法。
- 前記コマンドは、行列乗算演算を実行し、前記複数の入力特徴マップの内の前記2つ以上の入力特徴マップに前記カーネルを乗算するためのものであることを特徴とする請求項11に記載のストレージデバイスの制御方法。
- 前記コマンドに基づいて、前記カーネル、前記複数の入力特徴マップ、及び前記計算ルックアップテーブルを前記メモリアレイに格納するステップと、をさらに有することを特徴とする請求項11に記載のストレージデバイスの制御方法。
- 前記計算ルックアップテーブルに割り当てられた前記メモリアレイの割合は、前記コマンドによって識別される演算に基づき、前記計算ルックアップテーブルを含む前記メモリアレイの割合は「OPA×M/N」であり、
ここで、「OPA」は、アクセスされた処理要素当り実行された点ごとの演算の数であり、「M」は、前記メモリアレイがサイクルに提供できる処理要素の個数であり、「N」は、前記計算ルックアップテーブルがサイクル(cycle)に提供できる点ごとの演算の個数であることを特徴とする請求項19に記載のストレージデバイスの制御方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762599534P | 2017-12-15 | 2017-12-15 | |
US62/599,534 | 2017-12-15 | ||
US15/916,228 US11119677B2 (en) | 2017-12-15 | 2018-03-08 | HBM based memory lookup engine for deep learning accelerator |
US15/916,228 | 2018-03-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019109886A JP2019109886A (ja) | 2019-07-04 |
JP7232633B2 true JP7232633B2 (ja) | 2023-03-03 |
Family
ID=66815998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018231630A Active JP7232633B2 (ja) | 2017-12-15 | 2018-12-11 | ストレージデバイス及びその制御方法 |
Country Status (5)
Country | Link |
---|---|
US (3) | US11119677B2 (ja) |
JP (1) | JP7232633B2 (ja) |
KR (2) | KR102672941B1 (ja) |
CN (1) | CN110058802B (ja) |
TW (1) | TWI739029B (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11687759B2 (en) * | 2018-05-01 | 2023-06-27 | Semiconductor Components Industries, Llc | Neural network accelerator |
CN112334915A (zh) * | 2018-06-25 | 2021-02-05 | 奥林巴斯株式会社 | 运算处理装置 |
US11171115B2 (en) | 2019-03-18 | 2021-11-09 | Kepler Computing Inc. | Artificial intelligence processor with three-dimensional stacked memory |
US11836102B1 (en) * | 2019-03-20 | 2023-12-05 | Kepler Computing Inc. | Low latency and high bandwidth artificial intelligence processor |
US20200356836A1 (en) * | 2019-05-07 | 2020-11-12 | Apple Inc. | Fast deep learning fully-connected column-major implementation |
US11152343B1 (en) | 2019-05-31 | 2021-10-19 | Kepler Computing, Inc. | 3D integrated ultra high-bandwidth multi-stacked memory |
US11844223B1 (en) | 2019-05-31 | 2023-12-12 | Kepler Computing Inc. | Ferroelectric memory chiplet as unified memory in a multi-dimensional packaging |
CN112684977B (zh) * | 2019-10-18 | 2024-05-28 | 旺宏电子股份有限公司 | 存储器装置及其存储器内计算方法 |
KR20210053384A (ko) | 2019-11-01 | 2021-05-12 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
TWI722797B (zh) * | 2020-02-17 | 2021-03-21 | 財團法人工業技術研究院 | 記憶體內運算器及其運算方法 |
KR20220034542A (ko) | 2020-09-11 | 2022-03-18 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
KR102430982B1 (ko) * | 2021-06-10 | 2022-08-11 | 삼성전자주식회사 | 프로세싱부를 포함하는 이종 메모리 시스템을 억세스하는 데이터 처리 시스템 및 방법 |
CN115469800A (zh) | 2021-06-10 | 2022-12-13 | 三星电子株式会社 | 数据处理***以及用于访问异构存储器***的方法 |
US11791233B1 (en) | 2021-08-06 | 2023-10-17 | Kepler Computing Inc. | Ferroelectric or paraelectric memory and logic chiplet with thermal management in a multi-dimensional packaging |
CN113408713B (zh) * | 2021-08-18 | 2021-11-16 | 成都时识科技有限公司 | 消除数据副本的方法、神经网络处理器及电子产品 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017138867A (ja) | 2016-02-05 | 2017-08-10 | 富士通株式会社 | 演算処理回路、および情報処理装置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1083388A (ja) * | 1996-05-20 | 1998-03-31 | Matsushita Electric Ind Co Ltd | 直交変換装置 |
US8890215B2 (en) | 1997-10-08 | 2014-11-18 | Pact Xpp Technologies Ag | Reconfigurable elements |
US7305540B1 (en) | 2001-12-31 | 2007-12-04 | Apple Inc. | Method and apparatus for data processing |
US7055018B1 (en) | 2001-12-31 | 2006-05-30 | Apple Computer, Inc. | Apparatus for parallel vector table look-up |
US8390035B2 (en) | 2009-05-06 | 2013-03-05 | Majid Bemanian | Massively parallel interconnect fabric for complex semiconductor devices |
US8885890B2 (en) * | 2010-05-07 | 2014-11-11 | Microsoft Corporation | Depth map confidence filtering |
US8405214B2 (en) | 2011-08-12 | 2013-03-26 | Nanya Technology Corp. | Semiconductor package structure with common gold plated metal conductor on die and substrate |
US9727113B2 (en) | 2013-08-08 | 2017-08-08 | Linear Algebra Technologies Limited | Low power computational imaging |
US9836277B2 (en) | 2014-10-01 | 2017-12-05 | Samsung Electronics Co., Ltd. | In-memory popcount support for real time analytics |
US9954533B2 (en) | 2014-12-16 | 2018-04-24 | Samsung Electronics Co., Ltd. | DRAM-based reconfigurable logic |
US10049322B2 (en) * | 2015-05-21 | 2018-08-14 | Google Llc | Prefetching weights for use in a neural network processor |
US10540588B2 (en) | 2015-06-29 | 2020-01-21 | Microsoft Technology Licensing, Llc | Deep neural network processing on hardware accelerators with stacked memory |
US20170344876A1 (en) * | 2016-05-31 | 2017-11-30 | Samsung Electronics Co., Ltd. | Efficient sparse parallel winograd-based convolution scheme |
KR102479212B1 (ko) * | 2016-08-17 | 2022-12-20 | 삼성전자주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
KR20180034853A (ko) * | 2016-09-28 | 2018-04-05 | 에스케이하이닉스 주식회사 | 합성곱 신경망의 연산 장치 및 방법 |
-
2018
- 2018-03-08 US US15/916,228 patent/US11119677B2/en active Active
- 2018-09-04 TW TW107130961A patent/TWI739029B/zh active
- 2018-10-30 KR KR1020180131348A patent/KR102672941B1/ko active IP Right Grant
- 2018-12-11 JP JP2018231630A patent/JP7232633B2/ja active Active
- 2018-12-14 CN CN201811532772.4A patent/CN110058802B/zh active Active
-
2021
- 2021-09-13 US US17/473,532 patent/US11681451B2/en active Active
-
2023
- 2023-05-11 US US18/315,821 patent/US20230289081A1/en active Pending
-
2024
- 2024-05-30 KR KR1020240070657A patent/KR20240083094A/ko active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017138867A (ja) | 2016-02-05 | 2017-08-10 | 富士通株式会社 | 演算処理回路、および情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
US11681451B2 (en) | 2023-06-20 |
JP2019109886A (ja) | 2019-07-04 |
KR20240083094A (ko) | 2024-06-11 |
US11119677B2 (en) | 2021-09-14 |
US20230289081A1 (en) | 2023-09-14 |
TW201931124A (zh) | 2019-08-01 |
TWI739029B (zh) | 2021-09-11 |
CN110058802A (zh) | 2019-07-26 |
KR102672941B1 (ko) | 2024-06-07 |
KR20190072404A (ko) | 2019-06-25 |
CN110058802B (zh) | 2024-03-15 |
US20210405877A1 (en) | 2021-12-30 |
US20190187898A1 (en) | 2019-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7232633B2 (ja) | ストレージデバイス及びその制御方法 | |
US11775294B2 (en) | Memory lookup computing mechanisms | |
JP2671120B2 (ja) | データ処理セルおよびデータプロセッサ | |
TW202123093A (zh) | 實行卷積運算的系統及方法 | |
JP7506086B2 (ja) | データ処理 | |
US11355181B2 (en) | High bandwidth memory and system having the same | |
WO2021206974A1 (en) | Deep learning accelerator and random access memory with separate memory access connections | |
US11429310B2 (en) | Adjustable function-in-memory computation system | |
CN113254359A (zh) | 用于执行存储器内计算的方法和存储器模块 | |
JP2021128752A5 (ja) | ||
US20230153616A1 (en) | Multiply-accumulate sharing convolution chaining for efficient deep learning inference | |
KR102606207B1 (ko) | 매트릭스 수학 명령어 세트에 대한 타일링 알고리즘 | |
KR102373802B1 (ko) | 신경망 연산 효율 증대를 위한 신경망 가속기 및 그의 동작 방법 | |
US20200097417A1 (en) | Scale-out high bandwidth memory system | |
TW202203000A (zh) | 用於記憶體內計算的方法及用於計算的系統 | |
KR20140093510A (ko) | 3d 반도체 패키지 디자인 방법 및 컴퓨팅 시스템 | |
TWI781722B (zh) | 記憶體裝置 | |
Cheng et al. | The 3-D parallel processor applied to matrix inversion |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20211026 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20221026 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20221101 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230124 |
|
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: 20230207 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230220 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7232633 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |