JP7450815B2 - 階層的重み疎畳み込み処理のための方法とシステム - Google Patents
階層的重み疎畳み込み処理のための方法とシステム Download PDFInfo
- Publication number
- JP7450815B2 JP7450815B2 JP2023524504A JP2023524504A JP7450815B2 JP 7450815 B2 JP7450815 B2 JP 7450815B2 JP 2023524504 A JP2023524504 A JP 2023524504A JP 2023524504 A JP2023524504 A JP 2023524504A JP 7450815 B2 JP7450815 B2 JP 7450815B2
- Authority
- JP
- Japan
- Prior art keywords
- filter
- layer
- zero weights
- bit representation
- zero
- 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 title claims description 96
- 238000012545 processing Methods 0.000 title claims description 21
- 238000013528 artificial neural network Methods 0.000 claims description 36
- 239000013598 vector Substances 0.000 claims description 36
- 230000015654 memory Effects 0.000 claims description 32
- 238000003860 storage Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 description 34
- 239000000872 buffer Substances 0.000 description 24
- 230000006870 function Effects 0.000 description 14
- 230000004913 activation Effects 0.000 description 10
- 238000001994 activation Methods 0.000 description 10
- 238000013527 convolutional neural network Methods 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000011176 pooling Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000000638 solvent extraction Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 208000023514 Barrett esophagus Diseases 0.000 description 1
- 206010028980 Neoplasm Diseases 0.000 description 1
- 201000011510 cancer Diseases 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011049 filling Methods 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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
- 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
- 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]
-
- 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/048—Activation functions
-
- 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/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Molecular Biology (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
- Complex Calculations (AREA)
Description
[態様1]
コンピュータにより実現される方法であって、
ニューラルネットワークの畳み込み層における入力テンソルと複数のフィルタを取得することと、
前記入力テンソルを複数のサブテンソルに分割すること、および前記複数のサブテンソルを複数のプロセッサに割り当てることと、
前記複数のフィルタのそれぞれに対して、前記フィルタにおける複数の非ゼロ重みの階層的ビット表現を生成することと、ここにおいて、
前記階層的ビット表現は、第1層と第2層を備え、
前記第1層は、前記フィルタにおける複数のサブフィルタに対応し、前記対応するサブフィルタは、少なくとも1つの非ゼロ重みを有しているかどうかを示す複数のビットを備え、
前記第2層は、前記フィルタにおける前記複数の非ゼロ重みに対応する複数のキーバリューペアを備え、各キーバリューペアは、前記複数の非ゼロ重みの1つを値として備え、複数の非ゼロ重みの前記1つのチャネル識別子をキーとして備え、
前記階層的ビット表現に基づいて、前記複数のプロセッサのそれぞれにより、前記複数の非ゼロ重みの1つ以上と、前記割り当てられたサブテンソルから対応する入力値を識別することと、
部分和を取得するために、前記1つ以上の識別された非ゼロ重みおよび前記対応する入力値に対して積和(MAC)演算を実行することと、
前記ニューラルネットワークの前記畳み込み層の出力テンソルを構築するために、前記複数のプロセッサのそれぞれにより取得された前記部分和を累積することを備えていることを特徴とする方法。
[態様2]
前記複数のサブテンソルを複数のプロセッサに前記割り当てることは、
前記複数のプロセッサのそれぞれに対して、前記複数のサブテンソルの1つ以上を、前記プロセッサの内部バッファに記憶することを備えていることを特徴とする態様1の方法。
[態様3]
前記複数のサブテンソルのそれぞれと、前記複数のサブフィルタのそれぞれは、同じ数のチャネルを有していることを特徴とする態様1の方法。
[態様4]
前記複数の非ゼロ重みの1つ以上および対応する入力値を前記割り当てられたサブテンソルから前記階層的ビット表現に基づいて前記識別することは、
前記複数の非ゼロ重みのそれぞれに対して、前記階層的ビット表現の前記第1層に基づいて、前記非ゼロ重みが位置しているフィルタチャネルグループに対応するチャネルグループインデックスを決定することと、
前記階層的ビット表現の前記第2層に基づいて、前記フィルタチャネルグループ内の前記非ゼロ重みのオフセットを決定することと、
前記チャネルグループインデックスと前記オフセットに基づいて、前記割り当てられたサブテンソルから入力値を識別することを備えていることを特徴とする態様1の方法。
[態様5]
前記階層的ビット表現は、前記第1層と前記第2層との間に第3層を更に備え、
前記第3層は、前記複数のサブフィルタのそれぞれに対して、前記サブフィルタの複数の水平面にそれぞれ対応する複数のビットベクトルを備え、
前記複数のビットベクトルのそれぞれは、前記対応する水平面が、前記複数の非ゼロ重みの少なくとも1つを備えているかどうかを示していることを特徴とする態様1の方法。
[態様6]
前記複数の非ゼロ重みの1つ以上および対応する入力値を前記割り当てられたサブテンソルから前記階層的ビット表現に基づいて前記識別することは、
前記複数の非ゼロ重みのそれぞれに対して、前記階層的ビット表現の前記第1層に基づいて、前記非ゼロ重みが位置しているフィルタチャネルグループに対応するチャネルグループインデックスを決定することと、
階層的ビット表現の前記第3層に基づいて、前記非ゼロ重みの高さインデックスと幅インデックスを決定することと、
前記階層的ビット表現の前記第2層に基づいて、前記フィルタチャネルグループ内の前記非ゼロ重みのオフセットを決定することと、
前記チャネルグループインデックス、前記高さインデックス、前記幅インデックス、および前記オフセットに基づいて、前記割り当てられたサブテンソルから入力値を識別することを備えていることを特徴とする態様5の方法。
[態様7]
前記複数のフィルタは、前記複数のサブフィルタのそれぞれが、すべてのゼロ重み、または予め決められている数の非ゼロ重みの何れかを有するように切り詰められることを特徴とする態様1の方法。
[態様8]
前記複数のプロセッサは、複数の行と列を備えているマトリックスに電気的に配置され、前記複数のプロセッサのそれぞれは、1つ以上の列方向の近隣プロセッサを有していることを特徴とする態様1の方法。
[態様9]
前記複数のプロセッサのそれぞれは、1つ以上のキーバリューペアを、その列方向の近隣プロセッサの1つの内部バッファから読み込むことを可能にされていることを特徴とする態様8の方法。
[態様10]
複数のチャネルを備えているチャネルグループから前記複数のサブテンソルの1つ以上をプロセッサの行に割り当てることと、
前記プロセッサの行のそれぞれが、前記階層的ビット表現に基づいて、1つのサブテンソルと、対応するサブフィルタとの間の前記積和演算を完了し、部分和を取得した後に、前記部分和を、前記プロセッサの行の間で回転することを更に備えていることを特徴とする態様8の方法。
[態様11]
同じ高さインデックスと同じ重みインデックスから前記複数のサブフィルタの1つ以上を、前記複数のプロセッサのそれぞれに割り当てることと、
前記複数のプロセッサのそれぞれが、前記階層的ビット表現に基づいて、前記複数のサブフィルタの前記1つ以上と、対応するサブフィルタとの間の前記積和演算を完了し、部分和を取得した後に、前記出力テンソルを構築するために、前記部分和を累積することを更に備えていることを特徴とする態様8の方法。
[態様12]
階層的重み疎畳み込み処理のためのシステムであって、1つ以上のプロセッサと、前記1つ以上のプロセッサに結合され、命令を有して構成されている1つ以上の非一時的コンピュータ読み取り可能メモリを備え、前記命令は前記システムに、
ニューラルネットワークの畳み込み層における入力テンソルと複数のフィルタを取得することと、
前記入力テンソルを複数のサブテンソルに分割すること、および前記複数のサブテンソルを複数のプロセッサに割り当てることと、
前記複数のフィルタのそれぞれに対して、前記フィルタにおける複数の非ゼロ重みの階層的ビット表現を生成することと、ここにおいて、
前記階層的ビット表現は、第1層と第2層を備え、
前記第1層は、前記フィルタにおける複数のサブフィルタに対応し、前記対応するサブフィルタは、少なくとも1つの非ゼロ重みを有しているかどうかを示す複数のビットを備え、
前記第2層は、前記フィルタにおける前記複数の非ゼロ重みに対応する複数のキーバリューペアを備え、各キーバリューペアは、前記複数の非ゼロ重みの1つを値として備え、前記複数の非ゼロ重みの前記1つのチャネル識別子をキーとして備え、
前記階層的ビット表現に基づいて、前記複数のプロセッサのそれぞれにより、前記複数の非ゼロ重みの1つ以上と、前記割り当てられたサブテンソルから対応する入力値を識別することと、
部分和を取得するために、前記1つ以上の識別された非ゼロ重みと前記対応する入力値に対して積和(MAC)演算を実行することと、
前記ニューラルネットワークの前記畳み込み層の出力テンソルを構築するために、前記複数のプロセッサのそれぞれにより取得された前記部分和を累積することを備えている動作を実行させるために前記1つ以上のプロセッサにより実行可能であることを特徴とするシステム。
[態様13]
前記複数のサブテンソルを複数のプロセッサに前記割り当てることは、
前記複数のプロセッサのそれぞれに対して、前記複数のサブテンソルの1つ以上を、前記プロセッサの内部バッファに記憶することを備えていることを特徴とする態様12のシステム。
[態様14]
前記階層的ビット表現は、前記第1層と前記第2層との間に第3層を更に備え、
前記第3層は、前記複数のサブフィルタのそれぞれに対して、前記サブフィルタの複数の水平面にそれぞれ対応する複数のビットベクトルを備え、
前記複数のビットベクトルのそれぞれは、前記対応する水平面が、前記複数の非ゼロ重みの少なくとも1つを備えているかどうかを示していることを特徴とする態様12のシステム。
[態様15]
前記複数のフィルタは、前記複数のサブフィルタのそれぞれが、すべてのゼロ重み、または予め決められている数の非ゼロ重みの何れかを有するように切り詰められることを特徴とする態様12のシステム。
[態様16]
前記複数の非ゼロ重みの1つ以上および対応する入力値を前記割り当てられたサブテンソルから前記階層的ビット表現に基づいて前記識別することは、
前記複数の非ゼロ重みのそれぞれに対して、前記階層的ビット表現の前記第1層に基づいて、前記非ゼロ重みが位置しているフィルタチャネルグループに対応するチャネルグループインデックスを決定することと、
階層的ビット表現の前記第3層に基づいて、前記非ゼロ重みの高さインデックスと幅インデックスを決定することと、
前記階層的ビット表現の前記第2層に基づいて、前記フィルタチャネルグループ内の前記非ゼロ重みのオフセットを決定することと、
前記チャネルグループインデックス、前記高さインデックス、前記幅インデックス、および前記オフセットに基づいて、前記割り当てられたサブテンソルから入力値を識別することを備えていることを特徴とする態様15のシステム。
[態様17]
階層的重み疎畳み込み処理のための非一時的コンピュータ読み取り可能記憶媒体であって、命令を有して構成され、前記命令は、1つ以上のプロセッサにより実行されると前記1つ以上のプロセッサに、
ニューラルネットワークの畳み込み層における入力テンソルと複数のフィルタを取得することと、
前記入力テンソルを複数のサブテンソルに分割すること、および前記複数のサブテンソルを複数のプロセッサに割り当てることと、
前記複数のフィルタのそれぞれに対して、前記フィルタにおける複数の非ゼロ重みの階層的ビット表現を生成することと、ここにおいて、
前記階層的ビット表現は、第1層と第2層を備え、
前記第1層は、前記フィルタにおける複数のサブフィルタに対応し、前記対応するサブフィルタは、少なくとも1つの非ゼロ重みを有しているかどうかを示す複数のビットを備え、
前記第2層は、前記フィルタにおける前記複数の非ゼロ重みに対応する複数のキーバリューペアを備え、各キーバリューペアは、前記複数の非ゼロ重みの1つを値として備え、前記複数の非ゼロ重みの前記1つのチャネル識別子をキーとして備え、
前記階層的ビット表現に基づいて、前記複数のプロセッサのそれぞれにより、前記複数の非ゼロ重みの1つ以上と、前記割り当てられたサブテンソルから対応する入力値を識別することと、
部分和を取得するために、前記1つ以上の識別された非ゼロ重みと前記対応する入力値に対して積和(MAC)演算を実行することとと、
前記ニューラルネットワークの前記畳み込み層の出力テンソルを構築するために、前記複数のプロセッサのそれぞれにより取得された前記部分和を累積することを備えている動作を実行させることを特徴とする記憶媒体。
[態様18]
前記複数のサブテンソルを複数のプロセッサに前記割り当てることは、
前記複数のプロセッサのそれぞれに対して、前記複数のサブテンソルの1つ以上を、前記プロセッサの内部バッファに記憶することを備えていることを特徴とする態様17の記憶媒体。
[態様19]
前記階層的ビット表現は、前記第1層と前記第2層との間に第3層を更に備え、
前記第3層は、前記複数のサブフィルタのそれぞれに対して、前記サブフィルタの複数の水平面にそれぞれ対応する複数のビットベクトルを備え、
前記複数のビットベクトルのそれぞれは、前記対応する水平面が、前記複数の非ゼロ重みの少なくとも1つを備えているかどうかを示していることを特徴とする態様17の記憶媒体。
[態様20]
前記複数のフィルタは、前記複数のサブフィルタのそれぞれが、すべてのゼロ重み、または予め決められている数の非ゼロ重みの何れかを有するように切り詰められることを特徴とする態様17の記憶媒体。
Claims (17)
- コンピュータにより実現される方法であって、
ニューラルネットワークの畳み込み層における入力テンソルとフィルタを取得することと、
前記フィルタを複数のサブフィルタに分割することと、
前記フィルタにおける複数の非ゼロ重みの階層的ビット表現を生成することと、ここで、前記階層的ビット表現は、第1層を備え、前記第1層は、前記フィルタにおける前記複数のサブフィルタそれぞれに対応する複数のビットを備え、前記複数のビットのそれぞれは、前記対応するサブフィルタが少なくとも1つの非ゼロ重みを有しているかどうかを示し、
前記フィルタの前記階層的ビット表現と前記入力テンソルに基づいて積和(MAC)演算を実行すること、
を備え、
前記階層的ビット表現は第2層を更に備え、前記第2層は、前記フィルタ内の前記複数の非ゼロ重みにそれぞれ対応する複数のキー値ペアを備え、各キー値ペアは、値として複数の非ゼロ重みの1つと、キーとして前記複数の非ゼロ重みの1つのチャネル識別子を備えることを特徴とする方法。 - 前記MAC演算を実行することは、
前記階層的ビット表現に基づいて、前記フィルタ内の複数の非ゼロ重みの1つまたは複数と前記入力テンソル内の対応する入力値を識別することと、
前記識別された1つまたは複数の非ゼロ重みと前記対応する入力値に対してMAC演算を実行することと、を備える請求項1の方法。 - 前記MAC演算を実行することは、
前記複数の非ゼロ重みのそれぞれについて、前記階層的ビット表現の前記第1層に基づいてチャネルグループインデックスを決定することと、ここで、前記チャネルグループインデックスは、非ゼロ重みが位置するフィルタチャネルグループに対応し、
前記階層的ビット表現の前記第2層に基づいて、前記フィルタチャネルグループ内の前記非ゼロ重みのオフセットを決定することと、
前記チャネルグループインデックスと前記オフセットに基づいて、前記入力テンソル内の入力値を識別することと、
前記識別された入力値と前記非ゼロ重みに基づいてMAC演算を実行することと、を備える請求項1に記載の方法。 - 前記階層的ビット表現が第3層を更に備え、前記第3層は、前記複数のサブフィルタのそれぞれにおける複数の水平面にそれぞれ対応する複数のビットベクトルを備え、前記複数のビットベクトルは、前記対応する水平面が前記複数の非ゼロ重みのうちの少なくとも1つを備えるかどうかを示す請求項1の方法。
- 前記MAC演算を実行することは、
前記複数の非ゼロ重みのそれぞれについて、前記階層的ビット表現の前記第1層に基づいてチャネルグループインデックスを決定することと、ここで、前記チャネルグループインデックスは、前記非ゼロ重みが位置するフィルタチャネルグループに対応し、
前記階層的ビット表現の前記第3層に基づいて、前記非ゼロ重みの高さインデックスと幅インデックスを決定することと、
前記階層的ビット表現の前記第2層に基づいて、フィルタチャネルグループ内の非ゼロ重みのオフセットを決定することと、
前記チャネルグループインデックス、前記高さインデックス、前記幅インデックス、前記オフセットに基づいて、前記入力テンソル内の入力値を識別することと、
前記識別された入力値と前記非ゼロ重みに基づいてMAC演算を実行すること、
を備える請求項4に記載の方法。 - 前記複数のサブフィルタのそれぞれが、すべてゼロの重みを有するか、または、予め決められた数の非ゼロ重みを有するように前記フィルタを切り詰めること、を更に備える請求項1に記載の方法。
- 前記MAC演算から複数の部分和を取得することと、
前記複数の部分和に基づいて前記ニューラルネットワークの前記畳み込み層の出力テンソルを構築すること、
を更に備える請求項1に記載の方法。 - 前記MAC演算は、複数のプロセッサ間で並列処理される、請求項1に記載の方法。
- 前記入力テンソルを複数のサブテンソルにセグメント化すること、ここで前記複数のサブテンソルのそれぞれおよび前記複数のサブフィルタのそれぞれが同じ数のチャネルを有する、を更に備え、
前記MAC演算を実行することは、前記複数のサブテンソルおよび前記複数のサブフィルタを複数のプロセッサに割り当てて、MAC演算を並列に実行すること、を備える請求項1に記載の方法。 - 階層的重み疎畳み込み処理のためのシステムであって、1つまたは複数のプロセッサと、前記1つまたは複数のプロセッサに結合され、命令を有して構成されている1つ以上の非一時的コンピュータ読み取り可能メモリを備え、前記命令は前記システムに、
ニューラルネットワークの畳み込み層における入力テンソルとフィルタを取得することと、
前記フィルタを複数のサブフィルタに分割することと、
前記フィルタにおける複数の非ゼロ重みの階層的ビット表現を生成することと、ここで、前記階層的ビット表現は、第1層を備え、前記第1層は、前記フィルタにおける前記複数のサブフィルタそれぞれに対応する複数のビットを備え、前記複数のビットのそれぞれは、前記対応するサブフィルタが少なくとも1つの非ゼロ重みを有しているかどうかを示し、
前記フィルタの前記階層的ビット表現と前記入力テンソルに基づいて積和(MAC)演算を実行すること、
を備える動作を実行させるために前記1つまたは複数のプロセッサにより実行可能であり、
前記階層的ビット表現は第2層を更に備え、前記第2層は、前記フィルタ内の前記複数の非ゼロ重みにそれぞれ対応する複数のキー値ペアを備え、各キー値ペアは、値として複数の非ゼロ重みの1つと、キーとして前記複数の非ゼロ重みの1つのチャネル識別子を備えることを特徴とするシステム。 - 前記実行するMAC演算は、
前記階層的ビット表現に基づいて、前記フィルタ内の複数の非ゼロ重みの1つまたは複数と前記入力テンソル内の対応する入力値を識別することと、
前記識別された1つまたは複数の非ゼロ重みと前記対応する入力値に対してMAC演算を実行すること、
を備える請求項10に記載のシステム。 - 前記MAC演算を実行することは、
前記複数の非ゼロ重みのそれぞれについて、前記階層的ビット表現の前記第1層に基づいてチャネルグループインデックスを決定することと、ここで、前記チャネルグループインデックスは、非ゼロ重みが位置するフィルタチャネルグループに対応し、
前記階層的ビット表現の前記第2層に基づいて、前記フィルタチャネルグループ内の前記非ゼロ重みのオフセットを決定することと、
前記チャネルグループインデックスと前記オフセットに基づいて、前記入力テンソル内の入力値を識別することと、
前記識別された入力値と前記非ゼロ重みに基づいてMAC演算を実行することと、を備える請求項10に記載のシステム。 - 前記階層的ビット表現が第3層を更に備え、前記第3層は、前記複数のサブフィルタのそれぞれにおける複数の水平面にそれぞれ対応する複数のビットベクトルを備え、前記複数のビットベクトルは、前記対応する水平面が前記複数の非ゼロ重みのうちの少なくとも1つを備えるかどうかを示す請求項10に記載のシステム。
- 階層的重み疎畳み込み処理のための非一時的コンピュータ読み取り可能記憶媒体であって、命令を有して構成され、前記命令は、1つまたは複数のプロセッサにより実行されると前記1つまたは複数のプロセッサに、
ニューラルネットワークの畳み込み層における入力テンソルとフィルタを取得することと、
前記フィルタを複数のサブフィルタに分割することと、
前記フィルタにおける複数の非ゼロ重みの階層的ビット表現を生成することと、ここで、前記階層的ビット表現は、第1層を備え、前記第1層は、前記フィルタにおける前記複数のサブフィルタそれぞれに対応する複数のビットを備え、前記複数のビットのそれぞれは、前記対応するサブフィルタが少なくとも1つの非ゼロ重みを有しているかどうかを示し、
前記フィルタの前記階層的ビット表現と前記入力テンソルに基づいて積和(MAC)演算を実行すること、
を備えている動作を実行させ、
前記階層的ビット表現は第2層を更に備え、前記第2層は、前記フィルタ内の前記複数の非ゼロ重みにそれぞれ対応する複数のキー値ペアを備え、各キー値ペアは、値として複数の非ゼロ重みの1つと、キーとして前記複数の非ゼロ重みの1つのチャネル識別子を備えることを特徴とする記憶媒体。 - 前記実行するMAC演算は、
前記階層的ビット表現に基づいて、前記フィルタ内の複数の非ゼロ重みの1つまたは複数と、前記入力テンソル内の対応する入力値を識別することと、
前記識別された1つまたは複数の非ゼロ重みと前記対応する入力値に対してMAC演算を実行すること、
を備える請求項14に記載の記憶媒体。 - 前記MAC演算を実行することは、
前記複数の非ゼロ重みのそれぞれについて、前記階層的ビット表現の前記第1層に基づいてチャネルグループインデックスを決定することと、ここで、前記チャネルグループインデックスは、非ゼロ重みが位置するフィルタチャネルグループに対応し、
前記階層的ビット表現の前記第2層に基づいて、前記フィルタチャネルグループ内の前記非ゼロ重みのオフセットを決定することと、
前記チャネルグループインデックスと前記オフセットに基づいて、前記入力テンソル内の入力値を識別することと、
前記識別された入力値と前記非ゼロ重みに基づいてMAC演算を実行すること、
を備える請求項14に記載の記憶媒体。 - 前記階層的ビット表現が第3層を更に備え、前記第3層は、前記複数のサブフィルタのそれぞれにおける複数の水平面にそれぞれ対応する複数のビットベクトルを備え、前記複数のビットベクトルは、前記対応する水平面が前記複数の非ゼロ重みのうちの少なくとも1つを備えるかどうかを示す請求項14に記載の記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2024033128A JP2024052988A (ja) | 2020-08-21 | 2024-03-05 | 階層的重み疎畳み込み処理のための方法とシステム |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/999,455 | 2020-08-21 | ||
US16/999,455 US10970619B1 (en) | 2020-08-21 | 2020-08-21 | Method and system for hierarchical weight-sparse convolution processing |
PCT/CN2021/114157 WO2022037705A1 (en) | 2020-08-21 | 2021-08-23 | Method and system for hierarchical weight-sparse convolution processing |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2024033128A Division JP2024052988A (ja) | 2020-08-21 | 2024-03-05 | 階層的重み疎畳み込み処理のための方法とシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023534317A JP2023534317A (ja) | 2023-08-08 |
JP7450815B2 true JP7450815B2 (ja) | 2024-03-15 |
Family
ID=75275484
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023524504A Active JP7450815B2 (ja) | 2020-08-21 | 2021-08-23 | 階層的重み疎畳み込み処理のための方法とシステム |
JP2024033128A Pending JP2024052988A (ja) | 2020-08-21 | 2024-03-05 | 階層的重み疎畳み込み処理のための方法とシステム |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2024033128A Pending JP2024052988A (ja) | 2020-08-21 | 2024-03-05 | 階層的重み疎畳み込み処理のための方法とシステム |
Country Status (7)
Country | Link |
---|---|
US (2) | US10970619B1 (ja) |
EP (1) | EP4200759A4 (ja) |
JP (2) | JP7450815B2 (ja) |
KR (2) | KR20240023241A (ja) |
CN (1) | CN115485695A (ja) |
TW (1) | TWI806134B (ja) |
WO (1) | WO2022037705A1 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12034015B2 (en) | 2018-05-25 | 2024-07-09 | Meta Platforms Technologies, Llc | Programmable pixel array |
US11888002B2 (en) | 2018-12-17 | 2024-01-30 | Meta Platforms Technologies, Llc | Dynamically programmable image sensor |
US11962928B2 (en) | 2018-12-17 | 2024-04-16 | Meta Platforms Technologies, Llc | Programmable pixel array |
US12108141B2 (en) | 2019-08-05 | 2024-10-01 | Meta Platforms Technologies, Llc | Dynamically programmable image sensor |
US11935291B2 (en) | 2019-10-30 | 2024-03-19 | Meta Platforms Technologies, Llc | Distributed sensor system |
US11948089B2 (en) | 2019-11-07 | 2024-04-02 | Meta Platforms Technologies, Llc | Sparse image sensing and processing |
US11825228B2 (en) | 2020-05-20 | 2023-11-21 | Meta Platforms Technologies, Llc | Programmable pixel array having multiple power domains |
US10970619B1 (en) * | 2020-08-21 | 2021-04-06 | Moffett Technologies Co., Limited | Method and system for hierarchical weight-sparse convolution processing |
US12075175B1 (en) | 2020-09-08 | 2024-08-27 | Meta Platforms Technologies, Llc | Programmable smart sensor with adaptive readout |
US11556757B1 (en) * | 2020-12-10 | 2023-01-17 | Neuralmagic Ltd. | System and method of executing deep tensor columns in neural networks |
TW202321991A (zh) * | 2021-06-22 | 2023-06-01 | 美商元平台技術有限公司 | 稀疏影像處理 |
US11960982B1 (en) * | 2021-10-21 | 2024-04-16 | Neuralmagic, Inc. | System and method of determining and executing deep tensor columns in neural networks |
CN114218152B (zh) * | 2021-12-06 | 2023-08-15 | 海飞科(南京)信息技术有限公司 | 流处理方法、处理电路和电子设备 |
WO2023141939A1 (zh) * | 2022-01-28 | 2023-08-03 | 华为技术有限公司 | 处理计算任务方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180336462A1 (en) | 2017-05-16 | 2018-11-22 | Samsung Electronics Co., Ltd. | Optimized neural network input stride method and apparatus |
US20190347536A1 (en) | 2017-10-06 | 2019-11-14 | DeepCube LTD. | System and method for compact and efficient sparse neural networks |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160358069A1 (en) | 2015-06-03 | 2016-12-08 | Samsung Electronics Co., Ltd. | Neural network suppression |
US20180046898A1 (en) * | 2016-08-11 | 2018-02-15 | Vivante Corporation | Zero Coefficient Skipping Convolution Neural Network Engine |
WO2018184222A1 (en) * | 2017-04-07 | 2018-10-11 | Intel Corporation | Methods and systems using improved training and learning for deep neural networks |
US10726514B2 (en) * | 2017-04-28 | 2020-07-28 | Intel Corporation | Compute optimizations for low precision machine learning operations |
KR20190044878A (ko) * | 2017-10-23 | 2019-05-02 | 삼성전자주식회사 | 뉴럴 네트워크에서 파라미터를 처리하는 방법 및 장치 |
US20190251436A1 (en) * | 2018-02-14 | 2019-08-15 | Samsung Electronics Co., Ltd. | High-speed processing method of neural network and apparatus using the high-speed processing method |
US11645529B2 (en) * | 2018-05-01 | 2023-05-09 | Hewlett Packard Enterprise Development Lp | Sparsifying neural network models |
KR20200076461A (ko) * | 2018-12-19 | 2020-06-29 | 삼성전자주식회사 | 중첩된 비트 표현 기반의 뉴럴 네트워크 처리 방법 및 장치 |
KR102178932B1 (ko) * | 2018-12-19 | 2020-11-18 | 고려대학교 산학협력단 | 출력 특징 맵의 0에 대한 연산을 스킵할 수 있는 합성곱 신경망의 연산 장치 및 그 동작 방법 |
KR20200091623A (ko) * | 2019-01-23 | 2020-07-31 | 삼성전자주식회사 | 위노그라드 변환에 기반한 뉴럴 네트워크의 컨볼루션 연산을 수행하는 방법 및 장치 |
CN109857744B (zh) * | 2019-02-13 | 2020-03-20 | 上海燧原智能科技有限公司 | 稀疏张量计算方法、装置、设备及存储介质 |
US10970619B1 (en) * | 2020-08-21 | 2021-04-06 | Moffett Technologies Co., Limited | Method and system for hierarchical weight-sparse convolution processing |
-
2020
- 2020-08-21 US US16/999,455 patent/US10970619B1/en active Active
-
2021
- 2021-04-05 US US17/222,623 patent/US11144823B1/en active Active
- 2021-08-23 EP EP21857792.2A patent/EP4200759A4/en active Pending
- 2021-08-23 KR KR1020247004695A patent/KR20240023241A/ko active Application Filing
- 2021-08-23 WO PCT/CN2021/114157 patent/WO2022037705A1/en unknown
- 2021-08-23 KR KR1020237009557A patent/KR102636710B1/ko active IP Right Grant
- 2021-08-23 CN CN202180028638.4A patent/CN115485695A/zh active Pending
- 2021-08-23 JP JP2023524504A patent/JP7450815B2/ja active Active
- 2021-08-23 TW TW110131140A patent/TWI806134B/zh active
-
2024
- 2024-03-05 JP JP2024033128A patent/JP2024052988A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180336462A1 (en) | 2017-05-16 | 2018-11-22 | Samsung Electronics Co., Ltd. | Optimized neural network input stride method and apparatus |
US20190347536A1 (en) | 2017-10-06 | 2019-11-14 | DeepCube LTD. | System and method for compact and efficient sparse neural networks |
Non-Patent Citations (1)
Title |
---|
LI, J. et al.,SqueezeFlow: A Sparse CNN Accelerator Exploiting Concise Convolution Rules,IEEE Transactions on Computers,IEEE,2019年06月24日,Volume 68, Issue 11,pp. 1663-1677,[online], [retrieved on 2023-09-13]. Retrieved from <https://ieeexplore.ieee.org/document/8744254> <doi: 10.1109/TC.2019.2924215> |
Also Published As
Publication number | Publication date |
---|---|
KR102636710B1 (ko) | 2024-02-14 |
TW202331599A (zh) | 2023-08-01 |
EP4200759A1 (en) | 2023-06-28 |
US10970619B1 (en) | 2021-04-06 |
EP4200759A4 (en) | 2024-04-03 |
JP2023534317A (ja) | 2023-08-08 |
CN115485695A (zh) | 2022-12-16 |
KR20230078652A (ko) | 2023-06-02 |
US11144823B1 (en) | 2021-10-12 |
TW202215304A (zh) | 2022-04-16 |
KR20240023241A (ko) | 2024-02-20 |
WO2022037705A1 (en) | 2022-02-24 |
TWI806134B (zh) | 2023-06-21 |
JP2024052988A (ja) | 2024-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7450815B2 (ja) | 階層的重み疎畳み込み処理のための方法とシステム | |
US11816559B2 (en) | Dilated convolution using systolic array | |
US11836610B2 (en) | Concurrent training of functional subnetworks of a neural network | |
WO2022002157A1 (en) | Method and system for balanced-weight sparse convolution processing | |
WO2022095984A1 (en) | Method and system for convolution with workload-balanced activation sparsity | |
CN118043821A (zh) | 混合稀疏压缩 | |
US11636569B1 (en) | Matrix transpose hardware acceleration | |
CN116261736B (zh) | 用于双稀疏卷积处理和并行化的方法和系统 | |
CN111860825A (zh) | 一种数据处理方法及相关产品 | |
US12125124B1 (en) | Matrix transpose hardware acceleration | |
TW202416219A (zh) | 支援機器學習加速的記憶體儲存格式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230420 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230420 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20230420 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230919 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231109 |
|
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: 20240206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240305 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7450815 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |