JP6865847B2 - 処理装置、チップ、電子設備及び方法 - Google Patents
処理装置、チップ、電子設備及び方法 Download PDFInfo
- Publication number
- JP6865847B2 JP6865847B2 JP2019549467A JP2019549467A JP6865847B2 JP 6865847 B2 JP6865847 B2 JP 6865847B2 JP 2019549467 A JP2019549467 A JP 2019549467A JP 2019549467 A JP2019549467 A JP 2019549467A JP 6865847 B2 JP6865847 B2 JP 6865847B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- calculation
- bit
- multiplier
- input
- 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
- 238000012545 processing Methods 0.000 title claims description 136
- 238000000034 method Methods 0.000 title claims description 117
- 238000004364 calculation method Methods 0.000 claims description 278
- 238000013528 artificial neural network Methods 0.000 claims description 123
- 241001442055 Vipera berus Species 0.000 claims description 95
- 230000008569 process Effects 0.000 claims description 35
- 239000013598 vector Substances 0.000 claims description 34
- 239000000654 additive Substances 0.000 claims description 17
- 230000000996 additive effect Effects 0.000 claims description 17
- 210000000225 synapse Anatomy 0.000 claims description 12
- 230000000946 synaptic effect Effects 0.000 claims description 11
- 230000004927 fusion Effects 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 6
- 230000007423 decrease Effects 0.000 claims description 5
- 210000002569 neuron Anatomy 0.000 claims description 5
- 238000011176 pooling Methods 0.000 claims description 2
- 230000000593 degrading effect Effects 0.000 claims 1
- 230000009466 transformation Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 64
- 239000002131 composite material Substances 0.000 description 23
- 150000001875 compounds Chemical class 0.000 description 15
- 238000004458 analytical method Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 9
- 238000013135 deep learning Methods 0.000 description 7
- 238000003672 processing method Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 6
- 230000001186 cumulative effect Effects 0.000 description 5
- 238000009825 accumulation Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000001502 supplementing effect Effects 0.000 description 2
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 210000003061 neural cell Anatomy 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- 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
-
- 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
-
- 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/46—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using electromechanical counter-type accumulators
-
- 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/50—Adding; Subtracting
-
- 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/52—Multiplying; Dividing
-
- 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/527—Multiplying only in serial-parallel fashion, i.e. one operand being entered serially and the other in parallel
-
- 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
-
- 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
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- 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/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
- 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
- G06N3/065—Analogue means
-
- 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)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
- Image Analysis (AREA)
Description
ニューラルネットワークの演算予定データ、中間演算結果、最終演算結果、キャッシュ予定データを含むデータの記憶に用いられるメモリと、
前記演算予定データ、中間演算結果、最終演算結果及び/又はキャッシュ予定データの幅の調節に用いられるデータ幅調節回路と、
ニューラルネットワークの演算予定データに対する演算に用いられる演算回路と、
メモリ、データ幅調節回路、演算回路の制御に用いられる制御回路と、を含む。
制御回路は、制御命令を生成してメモリ、データ幅調節回路と演算回路に伝送し、
メモリは、受信した制御命令に基づいて演算回路にニューラルネットワークの演算予定データを入力し、
データ幅調節回路は、受信した制御命令に基づいてニューラルネットワークの演算予定データの幅を調節し、
演算回路は受信した制御命令に基づいて、第1演算モジュール中の対応する類型の乗法器と加法器回路を選択し、
演算回路は、入力された演算予定データとニューラルネットワークのパラメータ及び制御命令に基づいて、計算ビット幅が異なるニューラルネットワークの演算予定データに対して演算を行う。
入力データの取得;
オフラインモデルの取得、或いは、入力データに基づいてオフラインモデルを確定し、オフラインモデルに基づいて演算命令を確定し、次の計算で呼出できるようにする;
前記演算命令を呼び出して、処理予定データに対する演算を行って演算結果を求めて出力する。
制御命令に基づいて操作データを読み出し、読み出した操作データのアドレスに基づいて操作データの類型を判断し、操作データに対して演算を行い;演算結果を対応する類型のアドレスに記憶させる。
S1401制御回路が制御命令を生成し、メモリ、データ幅調節回路、演算回路に伝送する。
S1402メモリは受信した制御命令に基づいて、演算回路にニューラルネットワークの演算予定データを入力する。
S1403データ幅調節回路は実際の要求に応じて演算予定データ、中間演算結果、最終演算結果及び/又はキャッシュ予定データの幅を調節する。
S1404演算回路は受信した制御命令に基づいて、対応する類型の乗法器と加法器回路、ビットシリアル演算器を選択する。
S1405演算回路は入力されるデータとニューラルネットワークのパラメータ及び制御命令に基づいて、計算ビット幅が異なるニューラルネットワークの演算予定データに対して演算を行う。
S2400:制御回路が制御命令を生成し、メモリと演算回路に伝送する。
S2401:メモリは受信した制御命令に基づいて、演算回路にニューラルネットワークの演算予定データを入力する。
S2402:演算回路は受信した制御命令に基づいて、第1演算モジュールの中にある対応する類型の乗法器と加法器回路を選択する。
S2403:演算回路は入力される演算予定データとニューラルネットワークのパラメータ及び制御命令に基づいて、計算ビット幅が異なるニューラルネットワークの演算予定データに対して演算を行う。
ステップ1:入力データを取得する。
ステップ2:取得、または、入力データに基づいてオフラインモデルを確定し、オフラインモデルに基づいて演算命令を確定し、次の計算のために呼び出す。
ステップ3:前記演算命令を呼び出し、処理予定データに対する演算を行い、演算結果を取得して出力する。
ステップ11:入力データを取得する。
ステップ12:ネットワークストラクチャーとウェイと値に基づいてオフラインモデルを構築する。
ステップ13:オフラインモデルを解析して演算命令を取得しながらキャッシュ記憶させ、後の計算時に呼び出す。
ステップ14:演算命令に基づいて、処理予定データに対する演算を行い演算結果を取得し、出力させる。
ステップ21:入力データを取得する。
ステップ22:オフラインモデルを解析し、演算命令を読み出してキャッシュ記憶させ、後の計算時に呼び出す。
ステップ23:演算命令に基づいて処理予定データに対する演算を行い演算結果を取得し、出力させる。
ステップ31:入力データを取得する。
ステップ32:キャッシュ記憶されている演算命令を呼び出して、処理予定データに対する演算を行い演算結果を取得して出力する。
ある実施例において、ニューラルネットワークプロセッサは、処理予定データをキャッシュ記憶させるのに利用するデータキャッシュユニットもある。処理予定データはニューラルネットワークプロセッサに入った後、このデータキャッシュユニットに一時的に記憶させ、後に演算命令と合わせて再度演算を行う。
入力モジュール:入力データの取得に用いられ、この入力データは、処理予定データ、ネットワークストラクチャーとウェイト値を含み、または、この入力データは処理予定データとオフラインモデルデータを含む。
モデル生成モジュール:入力されたネットワークストラクチャーとウェイトデータに基づいてオフラインモデルの構築するに用いられる。
ニューラルネットワーク演算モジュール:入力モジュールにあるオフラインモデルデータあるいはモデル生成モジュールに構築されているオフラインモデルに基づいて演算命令を生成しかつキャッシュ記憶させ、演算命令に基づいて処理予定データに対して演算を行って演算結果の取得に用いられる。
出力モジュール:前記演算結果の出力に用いられる。
制御モジュール:入力データの類型を検査し且つ次の操作の実行に用いられる;
入力データに処理予定データ、ネットワークストラクチャーとウェイト値が含まれているとき、入力モジュールがネットワークストラクチャーとウェイト値をモデル生成モジュールに入力してオフラインモデルを構築するよう制御し、且つ、ニューラルネットワーク演算モジュールがモデル生成モジュールが入力するオフラインモデルに基づいて入力モジュールが入力する処理予定データに対する演算を行うよう制御する。
入力データに処理予定データとオフラインモデルが含まれているとき、入力モジュールが処理予定データとオフラインモデルをニューラルネットワーク演算モジュールに入力するよう制御し、且つ、オフラインモデルがオフラインモデルに基づいて演算命令を生成しながらキャッシュさせ、演算命令に基づいて処理予定データに対する演算を行うよう制御する。
入力データに処理予定データのみあるとき、入力モジュールが処理予定データをニューラルネットワーク演算モジュールに入力するよう制御し、且つ、ニューラルネットワーク演算モジュールがキャッシュ記憶されている演算命令を呼び出して処理予定データに対する演算を行うよう制御する。
モデル解析ユニットは、オフラインモデルに基づいて演算命令の生成に用いられ、
ニューラルネットワークプロセッサは、次の段階の計算で呼出すために用いられる演算命令をキャッシュ記憶させ、あるいは入力データの中に処理予定データのみ含まれているときにキャッシュ記憶されている演算命令を呼び出し、且つ、演算命令に基づいて処理予定データに対する演算を行って演算結果の取得に用いられる。
1、入力モジュールからの入力データがネットワークストラクチャー、ウェイト値、処理予定データのとき、制御モジュールは入力モジュールがネットワークストラクチャーとウェイト値データをモデル生成モジュールに伝送し、処理予定データをモデル解析モジュールに伝送するよう制御する。制御モデルはモデル生成モジュールが具体的なネットワークストラクチャーおよび相応するウェイト値に基づいてオフラインモデル(オフラインモデルは既存の設定構造によって定義するテキストファイルでもよく、ニューラルネットワークのなかにある各計算ノードの計算属性および計算ノード間の連結関係などの情報を含んでもいい、例えば、相応するネットワークストラクチャーおよびウェイト値に基づいて同オフラインモデルを構築してもよい)を生成し、同オフラインモデルをモデル解析ユニットに伝送するよう制御する。制御モジュールは、モデル解析ユニットが受けたオフラインモデルを解析し、ニューラルネットワークプロセッサが識別できる演算命令を得て(つまり、前記オフラインモデルのテキストファイルに基づいて相応するネットワーク演算命令をマッピングし、ネットワークコンパイラー操作を必要としない)演算命令と処理予定データをニューラルネットワークプロセッサに送るよう制御する。ニューラルネットワークプロセッサは受信した演算命令に従って処理予定データに対する演算を行って演算結果を得て、この演算結果を出力モジュールに伝送して出力させるようにする。
図26に示したように本実施例における演算方法は、次のようなステップを含む。
入力データに処理予定データ、ネットワーク構造、ウェイト値データが含まれているとき、次のようなステップを実行する。
ステップ11、入力データを得る。
ステップ12、ネットワーク構造とウェイト値データに準じてオフラインモデルを構築する。
ステップ13、オフラインモデルを解析して演算命令を得て且つキャッシュ記憶させ、次の計算で呼び出せるようにする。
ステップ14、演算命令に従って処理予定データに対する演算を行ってニューラルネットワーク演算結果を得て出力させる。
ステップ21、入力データを得る。
ステップ22、オフラインモデルを解析し、演算命令を得て且つキャッシュ記憶させ、次の計算で呼び出すことに用いられる。
ステップ23、演算命令に従って処理予定データに対する演算を行い、ニューラルネットワーク結果を得て出力するようにする。
ステップ31、入力データを得る。
ステップ32、キャッシュ記憶されている演算命令を呼び出して処理予定データに対する演算を行い、ニューラルネットワーク演算結果を得て出力するようにする。
前述の入力モジュール2701はネットワーク構造、ウェイト値データ、処理予定データの組合あるいはオフラインモデルと処理予定データの組合を入力することに用いられる。入力がネットワーク構造、ウェイト値データ、処理予定データの場合、ネットワーク構造とウェイト値データをモデル生成モジュール2702に送り次の演算を実行することに用いられるオフラインモデルを生成する。入力がオフラインモデルと処理予定データであるとき、オフラインモデルと処理予定データを直接モデル解析ユニット2706に送って次の演算を実行する。
前述の出力モジュール2704は特定のネットワーク構造と処理予定データセットに基づいて生成した確定的な演算データの出力に用いられる。ここで、出力データはニューラルネットワークプロセッサ2707によって演算されて得られる。
前述のモデル生成モジュール2702は入ってくるネットワーク構造パラメータとウェイト値データにしたがって下の階で利用できるオフラインモデルの生成に用いられる。
前述のモデル解析ユニット2706は入ってくるオフラインモデルを解析し、ニューラルネットワークプロセッサ2707に直接伝送できる演算命令を生成すると同時に入力モジュール2701が入れてくれる処理予定データをニューラルネットワークプロセッサ2707に送ることに用いられる。
前述のニューラルネットワークプロセッサ2707は入ってくる演算命令と処理予定データにしたがって演算を行い、確定的な演算結果を得て出力モジュール2704に伝送することに用いられる。命令キャッシュ記憶ユニットとデータキャッシュ記憶部が含まれている。
入力データで処理予定データ、ネットワーク構造とウェイト値データが含まれているとき、入力モジュール2701がネットワーク構造とウェイト値データをモデル生成モジュール2702に入力してオフラインモデルを構築するように制御し、ニューラルネットワーク演算モジュール2703がモデル生成モジュール2702が入力するオフラインモデルに基づいて入力モジュール2701が入力する処理予定データに対する演算を行うように制御する。
入力データに処理予定データのみ含まれているとき、入力モジュール2701が処理予定データをニューラルネットワーク演算モジュール2703に入力するよう制御し、ニューラルネットワーク演算モジュール2703がキャッシュ記憶されている演算命令を呼び出し、処理予定データに対するニューラルネットワーク演算を行うように制御する。
S3101:類型の異なるデータを異なるアドレスに記憶させる。
記憶モジュールは浮動小数点データと固定小数点データを相異なるアドレスに対応するスペースに記憶させる。例えば相異なるRAMアドレスあるいは相異なるレジスタ番号をあげられる。
S3102:複合スカラ命令を制御信号で解読する。
制御装置モジュールは記憶モジュールに入出力(IO)命令を送信して記憶モジュールから複合スカラ命令を読み取り、且つローカル命令キューを記憶させる。制御装置モジュールはローカル命令キューから複合スカラ命令を読み取りながら制御信号で解読する。
S3103:制御信号に基づいて操作データを読み取り、且つ読み取る操作データのアドレスにしたがって操作データの類型を判断し、操作データに対する演算を行う。
演算装置モジュールは制御装置モジュールから来る制御信号を受信した後、オペランドのアドレスフィールドを読み取り、読み取ったのが浮動小数点類型のデータか固定小数点累計のデータ化を判断する。もし、オペランドが即値であればデータ類型標識ビットによってオペランド類型を判断して計算する。もし、オペランドがRAMあるいはレジスタからきたとすればRAMアドレスあるいはレジスタ番号によってオペランド類型を判断し、記憶モジュールからオペランドを読み取り、且つ対応する演算を行う。
S3104:演算結果を対応する類型のアドレスに記憶させる。
制御装置モジュールが演算装置モジュールにIO命令を送信し、演算装置モジュールは演算結果を記憶モジュールあるいは入出力モジュールに伝送する。
S3801、命令フェッチモジュールは命令メモリから計数命令を読み取り、且つ、この計数命令を解読モジュールに伝送する。
S3802、解読モジュールは計数命令を解読し、且つ、計数命令を命令キューメモリに伝送する。
S3803、計数命令は命令キューメモリで待っていて命令キャッシュ記憶ユニットと従属関係処理ユニットにスペースがあれば、命令キャッシュ記憶ユニットと従属関係処理ユニットに送信される。
S3804、計数命令が計数キューメモリから従属関係処理ユニットに伝送される過程で、計数命令はレジスタ部から記憶部にある入力データの記憶アドレスを読み取り、従属関係処理ユニットはこの命令とまだ実行が終わってない前の命令とデータ上従属関係にあるかどうかを分析する。この計数命令は従属関係処理ユニットの記憶キューでそれとまだ実行が終わってない前の命令とデータ上従属関係がないときまで待たなければならない。
S3805、従属関係がないと、この計数命令は計数部に伝送される。計数部は記憶アドレスに基づいて記憶部から入力データを読み取り、入力データの中で与えられた条件を満たす元素の個数を統計する。
S3806、計数が終わった後、計数結果は命令キャッシュ記憶ユニットを通じて記憶部に記入され、命令キャッシュ記憶ユニットはこの計数命令を記憶部にマッピングする。
ある実施例では、チップパッケージ構造を開示し、それは前述のチップを含む。
ある実施例では、ボードカードを開示し、それは前述のチップパッケージ構造を含む。
ある実施例では、電子デバイスを開示し、それは前述のボードカードを含む。
Claims (19)
- ニューラルネットワークの演算予定データ、中間演算結果、最終演算結果又はキャッシュ予定データの少なくとも1つを含むデータの記憶に用いられるメモリと、
前記演算予定データ、中間演算結果、最終演算結果及び/又はキャッシュ予定データの幅の調節に用いられるデータ幅調節回路と、
ニューラルネットワークの演算予定データに対する演算に用いられる演算回路と、
メモリ、データ幅調節回路又は演算回路の少なくとも1つの制御に用いられる制御回路と、を含み、
前記演算回路は、
ビット幅が異なるデータの演算を行う第1演算モジュールを含み、
前記第1演算モジュールは、ニューラルネットワーク中のビット幅が異なるデータの演算を行う加法器回路と乗法器を含み、
前記第1演算モジュールは、シフト、レジスタ及び複数の加法器を含むビットシリアル加算ツリーを更に含み、各加法器はa端子とb端子を含み、前記ビットシリアル加算ツリーはX+1層構造を含み、Xは正の整数であり、当該ビットシリアル加算ツリーの運行方式としては、
各レジスタと加法器の中にあるキャリー出力端子Cinは0として初期化され、各演算予定データの最低nビットは各々第1層の加法器にあるa端子又はb端子に入力され、第1層にある各加法器ではa端子又はb端子に入力された演算予定データの最低nビットに対し加法演算が完成され、確定した結果値sをハイレベル加法器のa又はb端子に伝送し、各加法器が取得したキャリー値Coutは同層の加法器のキャリー入力Cinに伝達され、次回に入力される演算予定データと加法演算を行い、
上の層の加法器の操作は、前の層の加法器を参考し、入力されたデータに加法演算を行い、その結果を更に上の層に送り、キャリーを同層の加法器にリターンし、第X層に到達するまで行い、第X層の加法器はシフト装置を経て演算結果をシフトし、レジスタから送ってくる元の結果と加法演算をした後にレジスタに保存し、その後、次回のクロックを待って、次に低い演算データのnビットを選択し、ビットシリアル加算ツリーに伝送して相応する演算を行う、
ことを特徴とする計算ビット幅の動的な配置が可能な処理装置。 - ニューラルネットワークの演算予定データに対する演算に用いられる前記演算回路は、
演算データに基づいて演算回路の乗法器と加法器回路の類型を確定して演算を行うことを含む、
ことを特徴とする請求項1に記載の装置。 - 前記メモリは、
ニューラルネットワークの演算予定データを記憶する入力記憶モジュールと、
中間演算結果と最終演算結果を記憶する出力記憶モジュールと、
データのキャッシュを記憶するキャッシュモジュールと、を含み、
ここで、前記入力記憶モジュールは、
ニューロンのパラメータを記憶するニューロン記憶モジュールと、
シナプスのパラメータを記憶するシナプス記憶モジュールと、を含む、
ことを特徴とする請求項1又は請求項2に記載の装置。 - 前記演算回路は複数の演算モジュールを含み、前記シナプス記憶モジュールは複数のシナプス記憶サブモジュールを含み、前記演算モジュールはそれぞれ一つ、又は、複数のシナプス記憶サブモジュールに対応するように連結される、
ことを特徴とする請求項3に記載の装置。 - 乗法器はビットシリアル演算器を含み、
前記ビットシリアル演算器は、
乗数をビット幅が低い複数のデータに分け、各々被乗数と乗算した後に累積する演算に用いられるベース乗法器と、
乗数及び/又は被乗数をスパース方式で示す状態で乗法演算を行うために用いられるスパース乗法器と、
ベクトル間の乗法演算に用いられる融合ベクトル乗法器と、の中の少なくとも一つを含み、
前記ベース乗法器は第1ベース乗法器、第2ベース乗法器又はスパース乗法器であり、
前記第1ベース乗法器は、
Nビット幅を持つ乗数の記憶に用いられる乗法記憶ユニットと、
毎回乗数の低いNビットのシフト(1<n≦N)に用いられ、シフト操作をした後の乗数を再度乗法記憶ユニットに伝送する第1シフトレジスタと、
毎回乗数の低いNビットと被乗数を入力し、乗数の低いNビットの中で各ビットの値を各々乗数とAND演算を行ってAND演算結果の取得に用いられる入力選択回路と、
AND演算結果を入力し且つシフトするのに用いられる第2シフトレジスタと、
シフトしたデータを入力し、互いに加算するのに用いられる加法器と、
加法器からの加算結果を記憶し、前記加算結果を再度加法器に入力して次回の加算に参加させるのに用いられる結果レジスタと、を含み、
前記第2ベース乗法器は、
Nビット幅を持つ乗数の記憶に用いられる乗法記憶ユニットと、
毎回乗数の低いNビットのシフトに利用され、シフト操作をした乗数を再度乗法記憶ユニットに伝送する第1シフトレジスタと、
シフトした乗数を一時記憶するバックアップレジスタと、
毎回乗数の低いNビットと被乗数を入力し、乗数の低いNビットの中で各ビットの値を各々乗数とAND演算を行ってAND演算結果の取得に用いられる入力選択回路と、
AND演算結果を入力し且つシフトするのに用いられる第2シフトレジスタと、
被乗数をシフトし、乗数の低いmビットをシフトして除去するのに用いられる第3のシフトレジスタと、
シフトしたデータを入力し互いに加算するのに用いられる加法器と、
加法器からの加算結果を記憶し、再度加法器に入力して次回の加算に参加させるのに用いられる結果レジスタと、を含み、
第1ベース乗法器又は第2ベース乗法器は、乗法記憶ユニットの現在の乗数値がすべて0かどうかを判断する判断回路を更に含み、
前記スパース乗法器は、
Nビット幅を持ち、スパース方式で表示される乗数を記憶する乗法記憶ユニットと、
毎回低いビットから乗数値が1のビットを選択する入力選択回路と、
毎回ビット数が1以下の各低いビットをシフトし、再度、乗法記憶ユニットに伝送して次回の乗数にする第1シフトレジスタと、
ビット数が1のビットにしたがってシフト操作を行う第2シフトレジスタと、
シフトした後のデータを入力して加算する加法器と、
加法器の加算結果を記憶する結果レジスタと、
数値が1のビットにしたがって結果レジスタの内部結果をシフトした後、再度加法器に入力して次回の演算に参加する第3シフトレジスタと、
乗法記憶ユニットにある現在の乗数値が0かどうかを判断する判断回路と、を含む、
ことを特徴とする請求項2に記載の装置。 - 前記ビットシリアル演算器は、
演算予定データを入力し、一ビット又は複数ビットのデータに対する乗算及び/又は加法演算を行って演算結果を出力する演算ユニットと、
演算結果を入力して記憶するメモリユニットと、
演算結果を入力して、データシフト、設定されたルールに従ってデータビット幅を拡張/減少させ、特定の設定されたルールに従ってデータの某一ビット又は複数ビットに対して操作を行う処理ユニットと、を含む、
ことを特徴とする請求項5に記載の装置。 - 請求項1乃至請求項7のいずれか1項に記載の装置が含まれている、
ことを特徴とするチップ。 - 請求項8に記載のチップを含む、
ことを特徴とする電子設備。 - 請求項1乃至請求項7のいずれか1項に記載の装置を使用する方法であって、
制御回路は、制御命令を生成してメモリ、データ幅調節回路と演算回路に伝送し、
メモリは、受信した制御命令に基づいて演算回路にニューラルネットワークの演算予定データを入力し、
データ幅調節回路は、受信した制御命令に基づいてニューラルネットワークの演算予定データの幅を調節し、
演算回路は、入力された演算予定データとニューラルネットワークのパラメータ及び制御命令に基づいて、計算ビット幅が異なるニューラルネットワークの演算予定データに対して演算を行い、演算結果をメモリにリターンさせ、
第1演算モジュールを利用してビット幅が異なるデータの演算を行うことを更に含み、
加法器および乗法器を利用してニューラルネットワークの中のビット幅が異なるデータの演算を加速化する、ことを含み、
計算ビット幅が異なるニューラルネットワークの演算予定データに対する演算は、ビットシリアル加算ツリーを利用してビット幅が異なるデータに対する演算を含み、
M個の演算予定データを設定し、ここで、最大ビット幅はNであり、M,Nはすべて正の整数であり、Nビット幅のデータが不足する場合、同ビット数をNビットまで補充し、
ビットシリアル加算ツリーにはx+1層を含み、ここで、xは正の整数であり、第一層から第x層までの加法器はビット数字に対する加法演算nを行い、n≧1であり、第X+1層の加法器はNビットより少ない数字に対する加法演算を行い、
まず、レジスタ、各加法器の中にあるキャリー出力端子Cinを0に初期化し、各演算予定データの最下位のnビットを取って、各々第1層にある加法器のa端子又はb端子に入力し、各加法器ではa端子又はb端子に入力された演算予定データの最下位のnビットに対する加法演算を行い、取得した結果値sを1層高い層にある加法器のa又はb端子に伝送し、取得したキャリー値Coutを同層にある加法器のキャリーポータルCinに伝送し、次回のクロックを待って、入力された演算予定データと加法演算を行い、
上の一層にある加法器の操作も類似し、入力されたデータに対して加法演算を行った後、演算結果を再度、一層高い層に伝達し、キャリーを同層の加法器に伝達し、第x層に到達するまで第x層の加法器は演算結果をシフトし、レジスタから送られる元の結果と加法演算を行った後にレジスタに記憶させ、その後、演算予定データは順次に低いnビットを選択してビットシリアル加算ツリーに送って相応する演算を行う、ことを特徴とする装置を使用する方法。 - ニューラルネットワークの演算予定データ幅の調節は、
精度を落とさない状態で、データのビット幅に対して増加、減少若しくは不変にする方式、
精度損失の設定が可能な状態で、データのビット幅に対して増加、減少若しくは不変にする方式、又は
指定の変換又は演算要求に基づいて、データのビット幅に対して増加、減少若しくは不変にする方式の中で少なくとも一つを含む、
ことを特徴とする請求項10に記載の方法。 - 前記メモリは、
ニューラルネットワークの演算予定データを記憶する入力記憶モジュールと、
中間演算結果と最終演算結果を記憶する出力記憶モジュールと、
データのキャッシュを記憶するキャッシュモジュールと、を含み、
前記入力記憶モジュールは、
ニューロンパラメータを記憶するニューロン記憶モジュールと、
シナプスパラメータを記憶する記憶モジュールと、を含み、
前記出力記憶モジュールは、
中間演算結果を記憶する中間演算結果記憶サブモジュールと、
最終演算結果を記憶する最終演算結果記憶サブモジュールと、を含む、
ことを特徴とする請求項10に記載の方法。 - 複数の演算モジュールを設定し、一つ又は複数のシナプスモジュールとそれぞれ対応させ、演算するとき、入力記憶モジュールはすべての演算モジュールに入力データを伝送し、シナプス記憶モジュールは対応する演算モジュールにシナプスデータを伝送し、演算モジュールは演算後、結果を出力記憶モジュールに記憶させる、
ことを特徴とする請求項10に記載の方法。 - ビットシリアル加算ツリーを利用してビット幅が異なるデータの演算を行うとき、
第1層の加法器が演算を行った後、第2番目の演算予定のnビットデータを入力すること、を更に含む、
ことを特徴とする請求項10に記載の方法。 - ビットシリアル加算ツリーを利用してビット幅が異なるデータの演算をするとき、
前記加法器は同加法器に演算予定データを入力させるa端子又はb端子及びキャリーポータルCin端子がすべて0の状態で、演算過程から遮断されること、を更に含む、
ことを特徴とする請求項10に記載の方法。 - 計算ビット幅が異なるニューラルネットワークの演算予定データに対する演算は、ビットシリアル演算器を利用した演算を含み、
ここで、
演算ユニットを利用して演算予定データを入力し、一ビット又は複数ビットのデータに対する乗算及び/又は加法演算を行って演算結果を出力し、
メモリユニットを利用して演算結果を入力して記憶させ、
処理ユニットを利用して演算結果を入力し、データのシフト、設定されたルールに基づくデータのビット幅の拡大又は縮小、及び特定設定ルールに基づくデータの一ビットまたは複数ビットに対する操作に用いられ、
或いは、
前記計算ビット幅が異なるニューラルネットワークの演算予定データに対する演算は、第1ベース乗法器を利用したビット幅が異なるデータの演算を含み、
乗法記憶ユニットを利用して乗数を記憶させ、前記乗数のビット幅はNビットであり、
第1シフトレジスタを利用して、毎回乗数の低いNビットをシフトし、シフト操作を行った後の乗数を再度乗法記憶ユニットに送り、ここで1<n≦Nであり、
入力選択回路を利用して、毎回乗数の低いnビットと被乗数を入力させ、乗数の低いnビットの中にある各ビットの値は各々乗数とAND演算を行ってAND演算結果を取得し、
第2シフトレジスタを利用して、AND演算結果を入力し且つシフトを行い、
加法器を利用してシフトしたデータを入力し且つ加算し、
結果レジスタを利用して、加法器の加算した結果を記憶させ且つ加算した結果を再度加法器に入力させて次回の加算に参加させ、
或いは、
計算ビット幅が異なるニューラルネットワークの演算予定データに対する演算は、第2ベース乗法器を利用してビット幅が異なるデータの演算を行うことを含み、
乗法記憶ユニットを利用して乗数を記憶させ、前記乗数のビット幅はNビットであり、
第1シフトレジスタを利用して毎回乗数の低いNビットをシフトし、シフト操作を行った後の乗数を再度乗法記憶ユニットに送り、ここで1<n≦Nであり、
バックアップレジスタを利用してシフトした乗数を一時記憶させ、
入力選択回路を利用して、毎回乗数の低いnビットと被乗数を入力させ、乗数の低いnビットの中の各ビットの値と各々乗数とAND演算を行って、AND演算結果を取得し、
第2シフトレジスタを利用して、AND演算結果を入力し且つシフトを行い、
第3のシフトレジスタを利用して、AND演算結果を入力し且つシフトを行い、
加法器を利用してシフトした後のデータを入力して加算し、
結果レジスタを利用して、加法器の加算した結果を記憶し且つ加算した結果を再度加法器に入力させて次回の加算に参加させ、
計算ビット幅が異なるニューラルネットワークの演算予定データに対する演算は、スパース乗法器を利用してビット幅が異なるデータに対する演算を行うことを含み、
乗法記憶ユニットを利用して乗数を記憶させ、前記乗数はスパース方式で示し、ビット幅はNビットであり、
入力選択回路を利用して毎回乗数の低いビットから乗数値が1のビットを選択し、
第1シフトレジスタを利用して毎回ビット数が1以下のすべての低いビットをシフトし、且つ、再度乗法記憶ユニットに伝送して次の乗数とし、
第2シフトレジスタを利用して、前記ビット数が1のビットに基づいてシフト操作を行い、
加法器を利用してシフトしたデータを入力して加算し、
結果レジスタを利用して加法器の加算結果を記憶し、
第3シフトレジスタを利用して数値が1のビットに基づいて結果レジスタにある結果に対してシフトした後に再度加法器に入力させて次の演算に参加させる、
ことを特徴とする請求項10に記載の方法。 - 計算ビット幅が異なるニューラルネットワークの演算予定データに対する演算は、演算回路を通じてすべての連結層及び/又はプーリング層に対する演算を含む、
ことを特徴とする請求項10乃至請求項17のいずれか1項に記載の方法。 - 前記演算回路は受信した制御命令に基づいて第1演算モジュール中の対応する類型の乗法器と加法器回路を選択する、
ことを特徴とする請求項10に記載の方法。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710256445.X | 2017-04-19 | ||
CN201710256445.XA CN108733412B (zh) | 2017-04-19 | 2017-04-19 | 一种运算装置和方法 |
CN201710264686.9 | 2017-04-21 | ||
CN201710269106.5 | 2017-04-21 | ||
CN201710269049.0 | 2017-04-21 | ||
CN201710264686.9A CN108733408A (zh) | 2017-04-21 | 2017-04-21 | 计数装置及计数方法 |
CN201710269049.0A CN108734288B (zh) | 2017-04-21 | 2017-04-21 | 一种运算方法及装置 |
CN201710269106.5A CN108734281B (zh) | 2017-04-21 | 2017-04-21 | 处理装置、处理方法、芯片及电子装置 |
PCT/CN2018/083415 WO2018192500A1 (zh) | 2017-04-19 | 2018-04-17 | 处理装置和处理方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019228383A Division JP6821002B2 (ja) | 2017-04-19 | 2019-12-18 | 処理装置と処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020518042A JP2020518042A (ja) | 2020-06-18 |
JP6865847B2 true JP6865847B2 (ja) | 2021-04-28 |
Family
ID=63856461
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019549467A Active JP6865847B2 (ja) | 2017-04-19 | 2018-04-17 | 処理装置、チップ、電子設備及び方法 |
JP2019228383A Active JP6821002B2 (ja) | 2017-04-19 | 2019-12-18 | 処理装置と処理方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019228383A Active JP6821002B2 (ja) | 2017-04-19 | 2019-12-18 | 処理装置と処理方法 |
Country Status (6)
Country | Link |
---|---|
US (5) | US11531540B2 (ja) |
EP (3) | EP3614259A4 (ja) |
JP (2) | JP6865847B2 (ja) |
KR (2) | KR102258414B1 (ja) |
CN (1) | CN109121435A (ja) |
WO (1) | WO2018192500A1 (ja) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10554382B2 (en) * | 2017-06-27 | 2020-02-04 | Amazon Technologies, Inc. | Secure models for IoT devices |
US11350360B2 (en) | 2017-06-27 | 2022-05-31 | Amazon Technologies, Inc. | Generating adaptive models for IoT networks |
CN107844322B (zh) * | 2017-07-20 | 2020-08-04 | 上海寒武纪信息科技有限公司 | 用于执行人工神经网络正向运算的装置和方法 |
CN108228696B (zh) * | 2017-08-31 | 2021-03-23 | 深圳市商汤科技有限公司 | 人脸图像检索方法和系统、拍摄装置、计算机存储介质 |
US11275713B2 (en) * | 2018-06-09 | 2022-03-15 | International Business Machines Corporation | Bit-serial linear algebra processor |
CN111309486B (zh) * | 2018-08-10 | 2024-01-12 | 中科寒武纪科技股份有限公司 | 转换方法、装置、计算机设备和存储介质 |
US11537853B1 (en) | 2018-11-28 | 2022-12-27 | Amazon Technologies, Inc. | Decompression and compression of neural network data using different compression schemes |
KR102562320B1 (ko) * | 2018-12-24 | 2023-08-01 | 삼성전자주식회사 | 비트 연산 기반의 뉴럴 네트워크 처리 방법 및 장치 |
CN112085176B (zh) * | 2019-06-12 | 2024-04-12 | 安徽寒武纪信息科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
US11675676B2 (en) * | 2019-06-12 | 2023-06-13 | Shanghai Cambricon Information Technology Co., Ltd | Neural network quantization parameter determination method and related products |
CN110766155A (zh) * | 2019-09-27 | 2020-02-07 | 东南大学 | 一种基于混合精度存储的深度神经网络加速器 |
CN110750232B (zh) * | 2019-10-17 | 2023-06-20 | 电子科技大学 | 一种基于sram的并行乘加装置 |
CN110909869B (zh) * | 2019-11-21 | 2022-08-23 | 浙江大学 | 一种基于脉冲神经网络的类脑计算芯片 |
CN110991633B (zh) * | 2019-12-04 | 2022-11-08 | 电子科技大学 | 一种基于忆阻网络的残差神经网络模型及其应用方法 |
CN111105581B (zh) * | 2019-12-20 | 2022-03-15 | 上海寒武纪信息科技有限公司 | 智能预警方法及相关产品 |
CN111047037B (zh) * | 2019-12-27 | 2024-05-24 | 北京市商汤科技开发有限公司 | 数据处理方法、装置、设备及存储介质 |
CN111176582A (zh) * | 2019-12-31 | 2020-05-19 | 北京百度网讯科技有限公司 | 矩阵存储方法、矩阵访问方法、装置和电子设备 |
US20210241080A1 (en) * | 2020-02-05 | 2021-08-05 | Macronix International Co., Ltd. | Artificial intelligence accelerator and operation thereof |
US11593628B2 (en) * | 2020-03-05 | 2023-02-28 | Apple Inc. | Dynamic variable bit width neural processor |
US12079591B2 (en) | 2020-04-07 | 2024-09-03 | Samsung Electronics Co., Ltd. | Neural network device, method of operating the neural network device, and application processor including the neural network device |
KR102414582B1 (ko) * | 2020-04-29 | 2022-06-28 | 한국항공대학교산학협력단 | 신경망 모델의 추론 속도 향상 장치 및 방법 |
CA3178577A1 (en) * | 2020-05-14 | 2021-11-18 | Isak EDO VIVANCOS | System and method for memory compression for deep learning networks |
US11783163B2 (en) * | 2020-06-15 | 2023-10-10 | Arm Limited | Hardware accelerator for IM2COL operation |
CN111930671B (zh) * | 2020-08-10 | 2024-05-14 | 中国科学院计算技术研究所 | 异构智能处理器、处理方法及电子设备 |
US11427290B2 (en) | 2020-08-31 | 2022-08-30 | Mike Scheck | Anchor rescue system |
CN112183732A (zh) * | 2020-10-22 | 2021-01-05 | 中国人民解放军国防科技大学 | 卷积神经网络加速方法、装置和计算机设备 |
CN112099898B (zh) * | 2020-11-06 | 2021-02-09 | 广州市玄武无线科技股份有限公司 | 一种基于Web前端的表格处理系统及方法 |
KR20220071723A (ko) * | 2020-11-24 | 2022-05-31 | 삼성전자주식회사 | 딥러닝 연산 수행 방법 및 장치 |
CN112765936B (zh) * | 2020-12-31 | 2024-02-23 | 出门问问(武汉)信息科技有限公司 | 一种基于语言模型进行运算的训练方法及装置 |
CN113434113B (zh) * | 2021-06-24 | 2022-03-11 | 上海安路信息科技股份有限公司 | 基于静态配置数字电路的浮点数乘累加控制方法及系统 |
CN113642724B (zh) * | 2021-08-11 | 2023-08-01 | 西安微电子技术研究所 | 一种高带宽存储的cnn加速器 |
KR102395744B1 (ko) * | 2021-09-16 | 2022-05-09 | 오픈엣지테크놀로지 주식회사 | 데이터 스케일을 고려한 덧셈 연산 방법 및 이를 위한 하드웨어 가속기, 이를 이용한 컴퓨팅 장치 |
US20230280976A1 (en) | 2022-03-03 | 2023-09-07 | Taiwan Semiconductor Manufacturing Co., Ltd. | Using reduced read energy based on the partial-sum |
KR20230132343A (ko) * | 2022-03-08 | 2023-09-15 | 주식회사 마키나락스 | 개발환경을 제공하는 방법 |
KR102442577B1 (ko) * | 2022-03-08 | 2022-09-13 | 주식회사 마키나락스 | 개발환경을 제공하는 방법 |
US20240080423A1 (en) * | 2022-09-02 | 2024-03-07 | Samsung Electronics Co., Ltd. | Fusion techniques for combining most significant bits and least significant bits of image data in image processing or other applications |
Family Cites Families (85)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2639461A1 (fr) * | 1988-11-18 | 1990-05-25 | Labo Electronique Physique | Arrangement bidimensionnel de points memoire et structure de reseaux de neurones utilisant un tel arrangement |
DE69031842T2 (de) * | 1989-02-20 | 1998-04-16 | Fujitsu Ltd | Lernsystem und Lernverfahren für eine Datenverarbeitungsvorrichtung |
JPH02287862A (ja) * | 1989-04-28 | 1990-11-27 | Toshiba Corp | ニューラルネットワーク演算装置 |
US5086479A (en) * | 1989-06-30 | 1992-02-04 | Hitachi, Ltd. | Information processing system using neural network learning function |
EP0813143A3 (en) * | 1989-11-13 | 1998-01-28 | Harris Corporation | Sign extension in plural-bit recoding multiplier |
JPH0820942B2 (ja) * | 1991-09-26 | 1996-03-04 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 高速乗算器 |
JPH0652132A (ja) * | 1992-07-28 | 1994-02-25 | Mitsubishi Electric Corp | 並列演算半導体集積回路装置およびそれを用いたシステム |
JPH06139217A (ja) * | 1992-10-29 | 1994-05-20 | Hitachi Ltd | 高精度演算処理装置および方法 |
US6601051B1 (en) * | 1993-08-09 | 2003-07-29 | Maryland Technology Corporation | Neural systems with range reducers and/or extenders |
US5630024A (en) * | 1994-01-19 | 1997-05-13 | Nippon Telegraph And Telephone Corporation | Method and apparatus for processing using neural network with reduced calculation amount |
JPH0973440A (ja) * | 1995-09-06 | 1997-03-18 | Fujitsu Ltd | コラム構造の再帰型ニューラルネットワークによる時系列トレンド推定システムおよび方法 |
US6049793A (en) * | 1996-11-15 | 2000-04-11 | Tomita; Kenichi | System for building an artificial neural network |
US6718457B2 (en) * | 1998-12-03 | 2004-04-06 | Sun Microsystems, Inc. | Multiple-thread processor for threaded software applications |
JP2001117900A (ja) * | 1999-10-19 | 2001-04-27 | Fuji Xerox Co Ltd | ニューラルネットワーク演算装置 |
KR20030009682A (ko) * | 2001-07-23 | 2003-02-05 | 엘지전자 주식회사 | 가산기 기반 분산 연산의 가산 공유 정보 추출을 위한신경망 알고리즘 구현 방법 |
US7529703B2 (en) * | 2003-11-18 | 2009-05-05 | Citigroup Global Markets, Inc. | Method and system for artificial neural networks to predict price movements in the financial markets |
WO2005109221A2 (en) * | 2004-05-03 | 2005-11-17 | Silicon Optix | A bit serial processing element for a simd array processor |
US7398347B1 (en) * | 2004-07-14 | 2008-07-08 | Altera Corporation | Methods and apparatus for dynamic instruction controlled reconfigurable register file |
CN101057474B (zh) * | 2004-11-16 | 2010-12-01 | 三星电子株式会社 | 在正交频分多址无线通信系统中处理数字信号的装置和方法 |
US7428521B2 (en) * | 2005-06-29 | 2008-09-23 | Microsoft Corporation | Precomputation of context-sensitive policies for automated inquiry and action under uncertainty |
US7881889B2 (en) * | 2005-12-21 | 2011-02-01 | Barclay Kenneth B | Method and apparatus for determining energy savings by using a baseline energy use model that incorporates an artificial intelligence algorithm |
US8543343B2 (en) * | 2005-12-21 | 2013-09-24 | Sterling Planet, Inc. | Method and apparatus for determining energy savings by using a baseline energy use model that incorporates an artificial intelligence algorithm |
US7451122B2 (en) * | 2006-03-29 | 2008-11-11 | Honeywell International Inc. | Empirical design of experiments using neural network models |
GB2447428A (en) * | 2007-03-15 | 2008-09-17 | Linear Algebra Technologies Lt | Processor having a trivial operand register |
CN100492415C (zh) | 2007-04-20 | 2009-05-27 | 哈尔滨工程大学 | 柴油机运行数据记录方法 |
US8055886B2 (en) * | 2007-07-12 | 2011-11-08 | Texas Instruments Incorporated | Processor micro-architecture for compute, save or restore multiple registers and responsive to first instruction for repeated issue of second instruction |
CN101359453A (zh) * | 2007-07-31 | 2009-02-04 | 奇美电子股份有限公司 | 数据处理装置与其数据处理方法 |
US7694112B2 (en) * | 2008-01-31 | 2010-04-06 | International Business Machines Corporation | Multiplexing output from second execution unit add/saturation processing portion of wider width intermediate result of first primitive execution unit for compound computation |
CN101527010B (zh) | 2008-03-06 | 2011-12-07 | 上海理工大学 | 人工神经网络算法的硬件实现方法及其系统 |
US8521801B2 (en) | 2008-04-28 | 2013-08-27 | Altera Corporation | Configurable hybrid adder circuitry |
CN101309430A (zh) * | 2008-06-26 | 2008-11-19 | 天津市亚安科技电子有限公司 | 基于fpga的视频图像预处理器 |
CN101685388B (zh) | 2008-09-28 | 2013-08-07 | 北京大学深圳研究生院 | 执行比较运算的方法和装置 |
CN101599828A (zh) * | 2009-06-17 | 2009-12-09 | 刘霁中 | 一种高效的rsa加解密方法及其协处理器 |
US8468191B2 (en) | 2009-09-02 | 2013-06-18 | Advanced Micro Devices, Inc. | Method and system for multi-precision computation |
US8712940B2 (en) * | 2011-05-31 | 2014-04-29 | International Business Machines Corporation | Structural plasticity in spiking neural networks with symmetric dual of an electronic neuron |
KR101303591B1 (ko) * | 2011-10-07 | 2013-09-11 | 전자부품연구원 | 통합형 서포트 벡터 머신 회로 장치 |
WO2013095592A1 (en) | 2011-12-22 | 2013-06-27 | Intel Corporation | Apparatus and method for vector compute and accumulate |
CN102750127B (zh) * | 2012-06-12 | 2015-06-24 | 清华大学 | 一种协处理器 |
CN103699360B (zh) | 2012-09-27 | 2016-09-21 | 北京中科晶上科技有限公司 | 一种向量处理器及其进行向量数据存取、交互的方法 |
CN103019656B (zh) * | 2012-12-04 | 2016-04-27 | 中国科学院半导体研究所 | 可动态重构的多级并行单指令多数据阵列处理系统 |
US9563401B2 (en) * | 2012-12-07 | 2017-02-07 | Wave Computing, Inc. | Extensible iterative multiplier |
US9110657B2 (en) | 2013-01-21 | 2015-08-18 | Tom Yap | Flowchart compiler for a compound complex instruction set computer (CCISC) processor architecture |
US9189200B1 (en) * | 2013-03-14 | 2015-11-17 | Altera Corporation | Multiple-precision processing block in a programmable integrated circuit device |
US9558743B2 (en) * | 2013-03-15 | 2017-01-31 | Google Inc. | Integration of semantic context information |
US9037945B2 (en) * | 2013-03-26 | 2015-05-19 | Seagate Technology Llc | Generating partially sparse generator matrix for a quasi-cyclic low-density parity-check encoder |
CN203299808U (zh) * | 2013-04-16 | 2013-11-20 | 西华大学 | 位串行加法器 |
JP6042274B2 (ja) * | 2013-06-28 | 2016-12-14 | 株式会社デンソーアイティーラボラトリ | ニューラルネットワーク最適化方法、ニューラルネットワーク最適化装置及びプログラム |
KR20150016089A (ko) * | 2013-08-02 | 2015-02-11 | 안병익 | 신경망 컴퓨팅 장치 및 시스템과 그 방법 |
US9495155B2 (en) | 2013-08-06 | 2016-11-15 | Intel Corporation | Methods, apparatus, instructions and logic to provide population count functionality for genome sequencing and alignment |
US9513907B2 (en) | 2013-08-06 | 2016-12-06 | Intel Corporation | Methods, apparatus, instructions and logic to provide vector population count functionality |
US10068170B2 (en) * | 2013-09-23 | 2018-09-04 | Oracle International Corporation | Minimizing global error in an artificial neural network |
US10373047B2 (en) * | 2014-02-28 | 2019-08-06 | Educational Testing Service | Deep convolutional neural networks for automated scoring of constructed responses |
CN105207794B (zh) | 2014-06-05 | 2019-11-05 | 南京中兴软件有限责任公司 | 统计计数设备及其实现方法、具有统计计数设备的系统 |
CN104699458A (zh) | 2015-03-30 | 2015-06-10 | 哈尔滨工业大学 | 定点向量处理器及其向量数据访存控制方法 |
US10262259B2 (en) * | 2015-05-08 | 2019-04-16 | Qualcomm Incorporated | Bit width selection for fixed point neural networks |
CN105005911B (zh) | 2015-06-26 | 2017-09-19 | 深圳市腾讯计算机系统有限公司 | 深度神经网络的运算系统及运算方法 |
KR101778679B1 (ko) * | 2015-10-02 | 2017-09-14 | 네이버 주식회사 | 딥러닝을 이용하여 텍스트 단어 및 기호 시퀀스를 값으로 하는 복수 개의 인자들로 표현된 데이터를 자동으로 분류하는 방법 및 시스템 |
US10346350B2 (en) | 2015-10-08 | 2019-07-09 | Via Alliance Semiconductor Co., Ltd. | Direct execution by an execution unit of a micro-operation loaded into an architectural register file by an architectural instruction of a processor |
CN106447035B (zh) | 2015-10-08 | 2019-02-26 | 上海兆芯集成电路有限公司 | 具有可变率执行单元的处理器 |
CN105426160B (zh) | 2015-11-10 | 2018-02-23 | 北京时代民芯科技有限公司 | 基于sprac v8指令集的指令分类多发射方法 |
CN105512724B (zh) * | 2015-12-01 | 2017-05-10 | 中国科学院计算技术研究所 | 加法器装置、数据累加方法及数据处理装置 |
CN105913118B (zh) * | 2015-12-09 | 2019-06-04 | 上海大学 | 一种基于概率计算的人工神经网络硬件实现装置 |
KR20180070659A (ko) * | 2015-12-21 | 2018-06-26 | 구글 엘엘씨 | 메시징 애플리케이션들을 위한 자동적인 제안들 및 다른 콘텐츠 |
CN107506828B (zh) | 2016-01-20 | 2020-11-03 | 中科寒武纪科技股份有限公司 | 用于稀疏连接的人工神经网络计算装置和方法 |
JP6890615B2 (ja) * | 2016-05-26 | 2021-06-18 | タータン エーアイ リミテッド | ディープニューラルネットワークについての加速器 |
CN106066783A (zh) * | 2016-06-02 | 2016-11-02 | 华为技术有限公司 | 基于幂次权重量化的神经网络前向运算硬件结构 |
US11295203B2 (en) * | 2016-07-27 | 2022-04-05 | International Business Machines Corporation | Optimizing neuron placement in a neuromorphic system |
CN106484366B (zh) * | 2016-10-17 | 2018-12-14 | 东南大学 | 一种二元域位宽可变模乘运算器 |
CN106447034B (zh) | 2016-10-27 | 2019-07-30 | 中国科学院计算技术研究所 | 一种基于数据压缩的神经网络处理器、设计方法、芯片 |
US11003985B2 (en) * | 2016-11-07 | 2021-05-11 | Electronics And Telecommunications Research Institute | Convolutional neural network system and operation method thereof |
US10083162B2 (en) * | 2016-11-28 | 2018-09-25 | Microsoft Technology Licensing, Llc | Constructing a narrative based on a collection of images |
US10249292B2 (en) * | 2016-12-14 | 2019-04-02 | International Business Machines Corporation | Using long short-term memory recurrent neural network for speaker diarization segmentation |
US10546575B2 (en) * | 2016-12-14 | 2020-01-28 | International Business Machines Corporation | Using recurrent neural network for partitioning of audio data into segments that each correspond to a speech feature cluster identifier |
US10691996B2 (en) * | 2016-12-15 | 2020-06-23 | Beijing Deephi Intelligent Technology Co., Ltd. | Hardware accelerator for compressed LSTM |
US11354565B2 (en) * | 2017-03-15 | 2022-06-07 | Salesforce.Com, Inc. | Probability-based guider |
US20180314942A1 (en) * | 2017-04-19 | 2018-11-01 | AIBrain Corporation | Scalable framework for autonomous artificial intelligence characters |
US20180314963A1 (en) * | 2017-04-19 | 2018-11-01 | AIBrain Corporation | Domain-independent and scalable automated planning system using deep neural networks |
SG11201810989VA (en) * | 2017-04-27 | 2019-01-30 | Beijing Didi Infinity Technology & Development Co Ltd | Systems and methods for route planning |
US11170287B2 (en) * | 2017-10-27 | 2021-11-09 | Salesforce.Com, Inc. | Generating dual sequence inferences using a neural network model |
CN109117184A (zh) * | 2017-10-30 | 2019-01-01 | 上海寒武纪信息科技有限公司 | 人工智能处理器及使用处理器执行平面旋转指令的方法 |
US10599391B2 (en) * | 2017-11-06 | 2020-03-24 | Google Llc | Parsing electronic conversations for presentation in an alternative interface |
US10365340B1 (en) * | 2018-03-01 | 2019-07-30 | Siemens Medical Solutions Usa, Inc. | Monitoring dynamics of patient brain state during neurosurgical procedures |
US10497366B2 (en) * | 2018-03-23 | 2019-12-03 | Servicenow, Inc. | Hybrid learning system for natural language understanding |
US11526728B2 (en) * | 2018-04-09 | 2022-12-13 | Microsoft Technology Licensing, Llc | Deep learning model scheduling |
CN109829451B (zh) * | 2019-03-22 | 2021-08-24 | 京东方科技集团股份有限公司 | 生物体动作识别方法、装置、服务器及存储介质 |
-
2018
- 2018-04-17 JP JP2019549467A patent/JP6865847B2/ja active Active
- 2018-04-17 EP EP18788355.8A patent/EP3614259A4/en active Pending
- 2018-04-17 WO PCT/CN2018/083415 patent/WO2018192500A1/zh unknown
- 2018-04-17 CN CN201880000923.3A patent/CN109121435A/zh active Pending
- 2018-04-17 KR KR1020197038135A patent/KR102258414B1/ko active IP Right Grant
- 2018-04-17 EP EP19214320.4A patent/EP3654172A1/en active Pending
- 2018-04-17 EP EP19214371.7A patent/EP3786786B1/en active Active
- 2018-04-17 KR KR1020197025307A patent/KR102292349B1/ko active IP Right Grant
- 2018-04-17 US US16/476,262 patent/US11531540B2/en active Active
-
2019
- 2019-11-27 US US16/697,727 patent/US11698786B2/en active Active
- 2019-11-27 US US16/697,687 patent/US11734002B2/en active Active
- 2019-11-27 US US16/697,637 patent/US11720353B2/en active Active
- 2019-11-27 US US16/697,533 patent/US11531541B2/en active Active
- 2019-12-18 JP JP2019228383A patent/JP6821002B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
US20200097795A1 (en) | 2020-03-26 |
KR102258414B1 (ko) | 2021-05-28 |
US11720353B2 (en) | 2023-08-08 |
EP3614259A4 (en) | 2021-02-24 |
US20200050918A1 (en) | 2020-02-13 |
EP3786786A1 (en) | 2021-03-03 |
US11531540B2 (en) | 2022-12-20 |
KR102292349B1 (ko) | 2021-08-20 |
CN109121435A (zh) | 2019-01-01 |
JP2020518042A (ja) | 2020-06-18 |
US20200097794A1 (en) | 2020-03-26 |
US11531541B2 (en) | 2022-12-20 |
KR20190139837A (ko) | 2019-12-18 |
US20200117976A1 (en) | 2020-04-16 |
WO2018192500A1 (zh) | 2018-10-25 |
US20200097792A1 (en) | 2020-03-26 |
EP3786786C0 (en) | 2023-06-07 |
US11734002B2 (en) | 2023-08-22 |
EP3654172A1 (en) | 2020-05-20 |
KR20200000480A (ko) | 2020-01-02 |
JP2020074099A (ja) | 2020-05-14 |
JP6821002B2 (ja) | 2021-01-27 |
EP3614259A1 (en) | 2020-02-26 |
US11698786B2 (en) | 2023-07-11 |
EP3786786B1 (en) | 2023-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6865847B2 (ja) | 処理装置、チップ、電子設備及び方法 | |
CN109117948B (zh) | 画风转换方法及相关产品 | |
CN109358900B (zh) | 支持离散数据表示的人工神经网络正向运算装置和方法 | |
KR102486030B1 (ko) | 완전연결층 신경망 정방향 연산 실행용 장치와 방법 | |
US20190102671A1 (en) | Inner product convolutional neural network accelerator | |
CN108734281B (zh) | 处理装置、处理方法、芯片及电子装置 | |
EP3944157A1 (en) | Device and method for performing training of convolutional neural network | |
KR102252137B1 (ko) | 계산 장치 및 방법 | |
Mittal | A survey of accelerator architectures for 3D convolution neural networks | |
Bao et al. | A power-efficient optimizing framework fpga accelerator based on winograd for yolo | |
CN114127680B (zh) | 支持用于高效乘法的替代数字格式的系统和方法 | |
JP2020109604A (ja) | ロード/ストア命令 | |
Ahmad et al. | FFConv: an FPGA-based accelerator for fast convolution layers in convolutional neural networks | |
Shivapakash et al. | A power efficiency enhancements of a multi-bit accelerator for memory prohibitive deep neural networks | |
CN114003198A (zh) | 内积处理部件、任意精度计算设备、方法及可读存储介质 | |
CN113867799A (zh) | 计算装置、集成电路芯片、板卡、电子设备和计算方法 | |
Csordás et al. | Application of bit-serial arithmetic units for FPGA implementation of convolutional neural networks | |
CN118690805A (zh) | 处理装置和处理方法 | |
US20230376447A1 (en) | Parallel processing architecture with dual load buffers | |
Zhang et al. | VisionAGILE: A Versatile Domain-specific Accelerator for Computer Vision Tasks | |
Zhang | Systolic Architectures for Efficient Deep Neural Network Implementations with Assured Performance | |
Arndt et al. | Hardware Accelerated Matrix Multiplication for Embedded Systems | |
Urbinati | Accelerating Quantized DNNs with Dedicated Hardware Accelerators and RISC-V Processors Using Precision-Scalable Multipliers | |
WO2024030351A1 (en) | Parallel processing architecture with dual load buffers | |
Seto | A Survey on System-Level Design of Neural Network Accelerators |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191202 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191202 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210114 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210119 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210302 |
|
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: 20210323 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210406 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6865847 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |