JP2023085414A - ベクトル縮小プロセッサ - Google Patents
ベクトル縮小プロセッサ Download PDFInfo
- Publication number
- JP2023085414A JP2023085414A JP2023058509A JP2023058509A JP2023085414A JP 2023085414 A JP2023085414 A JP 2023085414A JP 2023058509 A JP2023058509 A JP 2023058509A JP 2023058509 A JP2023058509 A JP 2023058509A JP 2023085414 A JP2023085414 A JP 2023085414A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- reduction
- temporary
- input
- input vector
- 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.)
- Granted
Links
- 239000013598 vector Substances 0.000 title claims abstract description 837
- 230000009467 reduction Effects 0.000 title claims abstract description 533
- 238000004364 calculation method Methods 0.000 claims abstract description 23
- 239000011159 matrix material Substances 0.000 claims description 38
- 230000008602 contraction Effects 0.000 claims description 13
- 238000012545 processing Methods 0.000 abstract description 58
- 238000000034 method Methods 0.000 abstract description 13
- 230000015654 memory Effects 0.000 description 42
- 238000004590 computer program Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000011218 segmentation Effects 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- 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
- G06F15/8053—Vector processors
-
- 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
- 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
- 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/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
- G06F9/3895—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
- G06F9/3897—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path
-
- 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/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Peptides Or Proteins (AREA)
Abstract
【解決手段】複数のセルを備え、複数の要素からなる入力ベクトルを縮小するように構成されたベクトル処理システムにおいて、べクトル縮小を実行する方法は、入力ベクトルの指定された第1の要素を受ける指定された第1のセル以外の複数のセルの各々が、入力ベクトルの特定の要素を受け、1以上のセルのうちの別のセルから一時縮小要素を受け、特定の要素と一時縮小要素とを用いて縮小演算を実行し、特定の要素と一時縮小要素とを用いて縮小演算を実行した結果を、新たな一時縮小要素として与え、入力ベクトルの最後の要素を用いて縮小演算を実行した結果に相当する新たな一時縮小要素を、入力ベクトルを縮小したものとして出力する。
【選択図】図6
Description
本明細書は、ハードウェアにおけるベクトル縮小の実行に関する。
概して、本明細書はベクトル縮小を計算する専用ハードウェア回路について説明する。
特定のセグメントの最後の要素として指定されると判断することと、少なくとも判断に基づいて、複数のセルのうちの別のセルに対し、プレースホルダー信号を与えることとを含む。特定の要素と一時縮小要素とを用いて縮小演算を実行した結果を、新たな一時縮小要素として与えることは、特定の要素に対応する制御ベクトルの特定の要素を受けることと、少なくとも制御ベクトルの特定の要素に基づいて、特定の要素は入力ベクトルの特定のセグメントの最後の要素として指定されないと判断することと、少なくとも判断に基づいて、複数のセルのうちの別のセルに対し、入力ベクトルの特定のセグメントの最後の要素として指定されない特定の要素と、一時縮小要素とを用いて縮小演算を実行した結果を、新たな一時縮小要素として与えることとを含む。
詳細な説明
ベクトル縮小は、複数の要素からなる入力ベクトルに対して実行されることにより、スカラーである出力、または入力ベクトルよりも小さいすなわち低次元の複数の要素からなるベクトルである出力を生成するための、演算である。たとえば、合計ベクトル縮小演算は、入力ベクトルの要素の合計であるスカラー出力を生成する。別の例として、最大値または最小値ベクトル縮小演算はそれぞれ、入力ベクトルの要素のうちの最大または入力ベクトルの要素のうちの最小である、スカラー出力を生成する。同様に、最大インデックスまたは最小インデックスベクトル縮小演算はそれぞれ、入力ベクトルの最大値または入力ベクトルの最小値の、入力ベクトルのインデックスを示す出力を生成する。その他のベクトル縮小演算が可能であり、たとえば、入力ベクトルの要素の積に相当するスカラー出力を生成する積ベクトル縮小演算、入力ベクトルの要素の算術平均に相当するスカラー出力を生成する平均ベクトル縮小演算などである。
トル縮小演算のようなベクトル縮小演算を、入力行列のベクトルに適用することにより、たとえば画像の平滑化を行うことまたは画像の画素サイズを減じることができる。
る。たとえば、行列-ベクトル処理エンジン150は、入力ベクトルまたは行列のような、ベクトルまたは行列計算を実行するためのデータを、専用ハードウェア回路110に導いてもよい。行列-ベクトル処理エンジン150は、専用ハードウェア回路110が行列-ベクトル処理エンジン150から受けたデータに対して必要な計算を実行するよう専用ハードウェア回路110を制御するための命令または制御信号を、専用ハードウェア回路110に送信してもよい。
6に与えることができ、シーケンサ206は、この命令を、ベクトル縮小を実行するよう回路200を制御するローレベル制御信号に変換する。たとえば、シーケンサ206が生成する制御信号は、回路200内のデータフローを管理することができる、たとえば、入力ベクトルをどこに格納すべきであるか、または、そうでなければデータを回路200を通してどのように導くべきであるかを、管理することができる。シーケンサ206は、回路200上でベクトル縮小計算を開始することを求める命令を受けることができ、ベクトル縮小計算を開始するようベクトル縮小ユニット212を制御するための制御信号を生成することができる。
るべきか最大値もしくは最小値ベクトル縮小であるべきか等を指定する情報とに基づいて、ベクトル縮小を計算するように設計される。ベクトル縮小のタイプを指定する情報は、その他の情報たとえばセグメント化ベクトル縮小を実行するための情報を含み得る。いくつかの実装形態において、ベクトル縮小ユニット212は、ベクトル縮小ユニット212がベクトル縮小を実行するために引数すなわち入力ベクトルのみが必要となるような、予め定められたベクトル縮小演算を実行するように構成されてもよい。たとえば、ベクトル縮小ユニット212は、入力ベクトルの予め定められた要素に対し、合計ベクトル縮小演算またはセグメントベクトル縮小のみを実行するように構成されてもよい。この情報を受けた後に、ベクトル縮小ユニット212は、ベクトル縮小ユニット212において必要な入力すなわち入力ベクトルとベクトル縮小パラメータとを受けたらベクトル縮小がさもなければ自動化されるよう、追加の制御信号または入力を受けることなくベクトル縮小を実行してもよい。このような実装形態において、ベクトル縮小演算が一旦開始されると、ベクトル縮小ユニット212は受けた情報に基づいて、オフチップからの追加情報を要求することなく、ベクトル縮小全体を実行することができる。いくつかの実装形態において、ベクトル縮小演算を、ベクトル縮小ユニット212が必要な情報を受けたことに応じて、トリガしてもよい、すなわち開始信号またはその他のトリガは不要である。その他の実装形態では、開始信号またはその他の信号が、ベクトル縮小演算を実行するようベクトル縮小ユニット212をトリガしてもよい。
データストリームとして受ける。ベクトル縮小ユニット212は、入力ベクトルの要素に対し、制御信号が示すベクトル縮小演算を実行する。たとえば、ベクトル縮小ユニット212は、入力ベクトルの各要素を受けるとベクトル縮小演算を実行してもよい。これに代えて、ベクトル縮小エンジン212は、入力ベクトルのすべての要素を受けてもよく、または入力ベクトルの要素の一部を受けてもよく、上記入力ベクトルの要素または入力ベクトルの一部に対してこれを受けた後にベクトル縮小演算を実行してもよい。いくつかの例において、ベクトル縮小演算の結果は、たとえば合計ベクトル縮小の場合、ベクトル縮小演算を適用する入力ベクトルの要素の順序に依存しない。このような例において、ベクトル縮小ユニット212は、入力ベクトルの要素に対し、入力ベクトルにおける要素の配列順序と異なる順序で、または、ベクトル縮小ユニット212がこれらの要素を受けた順序と異なる順序で、ベクトル縮小演算を実行すると判断してもよい。ベクトル縮小演算が入力ベクトルのすべての要素に適用された後に、ベクトル縮小ユニット212は、ベクトル縮小の結果を、たとえばメモリ208に、または専用ハードウェア回路200の別のコンポーネントに出力することができる。
ーダ[3]が受けた値が、前の入力ベクトル、たとえばその第1の要素を3×1入力ベクトルの第1の要素よりも前に受けた4×1入力ベクトルに対応する場合、値ローダ[3]が受けた値は入力レジスタ320に与えることができる。
ユニット300は結果のベクトルを出力することができ、このベクトルの各要素は、入力ベクトルのセグメントを縮小したものである。値出力340は、出力ベクトルの要素をレジスタ、たとえば出力レジスタに与えることができ、セグメント化入力ベクトル縮小の結果は、たとえばベクトル縮小ユニット330から出力されるスタッガード出力ベクトルとして、出力用にベクトルフォーマットで一緒に与えることができる。
所に、たとえば行列-ベクトル処理エンジン150または行列-ベクトル処理システム100の外部の別の目的地に、出力することができる。
もよい。そうすると、セル[1]は、ベクトル縮小制御信号405が指定したベクトル縮小演算、たとえば合計ベクトル縮小演算を実行して結果を生成することができる。たとえば、指定されたベクトル縮小演算が合計ベクトル縮小演算である場合、結果は入力ベクトル[0]の第1の要素および第2の要素の合計である。
トル縮小演算または最大インデックスベクトル縮小演算が指定された場合は、負の無限を初期化要素として使用することができる。最小値ベクトル縮小演算または最小インデックスベクトル縮小演算が指定された場合は、正の無限を初期化要素として使用することができる。いくつかの例において、特定のベクトル縮小演算に使用する初期化値は、外部のベクトル縮小ユニット400から、たとえばベクトル縮小制御信号405と同様の第2の信号として受けた信号によって示されるまたは与えられる。その他の実装形態において、セル430は、ベクトル縮小制御信号405が指定するベクトル縮小演算に基づいて初期化要素を決定することが可能であってもよい。たとえば、セル430は、合計ベクトル縮小演算を指定する信号をセル430が受けたことに基づいて、初期化要素としてnullを使用すべきであると判断することができる。
い。加えて、このような実装形態において、特定のタイプのベクトル縮小演算を実行するようアーキテクチャ500に命令するためのベクトル縮小制御信号505は不要であろう。よって、ベクトル縮小制御信号505およびマルチプレクサ508、510は任意であってもよい。
ことによってベクトル縮小を計算するように構成されている。いくつかの実装形態において、入力ベクトルの指定された第1の要素を受ける指定された第1のセルは、前のセルの出力を受けないので、動作(602~608)を実行しない。よって、指定された第1のセルは、入力ベクトルの、最初に指定された第1の要素を、システムにおける次のセルに与えるだけである。その他のセルの各々は、前のセルの出力を受け、一連の動作(602~608)を実行することによって、次のセルに与えられる、自身の出力を生成する。入力ベクトルの最後の要素に対応する、システムの最後のセルの出力は、指定されたベクトル縮小演算の実行結果である。
互いに異なるセルが、それぞれ異なるベクトル縮小演算を同時に実行することができる。これは、セグメント化ベクトル縮小演算が入力ベクトルに対して実行される場合と同様である。このような実装形態において、セルに与えられる制御信号を、回路が、たとえばレジスタにおいてベクトルとして受けてもよく、このベクトルの各要素は制御信号として対応するセルに与えることができる。ベクトル縮小演算のタイプは、たとえば、合計ベクトル縮小演算、最大値ベクトル縮小演算、最小値ベクトル縮小演算、最大インデックスベクトル縮小演算、最小インデックスベクトル縮小演算、平均ベクトル縮小演算、積ベクトル縮小演算、または、その他任意のベクトル縮小演算であってもよい。
てもよい。たとえば、図4のアーキテクチャ400において、セル[1]の出力を一時縮小要素としてセル[3]に与えてもよく、セル[3]の出力を一時縮小要素としてセル[2]に与えてもよい。これらの実装形態において、入力ベクトルの要素を処理する最後のセルの出力は、この入力ベクトルの縮小結果であろう。
を合計する、すなわち、演算(1)+2=3を実行する。第2のセル730に対する制御レジスタ740の要素は1である、すなわちセグメント化ベクトル縮小演算の実行を指定しているので、第2のセル730は、結果として得られた合計を、第2の出力750に出力する。加えて、第2のセル730はゼロを第3のセル730に出力する。いくつかの例において、第2のセル730は、第3のセル730に対し、異なる値、たとえば、null、正の無限または負の無限を出力してもよい。いくつかの例において、出力750は1つの出力であってもよく、たとえば、セル730はすべて同一の出力750に接続されてもよい。
以上のモジュールとして、実現することができる。これに代えてまたはこれに加えて、プログラム命令は、データ処理装置による実行のために適切な受信装置に送信される情報を符号化するために生成された、人為的に生成された伝搬信号、たとえばマシンによって生成された電気、光、または電磁信号上で符号化することができる。コンピュータ記憶媒体は、マシン読取可能記憶媒体、マシン読取可能記憶基盤、ランダムもしくはシリアルアクセスメモリデバイス、または、これらのうちの1つ以上を組み合わせたものであってもよい。
がら、コンピュータはこのようなデバイスを有していなくてもよい。加えて、コンピュータは別のデバイスに、たとえば、例を挙げると、携帯電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤー、ゲーム機、グローバルポジショニングシステム(GPS)受信機、またはポータブル記憶装置たとえばユニバーサル・シリアル・バス(USB)フラッシュデバイスに、埋め込まれていてもよい。
という観点から記載されている各種特徴を、複数の実施形態において別々に、または任意の適切な下位の組み合わせとして実現することも可能である。加えて、上記特徴は、特定の組み合わせで機能するものとして記載され最初にそういうものとしてクレームされている場合があるが、クレームされている組み合わせに含まれる1つ以上の特徴は、場合によってはこの組み合わせから省略することができ、クレームされている組み合わせは下位の組み合わせまたは下位の組み合わせの変形に関するものである場合がある。
Claims (22)
- 複数の要素からなる入力ベクトルを縮小するように構成されたベクトル縮小回路であって、前記ベクトル縮小回路は、
複数のセルを備え、前記入力ベクトルの指定された第1の要素を受ける指定された第1のセル以外の前記複数のセルの各々は、
前記入力ベクトルの特定の要素を受け、
前記複数のセルのうちの別のセルから一時縮小要素を受け、
前記特定の要素と前記一時縮小要素とを用いて縮小演算を実行し、
前記特定の要素と前記一時縮小要素とを用いて前記縮小演算を実行した結果を、新たな一時縮小要素として与える
ように構成されており、前記ベクトル縮小回路はさらに、
前記入力ベクトルの最後の要素を用いて前記縮小演算を実行した結果に相当する新たな一時縮小要素を、前記入力ベクトルを縮小したものとして出力するために与えるように構成された、出力回路を備える、ベクトル縮小回路。 - 前記縮小演算は最大値縮小演算であり、
前記特定の要素と前記一時縮小要素とを用いて縮小演算を実行することは、
前記特定の要素と前記一時縮小要素とを比較することと、
少なくとも前記比較に基づき、前記特定の要素と前記一時縮小要素とを用いて縮小演算を実行した結果として、前記特定の要素と前記一時縮小要素とのうちで最大のものを判断することとを含む、請求項1に記載のベクトル縮小回路。 - 前記縮小演算は最小値縮小演算であり、
前記特定の要素と前記一時縮小要素とを用いて縮小演算を実行することは、
前記特定の要素と前記一時縮小要素とを比較することと、
少なくとも前記比較に基づき、前記特定の要素と前記一時縮小要素とを用いて縮小演算を実行した結果として、前記特定の要素と前記一時縮小要素とのうちで最小のものを判断することとを含む、請求項1に記載のベクトル縮小回路。 - 前記縮小演算は合計縮小演算であり、
前記特定の要素と前記一時縮小要素とを用いて縮小演算を実行することは、
前記特定の要素と前記一時縮小要素とを用いて縮小演算を実行した結果として、前記特定の要素と前記一時縮小要素との合計を求めることを含む、請求項1に記載のベクトル縮小回路。 - 前記縮小演算は積縮小演算であり、
前記特定の要素と前記一時縮小要素とを用いて縮小演算を実行することは、
前記特定の要素と前記一時縮小要素とを用いて縮小演算を実行した結果として、前記特定の要素と前記一時縮小要素との積を求めることを含む、請求項1に記載のベクトル縮小回路。 - 前記縮小演算は最大インデックス演算であり、
前記特定の要素と前記一時縮小要素とを用いて縮小演算を実行することは、
前記一時縮小要素に対応するインデックスを示すデータを受けることと、
前記特定の要素と前記一時縮小要素とを比較することと、
少なくとも前記比較に基づいて、前記特定の要素と前記一時縮小要素とのうちで最大のものを判断することと、
少なくとも前記判断に基づき、前記特定の要素と前記一時縮小要素とを用いて縮小演算を実行した結果として、前記特定の要素に対応するインデックスまたは前記一時縮小要
素に対応する前記インデックスのうちの一方を、識別することとを含む、請求項1に記載のベクトル縮小回路。 - 前記縮小演算は最小インデックス演算であり、
前記特定の要素と前記一時縮小要素とを用いて縮小演算を実行することは、
前記一時縮小要素に対応するインデックスを示すデータを受けることと、
前記特定の要素と前記一時縮小要素とを比較することと、
少なくとも前記比較に基づいて、前記特定の要素と前記一時縮小要素とのうちで最小のものを判断することと、
少なくとも前記判断に基づき、前記特定の要素と前記一時縮小要素とを用いて縮小演算を実行した結果として、前記特定の要素に対応するインデックスまたは前記一時縮小要素に対応する前記インデックスのうちの一方を、識別することとを含む、請求項1に記載のベクトル縮小回路。 - 前記入力ベクトルの特定の要素を、要素のスタッガード入力として受ける、請求項1に記載のベクトル縮小回路。
- 前記入力ベクトルは、複数の要素からなる複数のセグメントを含むものとして識別される、請求項1に記載のベクトル縮小回路。
- 前記入力ベクトルの特定の要素は、前記入力ベクトルの特定のセグメントの指定された最後の要素であり、
前記入力ベクトルの指定された第1の要素を受ける指定された第1のセル以外の前記複数のセルの各々は、前記出力回路に対し、前記入力ベクトルの特定のセグメントを縮小したものとして、前記入力ベクトルの特定のセグメントの指定された最後の要素と前記一時縮小要素とを用いて縮小演算を実行した結果を与えるように構成される、請求項9に記載のベクトル縮小回路。 - 前記入力ベクトルの特定のセグメントの指定された最後の要素と前記一時縮小要素とを用いて前記縮小演算を実行した結果を、新たな一時縮小要素として与えることは、前記複数のセルのうちの別のセルに、前記新たな一時縮小要素として、プレースホルダー信号を与えることを含む、請求項10に記載のベクトル縮小回路。
- 前記出力回路は、前記入力ベクトルを縮小したものとして出力するために、複数の要素を与えるように構成され、前記複数の要素の各々は、前記入力ベクトルのセグメントの指定された最後の要素を用いて前記縮小演算を実行した結果に相当する新たな一時縮小要素である、請求項9に記載のベクトル縮小回路。
- 前記出力回路は、前記入力ベクトルを縮小したものとして出力するために、前記複数の要素を含む出力ベクトルを与えるように構成されている、請求項12に記載のベクトル縮小回路。
- 複数の要素からなる制御ベクトルを受けるように構成された制御レジスタを備え、前記要素からなる制御ベクトルは、前記入力ベクトルの要素からなる複数のセグメントを指定する、請求項9に記載のベクトル縮小回路。
- 前記特定の要素と前記一時縮小要素とを用いて前記縮小演算を実行した結果を、新たな一時縮小要素として与えることは、
前記特定の要素に対応する前記制御ベクトルの特定の要素を受けることと、
少なくとも前記制御ベクトルの特定の要素に基づいて、前記特定の要素は前記入力ベク
トルの特定のセグメントの最後の要素として指定されると判断することと、
少なくとも前記判断に基づいて、前記出力回路に対し、前記入力ベクトルの特定のセグメントの最後の要素として指定された特定の要素と、前記一時縮小要素とを用いて前記縮小演算を実行した結果を、前記入力ベクトルの特定のセグメントを縮小したものとして与えることとを含む、請求項14に記載のベクトル縮小回路。 - 前記特定の要素と前記一時縮小要素とを用いて前記縮小演算を実行した結果を、新たな一時縮小要素として与えることは、
前記特定の要素に対応する前記制御ベクトルの特定の要素を受けることと、
少なくとも前記制御ベクトルの特定の要素に基づいて、前記特定の要素は前記入力ベクトルの特定のセグメントの最後の要素として指定されると判断することと、
少なくとも前記判断に基づいて、前記複数のセルのうちの別のセルに対し、プレースホルダー信号を与えることとを含む、請求項14に記載のベクトル縮小回路。 - 前記特定の要素と前記一時縮小要素とを用いて前記縮小演算を実行した結果を、新たな一時縮小要素として与えることは、
前記特定の要素に対応する前記制御ベクトルの特定の要素を受けることと、
少なくとも前記制御ベクトルの特定の要素に基づいて、前記特定の要素は前記入力ベクトルの特定のセグメントの最後の要素として指定されないと判断することと、
少なくとも前記判断に基づいて、前記複数のセルのうちの別のセルに対し、前記入力ベクトルの特定のセグメントの最後の要素として指定されない特定の要素と、前記一時縮小要素とを用いて前記縮小演算を実行した結果を、新たな一時縮小要素として与えることとを含む、請求項14に記載のベクトル縮小回路。 - 前記出力回路は、ベクトルまたは行列の置換を計算するように構成された置換回路に対し、前記入力ベクトルを縮小したものを与える、請求項1に記載のベクトル縮小回路。
- 前記複数のセルの各々は、前記特定の要素と前記一時縮小要素とを用いて実行する前記縮小演算のタイプを指定する制御信号を受けるように構成されている、請求項1に記載のベクトル縮小回路。
- 前記一時縮小要素は、前記入力ベクトルの前記特定の要素に先行する前記入力ベクトルの要素に対して指定された縮小演算を実行した結果に相当する、請求項1に記載のベクトル縮小回路。
- 前記複数のセルの各々は、
前記入力ベクトルの特定の要素を受けるように構成された入力ベクトル要素レジスタと、
前記複数のセルのうちの別のセルから一時縮小要素を受けるように構成された一時縮小要素レジスタと、
前記入力ベクトルの特定の要素と一時縮小要素とを用いて縮小演算を実行するように構成された計算回路と、
前記入力ベクトルの特定の要素と一時縮小要素とを用いて縮小演算を実行した結果を新たな一時縮小要素として与えるように構成された結果レジスタとを含む、請求項1に記載のベクトル縮小回路。 - 前記計算回路は、比較回路、合計回路、および乗算回路のうちの少なくとも1つを含む、請求項21に記載のベクトル縮小回路。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/477,791 | 2017-04-03 | ||
US15/477,791 US10108581B1 (en) | 2017-04-03 | 2017-04-03 | Vector reduction processor |
PCT/US2017/066058 WO2018186918A1 (en) | 2017-04-03 | 2017-12-13 | Vector reduction processor |
JP2019538667A JP7055809B2 (ja) | 2017-04-03 | 2017-12-13 | ベクトル縮小プロセッサ |
JP2022063377A JP7256914B2 (ja) | 2017-04-03 | 2022-04-06 | ベクトル縮小プロセッサ |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022063377A Division JP7256914B2 (ja) | 2017-04-03 | 2022-04-06 | ベクトル縮小プロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023085414A true JP2023085414A (ja) | 2023-06-20 |
JP7485820B2 JP7485820B2 (ja) | 2024-05-16 |
Family
ID=60991531
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019538667A Active JP7055809B2 (ja) | 2017-04-03 | 2017-12-13 | ベクトル縮小プロセッサ |
JP2022063377A Active JP7256914B2 (ja) | 2017-04-03 | 2022-04-06 | ベクトル縮小プロセッサ |
JP2023058509A Active JP7485820B2 (ja) | 2017-04-03 | 2023-03-31 | ベクトル縮小プロセッサ |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019538667A Active JP7055809B2 (ja) | 2017-04-03 | 2017-12-13 | ベクトル縮小プロセッサ |
JP2022063377A Active JP7256914B2 (ja) | 2017-04-03 | 2022-04-06 | ベクトル縮小プロセッサ |
Country Status (10)
Country | Link |
---|---|
US (5) | US10108581B1 (ja) |
EP (2) | EP4086760B1 (ja) |
JP (3) | JP7055809B2 (ja) |
KR (3) | KR102471597B1 (ja) |
CN (2) | CN108694055B (ja) |
DK (2) | DK3552094T3 (ja) |
FI (1) | FI4086760T3 (ja) |
HK (1) | HK1259157A1 (ja) |
TW (5) | TWI828502B (ja) |
WO (1) | WO2018186918A1 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10936942B2 (en) | 2017-11-21 | 2021-03-02 | Google Llc | Apparatus and mechanism for processing neural network tasks using a single chip package with multiple identical dies |
US11277455B2 (en) | 2018-06-07 | 2022-03-15 | Mellanox Technologies, Ltd. | Streaming system |
US20200106828A1 (en) * | 2018-10-02 | 2020-04-02 | Mellanox Technologies, Ltd. | Parallel Computation Network Device |
US11625393B2 (en) | 2019-02-19 | 2023-04-11 | Mellanox Technologies, Ltd. | High performance computing system |
EP3699770A1 (en) | 2019-02-25 | 2020-08-26 | Mellanox Technologies TLV Ltd. | Collective communication system and methods |
US11294670B2 (en) | 2019-03-27 | 2022-04-05 | Intel Corporation | Method and apparatus for performing reduction operations on a plurality of associated data element values |
CN110069737B (zh) * | 2019-04-19 | 2020-08-14 | 北京三快在线科技有限公司 | 内容生成方法、装置、计算机设备及存储介质 |
US11216281B2 (en) * | 2019-05-14 | 2022-01-04 | International Business Machines Corporation | Facilitating data processing using SIMD reduction operations across SIMD lanes |
US10997116B2 (en) * | 2019-08-06 | 2021-05-04 | Microsoft Technology Licensing, Llc | Tensor-based hardware accelerator including a scalar-processing unit |
CN110580288B (zh) * | 2019-08-23 | 2022-09-09 | 腾讯科技(深圳)有限公司 | 基于人工智能的文本分类方法和装置 |
CN111105042B (zh) * | 2019-12-13 | 2023-07-25 | 广东浪潮大数据研究有限公司 | 一种并行消息处理方法、系统及相关装置 |
US11750699B2 (en) | 2020-01-15 | 2023-09-05 | Mellanox Technologies, Ltd. | Small message aggregation |
US11252027B2 (en) | 2020-01-23 | 2022-02-15 | Mellanox Technologies, Ltd. | Network element supporting flexible data reduction operations |
US11876885B2 (en) | 2020-07-02 | 2024-01-16 | Mellanox Technologies, Ltd. | Clock queue with arming and/or self-arming features |
US11556378B2 (en) | 2020-12-14 | 2023-01-17 | Mellanox Technologies, Ltd. | Offloading execution of a multi-task parameter-dependent operation to a network device |
US20240004647A1 (en) * | 2022-07-01 | 2024-01-04 | Andes Technology Corporation | Vector processor with vector and element reduction method |
US11922237B1 (en) | 2022-09-12 | 2024-03-05 | Mellanox Technologies, Ltd. | Single-step collective operations |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0877142A (ja) * | 1994-08-31 | 1996-03-22 | Fujitsu Ltd | ベクトルプロセッサ |
JP2004013185A (ja) * | 2002-06-03 | 2004-01-15 | Matsushita Electric Ind Co Ltd | プロセッサ |
JP2007533009A (ja) * | 2004-04-07 | 2007-11-15 | サンドブリッジ テクノロジーズ インコーポレーテッド | シーケンシャルセマンティクスを有する並列ベクトル乗算リデュース演算を有するプロセッサ |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4839845A (en) | 1986-03-31 | 1989-06-13 | Unisys Corporation | Method and apparatus for performing a vector reduction |
US5423051A (en) | 1992-09-24 | 1995-06-06 | International Business Machines Corporation | Execution unit with an integrated vector operation capability |
JP3334330B2 (ja) | 1994-05-17 | 2002-10-15 | 日産自動車株式会社 | 燃料噴射弁 |
KR100267089B1 (ko) * | 1996-08-19 | 2000-11-01 | 윤종용 | 스칼라/벡터연산이조합된단일명령복수데이터처리 |
TW361051B (en) * | 1997-01-09 | 1999-06-11 | Matsushita Electric Ind Co Ltd | Motion vector detection apparatus |
EP1623307B1 (en) * | 2003-05-09 | 2015-07-01 | QUALCOMM Incorporated | Processor reduction unit for accumulation of multiple operands with or without saturation |
US20060101244A1 (en) * | 2004-11-10 | 2006-05-11 | Nvidia Corporation | Multipurpose functional unit with combined integer and floating-point multiply-add pipeline |
US8218635B2 (en) | 2005-09-28 | 2012-07-10 | Synopsys, Inc. | Systolic-array based systems and methods for performing block matching in motion compensation |
US8065503B2 (en) * | 2006-12-15 | 2011-11-22 | International Business Machines Corporation | Iteratively processing data segments by concurrently transmitting to, processing by, and receiving from partnered process |
EP1936492A1 (en) | 2006-12-22 | 2008-06-25 | Telefonaktiebolaget LM Ericsson (publ) | SIMD processor with reduction unit |
US7953684B2 (en) * | 2007-01-31 | 2011-05-31 | International Business Machines Corporation | Method and system for optimal parallel computing performance |
US20090150648A1 (en) * | 2007-12-06 | 2009-06-11 | Eric Oliver Mejdrich | Vector Permute and Vector Register File Write Mask Instruction Variant State Extension for RISC Length Vector Instructions |
US8209525B2 (en) * | 2008-08-15 | 2012-06-26 | Apple Inc. | Method and apparatus for executing program code |
US8417921B2 (en) * | 2008-08-15 | 2013-04-09 | Apple Inc. | Running-min and running-max instructions for processing vectors using a base value from a key element of an input vector |
US20120023308A1 (en) | 2009-02-02 | 2012-01-26 | Renesas Electronics Corporation | Parallel comparison/selection operation apparatus, processor, and parallel comparison/selection operation method |
FR2949637B1 (fr) | 2009-08-28 | 2011-09-23 | Commissariat Energie Atomique | Dispositif de calcul reconfigurable sur voisinage flexible de pixels |
US8447954B2 (en) * | 2009-09-04 | 2013-05-21 | International Business Machines Corporation | Parallel pipelined vector reduction in a data processing system |
US8458243B1 (en) | 2010-03-03 | 2013-06-04 | Altera Corporation | Digital signal processing circuit blocks with support for systolic finite-impulse-response digital filtering |
US9141386B2 (en) | 2010-09-24 | 2015-09-22 | Intel Corporation | Vector logical reduction operation implemented using swizzling on a semiconductor chip |
US20120290819A1 (en) | 2011-05-09 | 2012-11-15 | Altera Corporation | Dsp block with embedded floating point structures |
EP2831692A1 (en) | 2012-03-30 | 2015-02-04 | Intel Corporation | Apparatus and method for selecting elements of a vector coumputation |
US9342479B2 (en) * | 2012-08-23 | 2016-05-17 | Qualcomm Incorporated | Systems and methods of data extraction in a vector processor |
US9588766B2 (en) * | 2012-09-28 | 2017-03-07 | Intel Corporation | Accelerated interlane vector reduction instructions |
KR101772299B1 (ko) * | 2012-12-28 | 2017-08-28 | 인텔 코포레이션 | 스트라이딩된 액세스 패턴을 가진 벡터 레지스터에서 성분들을 축소하기 위한 명령어 |
US20150052330A1 (en) | 2013-08-14 | 2015-02-19 | Qualcomm Incorporated | Vector arithmetic reduction |
GB2519108A (en) * | 2013-10-09 | 2015-04-15 | Advanced Risc Mach Ltd | A data processing apparatus and method for controlling performance of speculative vector operations |
US20150143076A1 (en) | 2013-11-15 | 2015-05-21 | Qualcomm Incorporated | VECTOR PROCESSING ENGINES (VPEs) EMPLOYING DESPREADING CIRCUITRY IN DATA FLOW PATHS BETWEEN EXECUTION UNITS AND VECTOR DATA MEMORY TO PROVIDE IN-FLIGHT DESPREADING OF SPREAD-SPECTRUM SEQUENCES, AND RELATED VECTOR PROCESSING INSTRUCTIONS, SYSTEMS, AND METHODS |
US9355061B2 (en) * | 2014-01-28 | 2016-05-31 | Arm Limited | Data processing apparatus and method for performing scan operations |
CN103995688B (zh) * | 2014-05-30 | 2016-10-12 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种基于标签的无序矢量归约电路 |
US9851970B2 (en) * | 2014-12-23 | 2017-12-26 | Intel Corporation | Method and apparatus for performing reduction operations on a set of vector elements |
US10192162B2 (en) * | 2015-05-21 | 2019-01-29 | Google Llc | Vector computation unit in a neural network processor |
US9805303B2 (en) * | 2015-05-21 | 2017-10-31 | Google Inc. | Rotating data for neural network computations |
US9537530B1 (en) * | 2015-06-26 | 2017-01-03 | Intel Corporation | Transceiver device and method of processing signals |
US10146535B2 (en) * | 2016-10-20 | 2018-12-04 | Intel Corporatoin | Systems, apparatuses, and methods for chained fused multiply add |
US9959247B1 (en) * | 2017-02-17 | 2018-05-01 | Google Llc | Permuting in a matrix-vector processor |
-
2017
- 2017-04-03 US US15/477,791 patent/US10108581B1/en active Active
- 2017-12-13 KR KR1020217043370A patent/KR102471597B1/ko active IP Right Grant
- 2017-12-13 DK DK17829778.4T patent/DK3552094T3/da active
- 2017-12-13 DK DK22177238.7T patent/DK4086760T3/da active
- 2017-12-13 KR KR1020197020740A patent/KR102256109B1/ko active IP Right Grant
- 2017-12-13 JP JP2019538667A patent/JP7055809B2/ja active Active
- 2017-12-13 EP EP22177238.7A patent/EP4086760B1/en active Active
- 2017-12-13 WO PCT/US2017/066058 patent/WO2018186918A1/en unknown
- 2017-12-13 KR KR1020217015113A patent/KR102347374B1/ko active IP Right Grant
- 2017-12-13 EP EP17829778.4A patent/EP3552094B1/en active Active
- 2017-12-13 FI FIEP22177238.7T patent/FI4086760T3/fi active
-
2018
- 2018-01-04 TW TW111150786A patent/TWI828502B/zh active
- 2018-01-04 TW TW108130503A patent/TWI738042B/zh active
- 2018-01-04 TW TW112146349A patent/TW202429313A/zh unknown
- 2018-01-04 TW TW107100277A patent/TWI673648B/zh active
- 2018-01-04 TW TW110130102A patent/TWI791262B/zh active
- 2018-02-06 CN CN201810118791.6A patent/CN108694055B/zh active Active
- 2018-02-06 CN CN201911179581.9A patent/CN111142937B/zh active Active
- 2018-09-12 US US16/129,663 patent/US10706007B2/en active Active
-
2019
- 2019-01-23 HK HK19101204.9A patent/HK1259157A1/zh unknown
-
2020
- 2020-07-01 US US16/918,448 patent/US11061854B2/en active Active
-
2021
- 2021-06-22 US US17/354,947 patent/US11940946B2/en active Active
-
2022
- 2022-04-06 JP JP2022063377A patent/JP7256914B2/ja active Active
-
2023
- 2023-03-31 JP JP2023058509A patent/JP7485820B2/ja active Active
-
2024
- 2024-01-31 US US18/429,142 patent/US20240168914A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0877142A (ja) * | 1994-08-31 | 1996-03-22 | Fujitsu Ltd | ベクトルプロセッサ |
JP2004013185A (ja) * | 2002-06-03 | 2004-01-15 | Matsushita Electric Ind Co Ltd | プロセッサ |
JP2007533009A (ja) * | 2004-04-07 | 2007-11-15 | サンドブリッジ テクノロジーズ インコーポレーテッド | シーケンシャルセマンティクスを有する並列ベクトル乗算リデュース演算を有するプロセッサ |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7256914B2 (ja) | ベクトル縮小プロセッサ | |
US12014272B2 (en) | Vector computation unit in a neural network processor | |
US20220261622A1 (en) | Special purpose neural network training chip |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230414 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230414 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231024 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20231025 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20240123 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240325 |
|
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: 20240402 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240502 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7485820 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |