JP6864224B2 - プロセッサ、情報処理装置及びプロセッサの動作方法 - Google Patents
プロセッサ、情報処理装置及びプロセッサの動作方法 Download PDFInfo
- Publication number
- JP6864224B2 JP6864224B2 JP2017013396A JP2017013396A JP6864224B2 JP 6864224 B2 JP6864224 B2 JP 6864224B2 JP 2017013396 A JP2017013396 A JP 2017013396A JP 2017013396 A JP2017013396 A JP 2017013396A JP 6864224 B2 JP6864224 B2 JP 6864224B2
- Authority
- JP
- Japan
- Prior art keywords
- adder
- input
- data
- registers
- circuit
- 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
- 230000010365 information processing Effects 0.000 title claims description 8
- 230000015654 memory Effects 0.000 claims description 77
- 238000004364 calculation method Methods 0.000 claims description 53
- 239000011159 matrix material Substances 0.000 claims description 40
- 238000000034 method Methods 0.000 claims description 20
- 230000015572 biosynthetic process Effects 0.000 claims description 7
- 238000003786 synthesis reaction Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 24
- 238000007792 addition Methods 0.000 description 19
- 238000006243 chemical reaction Methods 0.000 description 14
- 238000013135 deep learning Methods 0.000 description 10
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 230000017105 transposition Effects 0.000 description 5
- 238000011176 pooling Methods 0.000 description 4
- 239000002041 carbon nanotube Substances 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 101001047509 Rattus norvegicus Lethal(2) giant larvae protein homolog 1 Proteins 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 101100456566 Caenorhabditis elegans dpy-22 gene Proteins 0.000 description 1
- 101100310641 Caenorhabditis elegans sop-2 gene Proteins 0.000 description 1
- 101000741396 Chlamydia muridarum (strain MoPn / Nigg) Probable oxidoreductase TC_0900 Proteins 0.000 description 1
- 101000741399 Chlamydia pneumoniae Probable oxidoreductase CPn_0761/CP_1111/CPj0761/CpB0789 Proteins 0.000 description 1
- 101000741400 Chlamydia trachomatis (strain D/UW-3/Cx) Probable oxidoreductase CT_610 Proteins 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- 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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/485—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/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/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Nonlinear Science (AREA)
- Computer Hardware Design (AREA)
- Neurology (AREA)
- Image Processing (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
Description
複数のプロセッサコアと、
前記複数のプロセッサコアからアクセスされる内部メモリとを有し、
前記複数のプロセッサコアのいずれかが有する演算器は、
第1ステージに設けられた複数の第1のレジスタと、
前記複数の第1のレジスタの複数の出力を加算する第1の加算器と、第2ステージに設けられ前記第1の加算器の出力をラッチする第2のレジスタとを有する通常加算回路と、
前記複数の第1のレジスタの複数の出力を加算する第2の加算器を有する追越し加算回路と、
前記通常加算回路の出力と前記追越し加算回路の出力とを加算する第3の加算器と、第3ステージに設けられ前記第2の加算器の出力をラッチする第3のレジスタとを有する合成回路とを有し、
前記第1の加算器と前記第2の加算器は、前記複数の第1のレジスタの複数の出力を互いに排他的に選択して入力し、前記第1、第2、第3のレジスタはクロックに同期して入力をラッチする、加算回路を有する、プロセッサである。
Xi = Σ(Xi * Wi) (1)
但し、右辺のXiは入力画像IN_DATAの画素データ、Wiは係数であり、Σはi = 0-8 だけ加算することを示し、左辺のXiは積和演算値であり出力画像OUT_DATAの画素データである。
X6 = X0*W0 + X1*W1 + X2*W2 + X5*W3 + X6*W4 + X7*W5 + X10*W6 + X11*W7 + X12*W8
図6は、メモリに記憶されるデータ構造の配列(AOS:Array Of Structure)を16個の演算器に入力する例を示す図である。図6では、入力データIN_DATAは、アレイオブストラクチャ(AOS)形式である各行16ワードの入力画像データIN_DATAと、16ワードの係数FLT(W0-W8)を、行の順に16個の演算器ALUに入力する例である。
図8は、本実施の形態における演算器の入力データの構成を図6,図7の例と対比して示す図である。図6、図7に示した入力データの構成AOS, SOAは、図8の(B)(C)に示される。図8には、演算器のへ入力されるデータは、簡単のために入力データIN_DATAだけを示し、フィルタの係数は省略している。
図9は、本実施の形態におけるグラフィックプロセッサGPU(DL装置)の構成を示す図である。図9のGPUは、図3の構成を簡略化した構成を示している。GPUはDL演算を行うDLチップ(DL装置)である。
図10は、フォーマット変換器FMT_Cの構成を示す図である。フォーマット変換器FMT_Cは、制御バスC_BUSの制御バスインターフェースC_BUS_IFと、制御データを格納する制御データレジスタCNT_REGと、ステートマシンのような制御回路CNTとを有する。制御バスC_BUSには図示しないコアから制御データが転送され、制御レジスタに制御データが格納される。
図13は、本実施の形態の追越しルート付積和演算器の構成を示す図である。図13の積和演算器は、パイプラインステージST0-ST5を有し、各パイプラインステージに複数または単数のレジスタRGを有し、各ステージのレジスタRGには図示しないクロックが供給され、クロック入力に応答して入力データをラッチする。
図14は、3×3フィルタの場合の図13の積和演算器の動作を示すシーケンス図である。また、図15は、同様にマスクMb0-7とMc0-7の選択、非選択状態を示すシーケンス図である。図14,15を参照して、図13の積和演算器の動作を説明する。
ステージST0のレジスタRG00-07は、最初の組の9画素データa0-a8のうち8画素データa0-a8と8個の係数w0-w7(図示せず)をラッチする。
ステージST1のレジスタRG10-17は、8個の乗算器MP0-7の乗算値(a0-a7の乗算値)をラッチする。図中には紙面の関係からa0*w0-a7*w7を簡易的にa0-a7で示している。同時に、ステージST0のレジスタRG00-07は、9個目の画素データa8と係数w8と、2番目の組の7画素データb0-b6と7個の係数w0-w6をラッチする。後述するとおり、この9個目の画素データa8と係数w8の乗算値が追越しルートで1番目の8画素データa0-a7と係数w0-w7の乗算値に追いつく。図14中に、追いつきルートで追いつき処理される画素データに下線、a8、を付す。
ステージST2の通常ルートのレジスタRG20-23それぞれは、1番目の組の8画素データa0-a7の乗算値の4組の加算値a0,1、a2,3、a4,5、a6,7をそれぞれラッチする。また、ステージST1のレジスタRG10-17それぞれは、1番目の組の1画素データa8と2番目の組の7画素データb0-b6の乗算値をラッチする。同時に、ステージST0のレジスタRG00-07は、2番目の組の8、9個目の画素データb7,8と係数w7,8と、3番目の組の6画素データc0-b5と6個の係数w0-w5をラッチする。
ステージST3のレジスタRG30は、通常ルートの加算値a0-3と追越しルートの値a8との加算値をラッチし、レジスタRG31は、通常ルートの加算値a4-7の加算値をラッチする。これで、1サイクル遅れていた加算値a8が通常ルートの加算値に追いついて、加算される。
ステージST4のレジスタRG40は、1番目の組の9画素データa0-a8の乗算値の加算値a0-8をラッチする。この結果、演算器は、サイクル1,2で分割して入力された9画素データa0-a8の加算値が、一回のサイクルで入力される8個の画素データの加算値を出力するために必要な5サイクルで、9個の画素データの加算値を出力することができる。言い換えれば、サイクル2で入力した画素データa8を加えた加算値をサイクル6まで遅らせることなく、サイクル5で生成することができる。つまり、サイクル6で8画素データa0-7の加算値と1画素データa8の値とをアキュムレータACMLにより累積加算する必要がない。
以上、同様にして、サイクル6では、ステージST5のレジスタRG50が1番目の組の9画素データa0-a8の乗算値の加算値a0-8をラッチする。この加算値a0-8は、積和演算器の結果RESULTになる。サイクル7では、レジスタRG50が2番目の組の9画素データb0-b8の乗算値の加算値b0-8をラッチする。この加算値b0-8は、積和演算器の結果RESULTになる。以下同様である。
図16は、5×5フィルタの場合の図13の積和演算器の動作を示すシーケンス図である。 5×5フィルタの場合、近傍マトリクスの画素数は25個である。したがって、25個の画素データと係数データを1サイクルで入力することはできず、24個の画素を8画素ずつ3サイクルで入力し、1画素を1サイクルで入力する。そこで、以下の説明のとおり、3サイクルで入力した8入力の積和値をアキュムレータで累積し、最後の1サイクルで入力した1入力の乗算値を追越しルートで3サイクル目の乗算値に加算する。
図17は、1組の入力画素データが11画素の場合の積和演算器の動作を示すシーケンス図である。1組11画素の場合、1番目の組の11画素a0-a10はサイクル1,2で入力され、サイクル5でステージST4のレジスタRG40が画素データa0-a10の積和値をラッチする。2番目の組の11画素b0-b10はサイクル2,3で入力され、サイクル6でステージST4のレジスタRG40が画素データb0-b10の積和値をラッチする。1番目と2番目の11画素データa0-a10、b0-b10はいずれもアキュムレータによる累積加算は行われない。
図18は、32画素データまで入力可能な積和演算器の構成を示す図である。32画素対応の積和演算器は、図13の8入力の積和演算器SoPを4個並列に配置し、さらに4個の積和演算器SoPが出力する積和値を加算する加算器ADDERを有する。並列配置された4個の積和演算器SoPは、図13で説明したとおりそれぞれ追越しルートを有する。
図20は、第2の実施の形態における追越しルート付積和演算器の構成を示す図である。図20の積和演算器は、図13と同様のSOA形態の画像データを演算する第1の演算と、AOS形態の画像データを演算する第2の演算のいずれかの演算を、設定により変更することができる。第2の演算は、図8(C)に示した演算である。
複数のプロセッサコアと、
前記複数のプロセッサコアからアクセスされる内部メモリとを有し、
前記複数のプロセッサコアのいずれかが有する演算器は、
第1ステージに設けられた複数の第1のレジスタと、
前記複数の第1のレジスタの複数の出力を加算する第1の加算器と、第2ステージに設けられ前記第1の加算器の出力をラッチする第2のレジスタとを有する通常加算回路と、
前記複数の第1のレジスタの複数の出力を加算する第2の加算器を有する追越し加算回路と、
前記通常加算回路の出力と前記追越し加算回路の出力とを加算する第3の加算器と、第3ステージに設けられ前記第2の加算器の出力をラッチする第3のレジスタとを有する合成回路とを有し、
前記第1の加算器と前記第2の加算器は、前記複数の第1のレジスタの複数の出力を互いに排他的に選択して入力し、前記第1、第2、第3のレジスタはクロックに同期して入力をラッチする、加算回路を有する、プロセッサ。
前記演算器は、
入力ステージに設けられ、複数の第1の入力データと複数の第2の入力データをそれぞれラッチする複数対の入力レジスタと、
前記複数対の入力レジスタそれぞれの対の前記第1の入力データと第2の入力データとをそれぞれ乗算し、乗算値が前記複数の第1のレジスタそれぞれにラッチされる複数の乗算器とを有し、
前記乗算器と加算回路とにより前記複数の第1の入力データと複数の第2の入力データそれぞれの乗算値を加算する積和回路を構成する、付記1に記載のプロセッサ。
前記演算器は、
前記加算回路の出力を前記クロックに同期して累積するアキュムレータ回路を有する、付記1または2に記載のプロセッサ。
前記演算器は、
前記第1の加算器と前記第2の加算器の入力に設けられたマスク回路に、前記選択のための第1の制御値を設定する制御回路を有し、
1組の演算対象データの数が前記複数対の入力レジスタの数より多い場合、前記1組の演算対象データが分割して複数のサイクルで前記複数対の入力レジスタに入力され、
前記制御回路は、前記演算対象データに含まれ第1のサイクルで入力された前記第1の入力データと第2の入力データの第1の乗算値を前記第1の加算器に入力し、前記演算対象データに含まれ前記第1のサイクルの次の第2のサイクルで入力された前記第1の入力データと第2の入力データの第2の乗算値を前記第2の加算器に入力する前記第1の制御値を、前記マスク回路に設定する、付記2に記載のプロセッサ。
前記演算器は、
前記複数の乗算器と前記複数の第1のレジスタとのそれぞれの間に、前記複数の乗算器の出力と前記複数の第1のレジスタの出力とをそれぞれ加算する複数の第4の加算器を有し、
前記第4の加算器の入力に、前記複数の第1のレジスタの複数の出力を入力または非入力の一方に設定可能なマスク回路を有する、付記2に記載のプロセッサ。
前記演算器は、
前記前記複数の第4の加算器のマスク回路に、前記入力または非入力の第2の制御値を設定する制御回路を有し、
前記制御回路は、演算対象データがストラクチャオブアレイ形式の場合は前記非入力の第2の制御値を設定し、前記演算対象データがアレイオブストラクチャ形式の場合は前記入力の第2の制御値を設定するする、付記5に記載のプロセッサ。
前記複数の第1の入力データは、画像データの近傍マトリクスの複数の画素データであり、
前記複数の第2の入力データは、前記近傍マトリクスに対応する係数マトリクスの複数の係数データであり、
前記積和回路は、前記近傍マトリクスの複数の画素データと、前記係数マトリクスの複数の係数データとの積和値を算出する、付記2に記載のプロセッサ。
プロセッサと、
前記プロセッサがアクセスするメインメモリとを有し、
前記プロセッサは、
複数のプロセッサコアと、
前記複数のプロセッサコアからアクセスされる内部メモリとを有し、
前記複数のプロセッサコアのいずれかが有する演算器は、
第1ステージに設けられた複数の第1のレジスタと、
前記複数の第1のレジスタの複数の出力を加算する第1の加算器と、第2ステージに設けられ前記第1の加算器の出力をラッチする第2のレジスタとを有する通常加算回路と、
前記複数の第1のレジスタの複数の出力を加算する第2の加算器を有する追越し加算回路と、
前記通常加算回路の出力と前記追越し加算回路の出力とを加算する第3の加算器と、第3ステージに設けられ前記第2の加算器の出力をラッチする第3のレジスタとを有する合成回路とを有し、
前記第1の加算器と前記第2の加算器は、前記複数の第1のレジスタの複数の出力を互いに排他的に選択して入力し、前記第1、第2、第3のレジスタはクロックに同期して入力をラッチする、加算回路を有する、情報処理装置。
複数のプロセッサコアと、
前記複数のプロセッサコアからアクセスされる内部メモリとを有し、
前記複数のプロセッサコアのいずれかが有する演算器は、
第1ステージに設けられた複数の第1のレジスタと、
前記複数の第1のレジスタの複数の出力を加算する第1の加算器と、第2ステージに設けられ前記第1の加算器の出力をラッチする第2のレジスタとを有する通常加算回路と、
前記複数の第1のレジスタの複数の出力を加算する第2の加算器を有する追越し加算回路と、
前記通常加算回路の出力と前記追越し加算回路の出力とを加算する第3の加算器と、第3ステージに設けられ前記第2の加算器の出力をラッチする第3のレジスタとを有する合成回路とを有する加算回路を有するプロセッサの動作方法であって、
前記第1の加算器と前記第2の加算器は、前記複数の第1のレジスタの複数の出力を互いに排他的に選択して入力し、
前記第1、第2、第3のレジスタはクロックに同期して入力をラッチし、
第1のサイクルで入力された単数または複数の第1の入力データを前記第1の加算器が加算し、当該加算値を前記第2のレジスタがラッチし、
前記第1のサイクルの次の第2のサイクルで入力された単数または複数の第2の入力データを前記第2の加算器が加算し、
通常加算回路の出力と、前記追越し加算回路の出力とを前記第3の加算器が加算し、当該加算値を前記第3のレジスタがラッチする、プロセッサの動作方法。
MK:マスク、マスク回路
MP:乗算器
AD:加算器
SL:セレクタ
52:制御ステートマシン、制御回路
RG00-03, RG04-07:入力レジスタ
RG10-13、RG14-17:第1のレジスタ
RG20,21、RG22,23:第2のレジスタ
RG30,31:第3のレジスタ
OCTK_0,1:追越し加算回路
RGL_0,1:通常加算回路
ACML:アキュムレータ、累積加算器
Claims (8)
- 複数のプロセッサコアと、
前記複数のプロセッサコアからアクセスされる内部メモリとを有し、
前記複数のプロセッサコアのいずれかが有する演算器は、
第1ステージに設けられた複数の第1のレジスタと、
前記複数の第1のレジスタの複数の出力を加算する第1の加算器と、第2ステージに設けられ前記第1の加算器の出力をラッチする第2のレジスタとを有する通常加算回路と、
前記複数の第1のレジスタの複数の出力を加算する第2の加算器を有する追越し加算回路と、
前記通常加算回路の出力と前記追越し加算回路の出力とを加算する第3の加算器と、第3ステージに設けられ前記第3の加算器の出力をラッチする第3のレジスタとを有する合成回路とを有し、
前記第1の加算器と前記第2の加算器は、前記複数の第1のレジスタの複数の出力を互いに排他的に選択して入力し、前記第1、第2、第3のレジスタはクロックに同期して入力をラッチする、加算回路を有する、プロセッサ。 - 前記演算器は、
入力ステージに設けられ、複数の第1の入力データと複数の第2の入力データをそれぞれラッチする複数対の入力レジスタと、
前記複数対の入力レジスタそれぞれの対の前記第1の入力データと第2の入力データとをそれぞれ乗算し、乗算値が前記複数の第1のレジスタそれぞれにラッチされる複数の乗算器とを有し、
前記乗算器と加算回路とにより前記複数の第1の入力データと複数の第2の入力データそれぞれの乗算値を加算する積和回路を構成する、請求項1に記載のプロセッサ。 - 前記演算器は、
前記加算回路の出力を前記クロックに同期して累積するアキュムレータ回路を有する、請求項1または2に記載のプロセッサ。 - 前記演算器は、
前記第1の加算器と前記第2の加算器の入力に設けられたマスク回路に、前記選択のための第1の制御値を設定する制御回路を有し、
1組の演算対象データの数が前記複数対の入力レジスタの数より多い場合、前記1組の演算対象データが分割して複数のサイクルで前記複数対の入力レジスタに入力され、
前記制御回路は、前記演算対象データに含まれ第1のサイクルで入力された前記第1の入力データと第2の入力データの第1の乗算値を前記第1の加算器に入力し、前記演算対象データに含まれ前記第1のサイクルの次の第2のサイクルで入力された前記第1の入力データと第2の入力データの第2の乗算値を前記第2の加算器に入力する前記第1の制御値を、前記マスク回路に設定する、請求項2に記載のプロセッサ。 - 前記演算器は、
前記複数の乗算器と前記複数の第1のレジスタとのそれぞれの間に、前記複数の乗算器の出力と前記複数の第1のレジスタの出力とをそれぞれ加算する複数の第4の加算器を有し、
前記第4の加算器の入力に、前記第1のレジスタの出力を入力または非入力の一方に設定可能なマスク回路を有する、請求項2に記載のプロセッサ。 - 前記複数の第1の入力データは、画像データの近傍マトリクスの複数の画素データであり、
前記複数の第2の入力データは、前記近傍マトリクスに対応する係数マトリクスの複数の係数データであり、
前記積和回路は、前記近傍マトリクスの複数の画素データと、前記係数マトリクスの複数の係数データとの積和値を算出する、請求項2に記載のプロセッサ。 - プロセッサと、
前記プロセッサがアクセスするメインメモリとを有し、
前記プロセッサは、
複数のプロセッサコアと、
前記複数のプロセッサコアからアクセスされる内部メモリとを有し、
前記複数のプロセッサコアのいずれかが有する演算器は、
第1ステージに設けられた複数の第1のレジスタと、
前記複数の第1のレジスタの複数の出力を加算する第1の加算器と、第2ステージに設けられ前記第1の加算器の出力をラッチする第2のレジスタとを有する通常加算回路と、
前記複数の第1のレジスタの複数の出力を加算する第2の加算器を有する追越し加算回路と、
前記通常加算回路の出力と前記追越し加算回路の出力とを加算する第3の加算器と、第3ステージに設けられ前記第3の加算器の出力をラッチする第3のレジスタとを有する合成回路とを有し、
前記第1の加算器と前記第2の加算器は、前記複数の第1のレジスタの複数の出力を互いに排他的に選択して入力し、前記第1、第2、第3のレジスタはクロックに同期して入力をラッチする、加算回路を有する、情報処理装置。 - 複数のプロセッサコアと、
前記複数のプロセッサコアからアクセスされる内部メモリとを有し、
前記複数のプロセッサコアのいずれかが有する演算器は、
第1ステージに設けられた複数の第1のレジスタと、
前記複数の第1のレジスタの複数の出力を加算する第1の加算器と、第2ステージに設けられ前記第1の加算器の出力をラッチする第2のレジスタとを有する通常加算回路と、
前記複数の第1のレジスタの複数の出力を加算する第2の加算器を有する追越し加算回路と、
前記通常加算回路の出力と前記追越し加算回路の出力とを加算する第3の加算器と、第3ステージに設けられ前記第3の加算器の出力をラッチする第3のレジスタとを有する合成回路とを有する加算回路を有するプロセッサの動作方法であって、
前記第1の加算器と前記第2の加算器は、前記複数の第1のレジスタの複数の出力を互いに排他的に選択して入力し、
前記第1、第2、第3のレジスタはクロックに同期して入力をラッチし、
第1のサイクルで入力された単数または複数の第1の入力データを前記第1の加算器が加算し、当該加算値を前記第2のレジスタがラッチし、
前記第1のサイクルの次の第2のサイクルで入力された単数または複数の第2の入力データを前記第2の加算器が加算し、
通常加算回路の出力と、前記追越し加算回路の出力とを前記第3の加算器が加算し、当該加算値を前記第3のレジスタがラッチする、プロセッサの動作方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017013396A JP6864224B2 (ja) | 2017-01-27 | 2017-01-27 | プロセッサ、情報処理装置及びプロセッサの動作方法 |
PCT/JP2018/000279 WO2018139196A1 (ja) | 2017-01-27 | 2018-01-10 | プロセッサ、情報処理装置及びプロセッサの動作方法 |
US16/352,919 US10768894B2 (en) | 2017-01-27 | 2019-03-14 | Processor, information processing apparatus and operation method for processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017013396A JP6864224B2 (ja) | 2017-01-27 | 2017-01-27 | プロセッサ、情報処理装置及びプロセッサの動作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018120547A JP2018120547A (ja) | 2018-08-02 |
JP6864224B2 true JP6864224B2 (ja) | 2021-04-28 |
Family
ID=62978309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017013396A Active JP6864224B2 (ja) | 2017-01-27 | 2017-01-27 | プロセッサ、情報処理装置及びプロセッサの動作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10768894B2 (ja) |
JP (1) | JP6864224B2 (ja) |
WO (1) | WO2018139196A1 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019090325A1 (en) * | 2017-11-06 | 2019-05-09 | Neuralmagic, Inc. | Methods and systems for improved transforms in convolutional neural networks |
US20190156214A1 (en) | 2017-11-18 | 2019-05-23 | Neuralmagic Inc. | Systems and methods for exchange of data in distributed training of machine learning algorithms |
WO2019215907A1 (ja) * | 2018-05-11 | 2019-11-14 | オリンパス株式会社 | 演算処理装置 |
US11449363B2 (en) | 2018-05-31 | 2022-09-20 | Neuralmagic Inc. | Systems and methods for improved neural network execution |
US10832133B2 (en) | 2018-05-31 | 2020-11-10 | Neuralmagic Inc. | System and method of executing neural networks |
US11636343B2 (en) | 2018-10-01 | 2023-04-25 | Neuralmagic Inc. | Systems and methods for neural network pruning with accuracy preservation |
US11544559B2 (en) | 2019-01-08 | 2023-01-03 | Neuralmagic Inc. | System and method for executing convolution in a neural network |
JP7370158B2 (ja) | 2019-04-03 | 2023-10-27 | 株式会社Preferred Networks | 情報処理装置および情報処理方法 |
WO2021026225A1 (en) | 2019-08-08 | 2021-02-11 | Neuralmagic Inc. | System and method of accelerating execution of a neural network |
US11556757B1 (en) | 2020-12-10 | 2023-01-17 | Neuralmagic Ltd. | System and method of executing deep tensor columns in neural networks |
CN113434113B (zh) * | 2021-06-24 | 2022-03-11 | 上海安路信息科技股份有限公司 | 基于静态配置数字电路的浮点数乘累加控制方法及系统 |
US11960982B1 (en) | 2021-10-21 | 2024-04-16 | Neuralmagic, Inc. | System and method of determining and executing deep tensor columns in neural networks |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB8326690D0 (en) | 1983-10-05 | 1983-11-09 | Secr Defence | Digital data processor |
KR101893796B1 (ko) | 2012-08-16 | 2018-10-04 | 삼성전자주식회사 | 동적 데이터 구성을 위한 방법 및 장치 |
-
2017
- 2017-01-27 JP JP2017013396A patent/JP6864224B2/ja active Active
-
2018
- 2018-01-10 WO PCT/JP2018/000279 patent/WO2018139196A1/ja active Application Filing
-
2019
- 2019-03-14 US US16/352,919 patent/US10768894B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2018139196A1 (ja) | 2018-08-02 |
US20190212982A1 (en) | 2019-07-11 |
JP2018120547A (ja) | 2018-08-02 |
US10768894B2 (en) | 2020-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6864224B2 (ja) | プロセッサ、情報処理装置及びプロセッサの動作方法 | |
KR102443546B1 (ko) | 행렬 곱셈기 | |
JP6767660B2 (ja) | プロセッサ、情報処理装置及びプロセッサの動作方法 | |
CN109165041B (zh) | 神经网络处理装置及其执行向量范数指令的方法 | |
CN108229654B (zh) | 神经网络卷积运算装置及方法 | |
JP7315317B2 (ja) | プロセッサおよびプロセッサのデータ転送方法 | |
KR102203746B1 (ko) | 인공 신경망 정방향 연산 실행용 장치와 방법 | |
WO2017185387A1 (zh) | 一种用于执行全连接层神经网络正向运算的装置和方法 | |
JP6905573B2 (ja) | 計算装置と計算方法 | |
CN112612521A (zh) | 一种用于执行矩阵乘运算的装置和方法 | |
WO2019205617A1 (zh) | 一种矩阵乘法的计算方法及装置 | |
CN106846235B (zh) | 一种利用NVIDIA Kepler GPU汇编指令加速的卷积优化方法及系统 | |
CN116541647A (zh) | 运算加速器、处理方法及相关设备 | |
CN112005251A (zh) | 运算处理装置 | |
CN111028136B (zh) | 一种人工智能处理器处理二维复数矩阵的方法和设备 | |
WO2021083101A1 (zh) | 数据处理方法、装置及相关产品 | |
CN117950624A (zh) | 基于计算装置的数据计算方法、装置及相关产品 | |
CN115033843A (zh) | 基于三角脉动阵列的协方差矩阵计算的电路实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191008 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20201222 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210205 |
|
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: 20210302 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210315 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6864224 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |