JP7495924B2 - Mac回路中の異なるカーネルを使用してデータのセットに対して連続するmac演算を実施すること - Google Patents
Mac回路中の異なるカーネルを使用してデータのセットに対して連続するmac演算を実施すること Download PDFInfo
- Publication number
- JP7495924B2 JP7495924B2 JP2021501321A JP2021501321A JP7495924B2 JP 7495924 B2 JP7495924 B2 JP 7495924B2 JP 2021501321 A JP2021501321 A JP 2021501321A JP 2021501321 A JP2021501321 A JP 2021501321A JP 7495924 B2 JP7495924 B2 JP 7495924B2
- Authority
- JP
- Japan
- Prior art keywords
- mac
- address
- circuit
- kernel
- ofm
- 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
- 238000000034 method Methods 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 12
- 230000015654 memory Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 21
- 230000004913 activation Effects 0.000 description 16
- 238000001994 activation Methods 0.000 description 16
- 238000013527 convolutional neural network Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 9
- 230000006978 adaptation Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/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
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- 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/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
ここで、D1は活性化入力特徴次元の深度(たとえば、IFMの数)であり、D2は活性化出力特徴次元の深度(たとえば、OFMの数)であり、Xは、X[r,c,d1]としてインデックス付けされたランク3活性化入力であり、ここで、d1∈[0,D1-1]はIFM深度インデックスであり、r∈[0,H1-1]およびc∈[0,W1-1]は、それぞれ、2次元(2D)IFMの行インデックスおよび列インデックスであり、Hは、H[u,v,d1,d2]としてインデックス付けされたランク4重み入力であり、ここで、(d1,d2)はIFM深度インデックスd1とOFM深度d2との交差部におけるカーネルを指し、u∈[0,Fy-1]およびv∈[0,Fx-1]は、それぞれ、2Dカーネルの行インデックスおよび列インデックスであり、ここで、Fyはカーネルの高さであり、Fxはカーネルの幅であり、Sxは列に沿ったストライドであり、Syは行に沿ったストライドであり、Yは、Y[r,c,d2]としてインデックス付けされたランク3活性化出力であり、ここで、d2∈[0,D2-1]はOFM深度インデックスであり、r∈[0,H2-1]およびc∈[0,W2-1]は、それぞれ、2D OFMの行インデックスおよび列インデックスであり、conv2d()は2D畳み込み演算子である。畳み込み演算は、式2で説明されるようなドット積演算を実施する。
ここで、N1は、MAC回路のアレイの高さ(たとえば、アレイの各列中のMAC回路の数)であり、niはIFM位相インデックス
であり、
はアレイの行インデックスである。IFM深度D1またはOFM深度D2を超えるカーネルの重みは、式5に示されているように、0になるように制約される。
H[:,:,d1,d2]=0 : d1≧D1またはd2≧D2である場合 (5)
ここで、MACは、MAC[r,c,u,v,d2,ni]としてインデックス付けされた1つの列に沿ったN1個のMAC回路にわたってある時間に累算されたランク6値であり、(d2,ni)は、IFM[niN1,niN1+N1-1]とOFM深度インデックスd2との交差部におけるすべてのカーネルを指し、u∈[0,Fy-1]およびv∈[0,Fx-1]は、それぞれ、2Dカーネルの行インデックスおよび列インデックスであり、r∈[0,H2-1]およびc∈[0,W2-1]は、それぞれ、2D OFMの行インデックスおよび列インデックスであり、ここで、H2はOFMの高さであり、W2はOFMの幅である。MACは、式7に示されているように表され得る。
ここで、MULは、ある時間におけるMAC回路の乗算回路の出力である。MULは、
としてインデックス付けされたランク7値であり、ここで、
は、IFM深度インデックスd1とOFM深度インデックスd2との交差部におけるカーネルを指す。MACは、式8に示されているように表され得る。
におけるカーネルキャッシュ332からのカーネルHにアクセスするために使用される。カーネルHは、乗算出力値
を生成するためにIFMデータXを乗算される。各行からのすべての乗算出力値
が、アレイ106のMAC回路(たとえば、200-0、201-0、...、231-0)の列中の加算カスケードチェーンに沿って累算された後に、最上MAC回路(たとえば、231-0)は、最上MAC回路の加算出力においてMAC[r,c,u,v,d2,ni]を生成する。次いで、アキュムレータ(たとえば、220-0)は、MACを記憶し、
を実施して、OFMの特定の行および列インデックス(r,c)についての最終ドット積値を得る。
は、異なるOFM深度インデックスd2について、MACサイクルごとに連続的に更新される。OFM深度D2は、OFM深度インデックスd2が式9に示されているように表され得るような複数のOFM位相に分割される。
ここで、N2は、MAC回路のアレイの幅(たとえば、アレイの各行中のMAC回路の数)であり、n0はOFM位相インデックス
であり、
はアレイの列インデックスである。
を有する場合、それは、MAC演算が、列インデックス
のMAC回路によって、異なるOFM深度インデックスd2に対応する異なるOFM位相中で実施されることを意味する。OFM位相のサブセットが、OFMパスとして一緒にグループ化される。複数のOFM位相が一緒に時分割多重化される。1よりも大きい任意の整数が、2または3で均等に割り切れるので、複数のOFM位相インデックスn0は、式10で説明されるように、OFMパスインデックスp0として一緒にグループ化され得る。
が奇数の整数である場合、すべてのOFMパスは2つのOFM位相を含む。
が、1よりも大きい偶数の整数である場合、最後のOFMパスを除くすべてのOFMパスは、2つのOFM位相を含み、最後のOFMパスは3つのOFM位相を含む。
であり、したがって、4つのIFM位相(ni∈[0,3])がある。OFM位相の数は
であり、したがって、13個のOFM位相(n0∈[0,12])がある。13個のOFM位相は、6つのOFMパス(p0∈[0,5])にスプリットされる。
は、1よりも大きい偶数の整数(12)であるので、最初の5つのOFMパス(p0∈[0,4])の各々は、最初の10個のOFM位相(n0∈[0,9])のうちの2つを含む。第6および最後のOFMパス(p0=5)は、3つのOFM位相(n0∈[10,12])を含む。したがって、2つのスレッドまたは3つのスレッドのいずれかが、MAC回路中でインターリーブした。
を生成している。たとえば、最左MAC回路(たとえば、200-0(0,0)、201-0(1,0)、202-0(2,0)、231-0(31,0))は、2つのMACサイクルごとにパターン
、
を繰り返すことによって、第1のOFMパスp0=0におけるOFM深度インデックスd2=0、16についての乗算出力値MULを生成している。
は、2つのMACサイクルのうちの第1のMACサイクル中に実施され、
は、2つのMACサイクルのうちの第2のMACサイクル中に実施される。
および
を実施することによって、2つの連続するMACサイクルのバーストにおける第1のOFMパスp0=0におけるOFM深度インデックスd2=0、16についての最終ドット積Y[r,c,0]、Y[r,c,16]を生成する。
)ので、最上アキュムレータがOFMの特定の行および列インデックス(r,c)についての最終ドット積Y[r,c,d2]を生成するために、複数のMACサイクルが必要とされ得る。出力有効シーケンスは、バースト長がOFMパスにおけるOFM位相の数に等しいバーストにおいて出力される。OFM出力シーケンス
は、内部ループがOFMの行および列インデックス(r,c)またはOFM深度インデックスd2によって反復されるところに依存する。7×7 OFMを有する図4の例を続けると、図6Aは、OFMの行および列インデックス(r,c)によって反復される最左アキュムレータ222-0のOFM出力シーケンスを示す。対照的に、図6Bは、OFM深度インデックスd2によって反復される最左アキュムレータ222-0のOFM出力シーケンスを示す。
If(phase_update_vld=‘1’)および(phase_update_id=現在の位相)
If(phase_update_en=‘1’)
「control_out」を「control_in」で更新し、アトミック演算を開始する
Else
「control_out」をデフォルト値で強制する
End if
End if
および
に対応する。しかしながら、コントローラ108は、MACレートにおいてMAC回路についていくために、MACサイクルごとにカーネルのキャッシュアドレスを生成しない。そうではなく、コントローラ108は、コントローラ108の演算周波数(たとえば、MACレートの1/2)においてベースアドレスを生成する。制御ギアボックス110は、コントローラ108から受信されたベースアドレスに基づいてMACサイクルごとにカーネルの直接マッピングされたキャッシュアドレスを生成する。3つのOFM位相を含む最後のOFMパスp0=5について、ベースアドレスは、3つのMACサイクルごとに更新される。しかしながら、コントローラ108の演算周波数は変化せず、コントローラ108は、依然として、MACレートの1/2において演算する。
If(phase_update_vld=‘1’)および(phase_update_id=現在の位相)
If(phase_update_en=‘1’)
「data_out」を「data_in」で更新し、アトミック演算を開始する
Else
「data_out」をデフォルト値で強制する
End if
End if
)が2つまたは3つのMACサイクルごとに更新されるので、アレイの各行のIAFU内に1つのスレッドのみがある。IAFUからの出力がグローバルメモリ102にループバックされた場合、スレッドは、アレイのMAC回路と同様のインターリービング方式に従ってインターリーブされ得る。図13は、図4の例におけるパラメータに基づくIAFUについての深度スプリッティング例を示す。4つのIFM位相ni∈[0,3]があり、4つのIFM位相は2つのIFMパスpi∈[0,1]にスプリットされる。各IFMパスp0∈[0,1]は、2つのIFM位相を含み、したがって、2つのIFM位相が1つのIAFU中でインターリーブされる。各IAFUは、ある時間における1つのIFMパス(pi)における異なるIFM深度インデックス(d1)ついて出力される活性化関数を生成する。活性化関数が適用された後に活性化深度が変更されないので、IFM入力深度シーケンスは、OFM出力深度シーケンスと同じである。
Claims (11)
- 積和(MAC)回路のアレイ
を備える回路装置であって、各MAC回路が、複数のカーネルの記憶のために構成されたキャッシュを含み、前記MAC回路は、
第1の数のMACサイクルまたは第2の数のMACサイクルの間に、入力特徴マップ(IFM)のデータ要素の異なる複数のセットの各セットを受信することと、
第1のMACサイクル中に、前記第1の数のMACサイクルの間に受信した前記データ要素の前記複数のセットの第1のセットと、第1の出力特徴マップ(OFM)深度インデックスに関連する前記カーネルのうちの第1のカーネル(H)とに対して第1のMAC演算を実施することと、
前記第1のMACサイクルに連続的に続く第2のMACサイクル中に、データ要素の前記第1のセットと、第2のOFM深度インデックスに関連する前記カーネルのうちの第2のカーネル(H)とに対して第2のMAC演算を実施することと、
前記第2のMACサイクルに連続的に続く第3、第4および第5のMACサイクル中に、前記第2の数のMACサイクルの間に受信した前記データ要素の第2のセットと、第3、第4および第5の出力特徴マップ(OFM)深度インデックスの各々に関連する前記カーネルのうちの第3、第4および第5のカーネル(H)とに対して第3、第4および第5のMAC演算を実施することと
を行うように構成された、回路装置。 - 前記アレイに結合され、
前記キャッシュ中の前記第1のカーネルの第1のアドレスを受信することと、
前記第1のアドレスに基づいて前記キャッシュ中の前記第2のカーネルの第2のアドレスを生成することと、
前記第1のMACサイクル中に前記第1のアドレスを前記MAC回路に提供することと、
前記第2のMACサイクル中に前記第2のアドレスを前記MAC回路に提供することと
を行うように構成された、制御回路をさらに備える、請求項1に記載の回路装置。 - 前記制御回路は、前記第1のアドレスがブロックデータ転送の開始アドレスにマッピングされたことに応答して、前記第2のアドレスを生成するために、前記第1のアドレスを固定値だけ増分するように構成され、
前記制御回路は、前記第1のアドレスがブロックデータ転送の終了アドレスにマッピングされたことに応答して、前記第2のアドレスを生成するために、前記第1のアドレスを固定値だけ減分するように構成された、
請求項2に記載の回路装置。 - 前記制御回路が、
前記第1のアドレスに基づいて前記キャッシュ中の前記カーネルのうちの前記第3のカーネルの第3のアドレスを生成することと、
前記第3のMACサイクル中に前記第3のアドレスを前記MAC回路に提供することと
を行うように構成された、請求項3に記載の回路装置。 - 前記制御回路が、
前記第2のアドレスを生成するために、前記第1のアドレスを固定値だけ増分することと、
前記第3のアドレスを生成するために、前記第2のアドレスを前記固定値だけ増分することと、
を行うように構成された、請求項4に記載の回路装置。 - 前記アレイに結合され、
前記キャッシュ中の前記カーネルのうちの前記第1のカーネルの第1のアドレスを受信することと、
第2のアドレスを生成するために、前記第1のアドレスを固定値だけ増分することと、
第3のアドレスを生成するために、前記第2のアドレスを前記固定値だけ増分することと、
前記第1のMACサイクル中に前記第1のアドレスを前記MAC回路に提供することと、
前記第2のMACサイクル中に前記第2のアドレスを前記MAC回路に提供することと、
前記第3のMACサイクル中に前記第3のアドレスを前記MAC回路に提供することと
を行うように構成された、第1の制御回路と、
前記アレイに結合され、
前記IFMの前記データ要素の前記第1のセットおよび前記IFMの前記データ要素の前記第2のセットを受信することと、
入力制御信号に応答して、前記データ要素の前記第2のセットを前記MAC回路に提供することを少なくともMACサイクルだけ遅延させることと
を行うように構成された、第2の制御回路と
を備える、請求項1に記載の回路装置。 - 第1の数のMACサイクルまたは第2の数のMACサイクルの間に、入力特徴マップ(IFM)のデータ要素の異なる複数のセットを積和(MAC)回路のアレイに入力することと、
第1のMACサイクル中に、前記MAC回路によって、前記第1の数のMACサイクルの間に受信したデータ要素の前記複数のセットの第1のセットと、前記MAC回路のキャッシュに記憶された複数のカーネルのうちの第1のカーネル(H)とに対して第1のMAC演算を実施することであって、前記第1のカーネルが第1の出力特徴マップ(OFM)深度インデックスに関連する、第1のMAC演算を実施することと、
前記第1のMACサイクルに連続的に続く第2のMACサイクル中に、前記MAC回路によって、前記データ要素の前記第1のセットと、前記複数のカーネルのうちの第2のカーネル(H)とに対して第2のMAC演算を実施することであって、前記第2のカーネルが第2のOFM深度インデックスに関連する、第2のMAC演算を実施することと、
前記第2のMACサイクルに連続的に続く第3、第4および第5のMACサイクル中に、前記第2の数のMACサイクルの間に受信した前記データ要素の第2のセットと、第3、第4および第5の出力特徴マップ(OFM)深度インデックスの各々に関連する前記複数のカーネルのうちの第3、第4および第5のカーネル(H)とに対して第3、第4および第5のMAC演算を実施することと
を含む、方法。 - 前記キャッシュ中の前記第1のカーネルの第1のアドレスを、前記アレイに結合された制御回路に入力することと、
前記制御回路によって、前記第1のアドレスに基づいて前記キャッシュ中の前記第2のカーネルの第2のアドレスを生成することと、
前記第1のMACサイクル中に前記第1のアドレスを前記MAC回路に入力することと、
前記第2のMACサイクル中に前記第2のアドレスを前記MAC回路に入力することと
を含む、請求項7に記載の方法。 - 前記第2のアドレスを生成することは、前記第1のアドレスがデータブロック転送の開始アドレスにマッピングされたことに応答して、前記第1のアドレスを固定値だけ増分することを含み、
前記第2のアドレスを生成することは、前記第1のアドレスがデータブロック転送の終了アドレスにマッピングされたことに応答して、前記第1のアドレスを固定値だけ減分することを含む、
請求項8に記載の方法。 - 第1の制御回路によって、前記第1のアドレスに基づいて前記キャッシュ中の前記第3のカーネルの第3のアドレスを生成することと、
前記第3のMACサイクル中に前記第3のアドレスを前記MAC回路に入力することと
を含む、請求項9に記載の方法。 - 前記キャッシュ中の前記複数のカーネルのうちの前記第1のカーネルの第1のアドレスを、前記アレイに結合された第1の制御回路に入力することと、
前記第1の制御回路によって、前記第1のアドレスに基づいて前記キャッシュ中の前記第2のカーネルの第2のアドレスを生成することと、
前記第1の制御回路によって、前記第1のアドレスに基づいて前記キャッシュ中の前記第3のカーネルの第3のアドレスを生成することと、
前記第1のMACサイクル中に前記第1のアドレスを前記MAC回路に入力することと、
前記第2のMACサイクル中に前記第2のアドレスを前記MAC回路に入力することと、
前記第3のMACサイクル中に前記第3のアドレスを前記MAC回路に入力することと、
前記IFMの前記データ要素の前記複数のセットを、前記アレイに結合された第2の制御回路に入力することと、
前記第2の制御回路によって、前記第2の制御回路への入力制御信号に応答して、データ要素の前記複数のセットのうち前記データ要素の1つのセットを前記MAC回路に入力することを少なくともMACサイクルだけ遅延させることと
を含む、請求項7に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/040,357 US11429850B2 (en) | 2018-07-19 | 2018-07-19 | Performing consecutive mac operations on a set of data using different kernels in a MAC circuit |
US16/040,357 | 2018-07-19 | ||
PCT/US2019/041586 WO2020018369A1 (en) | 2018-07-19 | 2019-07-12 | Performing consecutive mac operations on a set of data using different kernels in a mac circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021531572A JP2021531572A (ja) | 2021-11-18 |
JP7495924B2 true JP7495924B2 (ja) | 2024-06-05 |
Family
ID=67480366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021501321A Active JP7495924B2 (ja) | 2018-07-19 | 2019-07-12 | Mac回路中の異なるカーネルを使用してデータのセットに対して連続するmac演算を実施すること |
Country Status (6)
Country | Link |
---|---|
US (1) | US11429850B2 (ja) |
EP (1) | EP3791261B1 (ja) |
JP (1) | JP7495924B2 (ja) |
KR (1) | KR20210025114A (ja) |
CN (1) | CN112424745B (ja) |
WO (1) | WO2020018369A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210105053A (ko) * | 2020-02-18 | 2021-08-26 | 에스케이하이닉스 주식회사 | 연산 회로 및 그것을 포함하는 딥 러닝 시스템 |
CN115134856A (zh) * | 2021-03-25 | 2022-09-30 | 中国移动通信有限公司研究院 | 一种mac功能及其通信方法、通信设备 |
KR20220154346A (ko) * | 2021-05-13 | 2022-11-22 | 삼성전자주식회사 | 복제 비트-셀 기반의 mac 연산 장치 및 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180005074A1 (en) | 2016-07-01 | 2018-01-04 | Google Inc. | Convolutional Neural Network On Programmable Two Dimensional Image Processor |
JP2018073103A (ja) | 2016-10-28 | 2018-05-10 | キヤノン株式会社 | 演算回路、その制御方法及びプログラム |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3035204B1 (en) * | 2014-12-19 | 2018-08-15 | Intel Corporation | Storage device and method for performing convolution operations |
US20160210550A1 (en) * | 2015-01-20 | 2016-07-21 | Nomizo, Inc. | Cloud-based neural networks |
US10614354B2 (en) * | 2015-10-07 | 2020-04-07 | Altera Corporation | Method and apparatus for implementing layers on a convolutional neural network accelerator |
WO2017129325A1 (en) | 2016-01-29 | 2017-08-03 | Fotonation Limited | A convolutional neural network |
US9779786B1 (en) | 2016-10-26 | 2017-10-03 | Xilinx, Inc. | Tensor operations and acceleration |
CN110073329B (zh) * | 2016-12-16 | 2021-06-22 | 华为技术有限公司 | 访存设备、计算设备和应用于卷积神经网络运算的设备 |
US10402527B2 (en) | 2017-01-04 | 2019-09-03 | Stmicroelectronics S.R.L. | Reconfigurable interconnect |
US11086967B2 (en) * | 2017-03-01 | 2021-08-10 | Texas Instruments Incorporated | Implementing fundamental computational primitives using a matrix multiplication accelerator (MMA) |
-
2018
- 2018-07-19 US US16/040,357 patent/US11429850B2/en active Active
-
2019
- 2019-07-12 WO PCT/US2019/041586 patent/WO2020018369A1/en unknown
- 2019-07-12 EP EP19746297.1A patent/EP3791261B1/en active Active
- 2019-07-12 KR KR1020217004172A patent/KR20210025114A/ko not_active Application Discontinuation
- 2019-07-12 JP JP2021501321A patent/JP7495924B2/ja active Active
- 2019-07-12 CN CN201980047920.XA patent/CN112424745B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180005074A1 (en) | 2016-07-01 | 2018-01-04 | Google Inc. | Convolutional Neural Network On Programmable Two Dimensional Image Processor |
JP2018073103A (ja) | 2016-10-28 | 2018-05-10 | キヤノン株式会社 | 演算回路、その制御方法及びプログラム |
Non-Patent Citations (1)
Title |
---|
安藤 洸太,深層畳込みニューラルネットワークに向けたデータ流再構成型演算器アレイアーキテクチャ,電子情報通信学会技術研究報告 Vol.116 No.53 IEICE Technical Report,日本,一般社団法人電子情報通信学会 The Institute of Electronics,Information and Communication Engineers,2016年05月12日,第116巻 53号,29-34頁,CSNG2016-00467-005 |
Also Published As
Publication number | Publication date |
---|---|
KR20210025114A (ko) | 2021-03-08 |
WO2020018369A1 (en) | 2020-01-23 |
US20200026989A1 (en) | 2020-01-23 |
CN112424745A (zh) | 2021-02-26 |
EP3791261B1 (en) | 2023-01-11 |
JP2021531572A (ja) | 2021-11-18 |
CN112424745B (zh) | 2024-01-26 |
US11429850B2 (en) | 2022-08-30 |
EP3791261A1 (en) | 2021-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10572225B1 (en) | Circuit arrangements and methods for performing multiply-and-accumulate operations | |
JP7349438B2 (ja) | ニューラル・ネットワーク・アクセラレータ | |
KR102687633B1 (ko) | 텐서 연산들 및 가속 | |
US11809514B2 (en) | Expanded kernel generation | |
US11556613B2 (en) | Methods and systems for implementing a convolution transpose layer of a neural network | |
JP7474586B2 (ja) | テンソル計算データフロー加速器半導体回路 | |
CN112119459B (zh) | 用于张量数据的存储器布置 | |
JP7495924B2 (ja) | Mac回路中の異なるカーネルを使用してデータのセットに対して連続するmac演算を実施すること | |
US11003985B2 (en) | Convolutional neural network system and operation method thereof | |
US10411709B1 (en) | Circuit arrangements and methods for dividing a three-dimensional input feature map | |
US10402196B2 (en) | Multi-dimensional sliding window operation for a vector processor, including dividing a filter into a plurality of patterns for selecting data elements from a plurality of input registers and performing calculations in parallel using groups of the data elements and coefficients | |
US20200082246A1 (en) | Scalable multi-die deep learning system | |
US11106968B1 (en) | Circuit arrangements and methods for traversing input feature maps | |
Cappello et al. | A practical measure of FPGA floating point acceleration for High Performance Computing | |
JP2022137247A (ja) | 複数の入力データセットのための処理 | |
US11429851B1 (en) | Neural network controller | |
Rakanovic et al. | Argus CNN accelerator based on kernel clustering and resource-aware pruning | |
CN210721552U (zh) | 卷积电路 | |
US9235671B1 (en) | Combining logic elements into pairs in a circuit design system | |
Kumawat et al. | CNN agnostic accelerator design for low latency inference on FPGAs | |
US9043739B1 (en) | Placement based arithmetic operator selection | |
Barada | Modular matrix computations on multi-linear VLSI arrays | |
Fujisawa et al. | Cyclic reconfiguration for pipelined applications on coarse-grain reconfigurable circuits |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220708 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230526 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230613 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230913 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231219 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240206 |
|
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: 20240521 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240524 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7495924 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |