JP7269382B2 - 計算装置、方法、プリント基板、およびコンピュータ読み取り可能な記録媒体 - Google Patents

計算装置、方法、プリント基板、およびコンピュータ読み取り可能な記録媒体 Download PDF

Info

Publication number
JP7269382B2
JP7269382B2 JP2021576637A JP2021576637A JP7269382B2 JP 7269382 B2 JP7269382 B2 JP 7269382B2 JP 2021576637 A JP2021576637 A JP 2021576637A JP 2021576637 A JP2021576637 A JP 2021576637A JP 7269382 B2 JP7269382 B2 JP 7269382B2
Authority
JP
Japan
Prior art keywords
component
bit
bit width
value
computing device
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
Application number
JP2021576637A
Other languages
English (en)
Other versions
JP2022538238A (ja
Inventor
少礼 劉
詩怡 周
道福 劉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anhui Cambricon Information Technology Co Ltd
Original Assignee
Anhui Cambricon Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Anhui Cambricon Information Technology Co Ltd filed Critical Anhui Cambricon Information Technology Co Ltd
Publication of JP2022538238A publication Critical patent/JP2022538238A/ja
Application granted granted Critical
Publication of JP7269382B2 publication Critical patent/JP7269382B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/491Computations with decimal numbers radix 12 or 20.
    • G06F7/498Computations with decimal numbers radix 12 or 20. using counter-type accumulators
    • G06F7/4981Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Neurology (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Image Processing (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Complex Calculations (AREA)

Description

<関連出願の相互参照>
本願は、2020年3月17日に提出した、出願番号が202010188341.1であり、発明の名称が「計算装置、方法、プリント基板、およびコンピュータ読み取り可能な記録媒体」である中国特許出願に基づき優先権を主張し、ここで、その内容の全ては、援用により本願に組み込まれる。
本開示は、一般的に、データ処理に関する。より詳細には、本開示は、マルチビット幅値を処理するための計算装置、方法、集積回路用プリント基板、およびコンピュータ読み取り可能な記録媒体に関する。
現在、異なるタイプのプロセッサによって処理されるデータのビット幅は異なる場合がある。特定のデータ型で演算を実行するプロセッサの場合、その処理するデータのビット幅は制限される場合が多い。たとえば、固定小数点演算器の場合、その通常処理できるデータのビット幅が16ビットを超えなく、例えば16ビットの整数型データを処理できる。しかし、計算コスト及びオーバヘッドを節約し、計算効率を向上させるために、ビット幅が制限されたプロセッサがより多くのビット幅のデータを処理できることをどのように実現するかは、解決しようとする技術的課題になっている。
背景技術に言及している技術的課題を少なくとも部分的に解決するために、本開示は、マルチビット幅のデータを分割するための方式を提案する。本開示の分割方式により、マルチビット幅のデータをビット幅の小さい少なくとも2つのデータに分割して表現することができ、これにより、プロセッサの処理ビット幅が限られているシナリオで、ビット幅の小さい2つのデータを用いて計算に関与することができる。
第1の態様では、本開示は、ニューラルネットワーク演算に用いるようにマルチビット幅値を処理するための計算装置であって、前記マルチビット幅値と、前記マルチビット幅値を表す第1の成分のビット幅情報と第2の成分のビット幅情報を少なくとも含む構成情報とを受信するように構成される入力回路と、前記第2の成分のビット幅情報に関連付けられたスケーリング係数に基づいて、調整されたマルチビット幅値を計算して前記マルチビット幅値を表す第1の成分を取得するように構成される第1の成分計算回路と、少なくとも前記調整されたマルチビット幅値と前記第1の成分に関する値とに基づいて計算して、前記マルチビット幅値を表す第2の成分を取得するように構成される第2の成分計算回路と、前記第1の成分および前記第2の成分のうち少なくとも1つを出力するように構成される出力回路と、を備える計算装置を提供する。
第2の態様では、本開示は、前記計算装置を含む集積回路チップを提供する。
第3の態様では、本開示は、前記集積回路チップを含む集積回路用プリント基板を提供する。
第4の態様では、本開示は、ニューラルネットワーク演算に用いるようにマルチビット幅値を処理するための方法であって、前記マルチビット幅値と、前記マルチビット幅値を表す第1の成分のビット幅情報と第2の成分のビット幅情報を少なくとも含む構成情報とを受信するステップと、前記第2の成分のビット幅情報に関連付けられたスケーリング係数に基づいて、調整されたマルチビット幅値を計算して前記マルチビット幅値を表す第1の成分を取得するステップと、少なくとも前記調整されたマルチビット幅値と前記第1の成分に関する値とに基づいて計算して、前記マルチビット幅値を表す第2の成分を取得するステップと、前記第1の成分および前記第2の成分のうち少なくとも1つを出力するステップとを含む方法を提供する。
第5の態様では、本開示は、マルチビット幅値を処理するための計算装置であって、プロセッサと、プログラム命令を記憶するためのメモリとを備え、前記プログラム命令が少なくとも1つの前記プロセッサによって実行されると、前記方法を実行させる計算装置を提供する。
第6の態様では、本開示は、ニューラルネットワーク演算に用いるようにマルチビット幅値を処理するためのプログラム命令が記憶されており、前記プログラム命令がプロセッサによってて実行されると、前記方法を実行させるコンピュータ読み取り可能な記録媒体を提供する。
上記の提供される計算装置、集積回路用プリント基板、方法、およびコンピュータ読み取り可能な記録媒体により、本開示の技術案は、1つのマルチ(または上位)ビット幅値を複数の低(または下位)ビット幅値に分割して表現することができ、これにより、ニューラルネットワーク演算などの人工知能適用シナリオオやその他の共通シナリオでは、プロセッサの処理ビット幅に制限されず、プロセッサの計算能力を十分に発揮させることができる。さらに、下位ビット幅値を必要とするニューラルネットワーク演算のいくつかのシナリオでは、本開示の技術案は、マルチビット幅値を複数の下位ビット幅に分割して表現することによってニューラルネットワークの演算を簡単化して、演算の効率を高めることができる。
本開示の上記の特徴は、図面を組み合わせることによって、よりよく理解されることができ、且つ、その多くの目的、特徴および利点は、当業者にとって自明である。以下に説明する図面は、本開示のいくつかの実施形態に関するものに過ぎず、当業者にとって、創造的な労働をしない前提で、これらの図面に基づいて他の図面をさらに得ることができる。
は、本開示の実施形態による計算装置を示す概略ブロック図である。 は、本開示の実施形態による計算装置を示す詳細ブロック図である。 は、本開示の実施形態によるマルチビット幅値を処理するためのフローチャートである。 は、本開示の実施形態による組合せ処理装置を示す構造図である。 は、本開示の実施形態によるプリント基板を示す構造模式図である。
本開示の技術案は、マルチビット幅(例えば、24ビット)値を少なくとも2つの下位ビット(例えば、16ビットおよび8ビット)成分で表現することによって、プロセッサのビット幅が制限される障害を克服し、計算の複雑さを簡単化し、ニューラルネットワーク演算のような演算の効率を向上させる。1つまたは複数の実施形態では、入力されたマルチビット幅値のビット分布および構成情報に基づいて、そのソース値または初期値を上位ビット部分および下位ビット部分に分割し、かつ、当該上位ビット部分と下位ビット部分に対して分割計算を実行して、当該上位ビット部分と下位ビット部分に対応する第1の成分と第2の成分を取得することができる。これにより、実際の計算では、ソース値の代わりに第1の成分と第2の成分のうち少なくとも1つを使用して計算に関与することができる。別の実施形態では、本開示の技術案は、構成情報に基づいて、前記ソース値を所望の複数の成分に分解することもでき、例えば、、前記第1の成分と前記第2の成分のうち少なくとも一つに対して類似する分割計算を繰り返し実行して、3つ以上の成分を取得する。
以下、図面を組み合わせて本開示の実施形態を詳しく説明する。
図1は、本開示の実施形態による計算装置100を示す概略ブロック図である。1つまたは複数の実施形態では、当該計算装置100は、さまざまな適用シナリオで使えるように、マルチビット幅値を処理することができる。例えば、ニューラルネットワーク演算を含む人工知能アプリケーションまたは計算の目的で値を分割する必要がある汎用シナリオに適用される。ここで、マルチビット幅値は、その後2つ以上の成分に分割するように、上位ビット部分と下位ビット部分との2つの部分を含む。また、前記ニューラルネットワーク演算は、逆伝播の重み更新や勾配計算のようなニューラルネットワークを訓練する際の種々の演算を含む。
図1に示すように、計算装置100は、マルチビット幅値と、前記マルチビット幅値を表す第1の成分のビット幅情報と第2の成分のビット幅情報を少なくとも含む構成情報とを受信するように構成される入力回路102を備える。例えば、マルチビット幅値は、24ビット幅である場合、8ビットの上位ビット部分と16ビットの下位ビット部分に分割でき、すなわち、分割によって、1つの8ビット幅の成分と、1つの16ビット幅の成分とが得られる。1つまたは複数の実施形態では、構成情報は、第2の成分のビット幅情報に符号ビットを含むか否かを示す符号情報を更に含む。例えば、ビットで表す場合、「1」は第2の成分に符号ビットを含むことを示し、「0」は第2の成分に符号ビットを含まないことを示す。更に、構成情報は、後続の分割計算において有効ビットを計算することができるように、例えば、前記マルチビット幅値のうちどのビットが有効ビットであるかを強制的に指定するような有効ビット情報も含んでもよい。
入力回路102に接続されているのは、第1の成分計算回路104および第2の成分計算回路106である。1つまたは複数の実施形態では、第1の成分計算回路は、前記第2の成分のビット幅情報に関連付けられたスケーリング係数に基づいて、調整されたマルチビット幅値を計算して前記マルチビット幅値を表す第1の成分を取得するように構成することができる。1つのシナリオでは、第1の成分計算回路は、第2の成分のビット幅情報に基づいて、スケーリング係数を決定し、そして、当該スケーリング係数を利用して前記マルチビット幅値を計算して、前記第1の成分を取得することができる。例えば、前記第1の成分のビット幅がn1であり、前記第2の成分のビット幅がn2である場合、n2に符号ビットを含むことを考慮しないと、スケーリング係数は2n2-1であってもよい。これに対し、n2に符号ビットを含むことを考慮すると、スケーリング係数は2n2であってもよい。
マルチビット幅値を計算する前に、1つまたは複数の実施形態では、本開示の計算装置は、対応する数値の調整を実行するように、マルチビット幅値および指定されたデータのサイズを判定することができる。例えば、指定されたデータがゼロである場合は、前記マルチビット幅値がゼロ以上であると、前記マルチビット幅値に所定の定数を加算して、前記調整されたマルチビット幅値を取得する。これに対し、前記マルチビット幅値がゼロ未満である場合は、前記マルチビット幅値から前記所定の定数を減算して、前記調整されたマルチビット幅値を取得する。
1つまたは複数の実施形態では、前記第2の成分計算回路は、少なくとも前記調整されたマルチビット幅値および前記第1の成分に関する値に基づいて計算して、前記マルチビット幅値を表す第2の成分を取得するように構成されることができる。1つのシナリオでは、前記符号情報は、前記第2の成分のビット幅情報に符号ビットを含まないことを示す場合、例えば、第2の成分のビット幅の最上位ビットが符号ビットではない場合は、前記第2の成分計算回路は、前記調整されたマルチビット幅値から第1の成分に関する値を減算して、前記第2の成分を取得するように構成されることができる。ここで、第1の成分に関する値は、第1の成分と前記スケーリング係数との積の値であり得る。別のシナリオでは、構成情報における符号情報は、第2の成分のビット幅情報に符号ビットを含むことを示す場合、例えば、第2の成分のビット幅の最上位ビットが符号ビットである場合は、第2の成分計算回路は、前記第2の成分のビット幅情報に基づいて調整値を決定し、かつ前記マルチビット幅値、前記第1の成分に関する値および前記調整値に基づいて計算して、前記第2の成分を取得するように構成されることができる。幾つかのシナリオでは、前記構成情報には符号情報を含まなくてもよいことが理解できる。この場合、例えば、初期のデフォルト設定により、本開示の計算装置は、構成情報に基づいて符号ビットを考慮するか否かの判断を行わず、符号ビットを考慮した分割操作、または符号ビットを考慮しない分割操作を直接実行するように構成されることができる。
以上、本開示の第1の成分と第2の成分をどのように取得するかについて説明したが、上記の説明は単なる例示に過ぎず、限定的なものではないことが理解できるが、当業者は、上記の説明に基づいて他のオプションまたは代替案も想到することができる。例えば、いくつかのシナリオでは、前述のマルチビット幅値の異なる調整方法に従って、前記第1の成分および第2の成分2を取得する前の中間値に対して、様々な対応する丸め操作を行うことができる。これらの丸め操作は、それに応じたゼロへの丸め、四捨五入、切り上げ又は切り捨てなどを含めばよい。例えば、スケーリング係数を利用して調整されたマルチビット幅値を計算した後、得られた値に対してゼロへの丸めを行って、第1の成分を取得することができる。同様に、前記調整されたマルチビット幅値から前記第1の成分に関連する値および前記調整値を減算した後、得られた値に対してゼロへの丸めを行って、第2の成分を取得することもできる。
前記マルチビット幅値を表すことができる第1の成分と第2の成分を取得した後、本開示の計算装置は、前記第1の成分と前記第2の成分のうちの少なくとも1つを出力するに構成される出力回路108をさらに含む。前述したように、出力回路によって出力される第1の成分と第2の成分は、ニューラルネットワークの訓練における逆伝播の重み更新や勾配計算のような、ニューラルネットワークにおいて下位ビット幅のデータを使用する必要がある様々な計算に適用することができる。幾つかの適用シナリオでは、後で用いるように、マルチビット幅値の代わりに、取得された第1の成分と第2の成分をそのまま記憶することもできる。ニューラルネットワークが下位ビット幅をサポートする固定小数点プロセッサを用いて固定小数点演算を実行するシナリオでは、出力回路から出力される下位ビット幅の第1の成分と第2の成分を、固定小数点プロセッサの固定小数点演算に用いることによって、固定小数点プロセッサがマルチビット幅または上位ビット幅のデータを処理できないという制限を取り除き、固定小数点プロセッサの演算シナリオを拡張し、演算を簡略化することができ、これにより、計算効率を向上させ、計算のオーバヘッドを低減させることができる。
図2は、本開示の実施形態による計算装置200を示す詳細なブロック図である。図2に示すように、計算装置200は、図1の計算装置100の入力回路102、第1の成分計算回路104、第2の成分計算回路106、および出力回路108を備えるだけではなく、第1および第2の成分計算回路に含まれる複数の回路、および付加的な複数の他の素子を更に備える。上記のように、図1を組み合わせて、入力回路、第1および第2の成分計算回路および出力回路の機能を詳しく記述したので、以下では、繰り返さない。
図2に示すように、計算装置200は、入力されたデータを前記マルチビット幅値と同じデータ型、すなわち第1の成分計算回路と第2の成分計算回路によりサポートされるデータ型に変換するように構成されることができるタイプコンバータ110をさらに備えることができる。設置されたタイプコンバータによって、本開示の計算装置は、分割操作によってサポートされるデータ型とは異なるタイプのデータに対して分割を実行することができる。例えば、本開示の計算装置が固定小数点数値の分割をサポートする場合、入力回路が浮動小数点数値を受信すると、第1の成分計算回路と第2の成分計算回路により分割されやすいように、タイプコンバータによって、当該浮動小数点数値を固定小数点整数値に変換することができる。同様に、本開示の計算装置が浮動小数点数値の分割をサポートする場合、入力回路が固定小数点数値を受信すると、第1の成分計算回路と第2の成分計算回路により分割されやすいように、タイプコンバータによって、当該固定小数点数値を浮動小数点数値に変換することができる。
さらに、計算装置は、前記マルチビット幅値と指定されたデータのサイズを判定し、且つ判定結果を前記加算回路114に送信するように構成されることができる判定回路112を更に備えることができる。1つの実施形態では、前記加算回路は、前記調整されたマルチビット値を取得するために、前記判定結果に基づいて、前記マルチビット幅値に所定の定数を加算または減算するように構成されることができる。1つの実現シナリオでは、ここでの加算回路は符号変換回路を含むことにより、減算演算を加算演算に変換することができる。別の実現シナリオでは、前記加算回路は、減算演算をサポートする加算器であってもよい。さらに、ここでの加算器は単なる例示であり、当業者は、本開示の教示によれば、加算器および減算器を別々に配置して、それぞれ対応する加算演算および減算演算を行うこともできる。
さらに示す第1の成分計算回路104は、スケーリング回路1041および丸め回路1042を備えることができる。1つの実施形態では、前記スケーリング回路は、前記スケーリング係数に基づいて前記調整されたマルチビット幅値に対してシフト動作を実行するように構成される。例えば、スケーリング係数が2n2の場合、シフト回路を使用してシフト動作を実行することは、マルチビット幅値をn2ビット分で上位ビット側に移動することである。マルチビット幅値に対して、上位ビットがその左側にあり、下位ビットがその右側にある場合、n2ビット分で上位ビット側に移動することは、n2ビット分で左側に移動することを意味する。具体的な実施の態様では、ここでのシフト回路は、乗算器で構築することができる。マルチビット幅値に対して対応するシフト動作を実行した後に、1つの実施形態では、第1の成分計算回路は、シフト動作を実行した後の前記マルチビット幅値に対して丸め操作を行って前記第1の成分を得るように構成される丸め回路1042をさらに備える。異なる適用シナリオに応じて、ここでの丸め操作は、例えば、切り上げ、切り捨て、ゼロへの丸め等のさまざまな丸め演算を含めばよい。このような丸め操作により、前記マルチビット幅値のうちの上位ビット部分に関する第1の成分が得られる。
1つまたは複数の実施形態では、第2の成分計算回路106は、前記第2の成分を取得するために、前記マルチビット幅値から第1の成分に関する値および前記調整値を減算するように構成される減算回路1061を備えることができる。1つのシナリオでは、ここでの第1の成分に関する値は、第1の成分とスケーリング係数との積の値であり、前記調整値は、前述の下位ビット部分の符号ビットを考慮した値である。減算回路により、マルチビット幅値から前記積の値と調整値を減算することによって、前記マルチビット幅値のうちの下位ビット部分に関する第2の成分が得られる。
柔軟な出力を達成するために、本開示の計算装置200は、出力のために、前記第1の成分と前記第2の成分のうちの少なくとも1つを出力回路108に出力するように構成されるセレクタ116をさらに含む。1つの実施形態では、当該セレクタ116は、構成情報における入力項目に関する情報に従って、第1の成分、第2の成分、またはその両方を出力するように選択することができる。このような選択的な出力は、幾つかの適用シナリオでは技術的な利点がある。例えば、後続の演算に関与するには第1の成分または第2の成分のみが必要な場合は、出力回路はその両方を出力する必要がないため、出力の面ではオーバヘッドを節約できる。また、第1の成分のみを出力する必要がある場合は、本開示の計算装置は、第1の成分のみを計算して出力することもでき、これにより、計算オーバヘッドをさらに節約することができる。
1つまたは複数の実施形態では、本開示の計算装置は、さらに、マルチビット幅値を、ユーザによって指定された、またはアルゴリズムに必要な複数の成分に分解して表現するために使用されることができる。このために、前記構成情報は、成分数に関する情報を含むことができる。成分数が2より大きい正の整数である場合、本開示の計算装置は、前記構成情報に基づいて、前記成分数に対応する成分を得るまで、第1の成分計算回路と第2の成分計算回路を繰り返し実行する。例えば、24ビット幅値の場合、構成情報が3つの8ビット幅の成分に分割することを示すと、第1の成分計算回路と第2の成分計算回路により、24ビット幅値を8ビット幅の第1の成分と16ビット幅の中間第2の成分に分割する。次に、得られた16ビット幅の中間第2の成分の値は、第1の成分計算回路と第2の成分計算回路に再入力され、8ビット幅の第2の成分と8ビット幅の第3の成分にさらに分割される。
図3は、本開示の実施形態によるマルチヒッド幅値を処理するための方法300の流れ図である。方法300の処理によって、少なくともマルチヒッド幅値を、それを表す第1の成分と第2の成分に分割することができる。
図3に示すように、ステップ302において、方法300は、前記マルチビット幅値と、前記マルチビット幅値を表す第1の成分のビット幅情報と第2の成分のビット幅情報を少なくとも含む構成情報とを受信する。このような構成情報によって、方法300は、少なくとも、分割する第1の成分または第2の成分に対応するビット幅値を決定することができる。次に、ステップ304において、方法300は、第2の成分のビット幅情報に関連付けられたスケーリング係数に基づいて、調整されたマルチビット幅値を計算してマルチビット幅値を表す第1の成分を取得する。図1と図2を組み合わせる上述した説明のように、ここでの調整は、マルチビット幅値と指定されたデータを比較し、比較の結果に基づいて、当該マルチビット幅値に1つの所定の定数を加算または減算して、相応する調整を完成するものであればよい。1つの実施形態では、方法300は、前記第2の成分のビット幅情報に基づいてスケーリング係数を決定し、且つ当該スケーリング係数を用いて調整されたマルチビット幅値を計算して前記第1の成分を取得することができる。1つのシナリオでは、方法300は、構成情報に含まれる第2の成分に符号ビットを含むか否かに関する符号情報に基づいて、スケーリング係数を決定することができる。
マルチビット幅値を表す第1の成分を計算して取得した後に、方法300はステップ306に進む。このステップ306では、方法300は、少なくとも、調整されたマルチビット幅値および前記第1の成分に関する値に基づいて計算して、マルチビット幅値を表す第2の成分を取得する。1つの実施形態では、前記構成情報に含まれる前記符号情報が、前記第2の成分のビット幅情報に符号ビットを含むことを示す場合、前記方法300は、前記第2の成分のビット幅に基づいて調整値を決定するステップと、調整されたマルチビット幅値、前記第1の成分に関する値および前記調整値に基づいて計算して前記第2成分を取得するステップとを更に含んでもよい。1つの実現シナリオでは、調整されたマルチビット幅値から第1の成分に関する値および前記調整値を減算して、第2の成分を取得することができる。さらに、マルチビット幅値から第1の成分に関する値および前記調整値を減算した後に、取得された値に対して、前記マルチビット幅値を調整する操作に対応する丸め操作を実行して、第2の成分を取得することもできる。
第1の成分および第2の成分を取得した後、方法300はステップ308に進む。ここで、方法300は、第1の成分および第2の成分のうち少なくとも1つを出力する。1つの実施形態では、構成情報に基づいて、第1の成分、第2の成分またはその両方を選択的に出力することができる。幾つかの実施形態では、構成情報に分割後の成分数に関する情報を含む場合、方法300は、マルチビット幅の値を所望の数に分割するまで、構成情報における成分数に基づいて分割操作を繰り返し実行することができる。例えば、1つのシナリオでは、分割する必要のある成分数が2より大きい正の整数である場合、方法300は、構成情報に基づいて、前記第1の成分および前記第2の成分のうち少なくとも1つを次の処理する新しいマルチビット幅値として決定するステップをさらに含んでもよい。次に、方法300は、新しいマルチビット幅値に対して調整操作を行って、調整された新しいマルチビット幅値を取得し、その後に、構成情報におけるビット幅情報に基づいて計算して、該新しいマルチビット幅値を表す第1の成分および第2の成分を取得することができる。上記から明らかなように、所定の成分数に達成するために、方法300は、所定の数の成分を取得するまで、前記第1の成分および第2の成分に関する計算ステップを繰り返し実行することができる。
以下、数学的計算の面から、上述した本開示の計算装置または方法によって実行される分割操作を説明し、以下の一連の例示的な式および具体的な値の分割結果によって、当業者は本開示の技術案およびその実施を更に理解することができる。説明を簡単にするために、以下、fで、n0のヒッド幅を有するマルチビット幅値を示し、Iで、分割後に得られた、n1のヒッド幅を有する第1の成分を示し、Iで、分割後に得られた、n2のヒッド幅を有する第2の成分を示し、そのうち、n0=n1+n2。
まず、下記の式(1)と(2)でfを調整することができる:
if f >=0: f = f +0.5 (1)
if f <0: f = f - 0.5 (2)
上記の式における「0.5」は、上述した所定の定数である。上記の式(1)または(2)で計算すると、調整されたマルチビット幅値を得ることができる。
次に、下記の式(3)で第1の成分Iを算出することができる:
Figure 0007269382000001
そのうち、to_zeroはゼロへの丸め関数であり、2n2-1は前記スケーリング係数を示し、このとき、第2の成分には符号ビッドを含まない。前述のように、スケーリング係数は、第2の成分に符号ビットを含むか否かにも関連する。第2の成分に符号ビットを含む場合、ここでのスケーリング係数は2n2とすることができる(後で説明する)。
次に、下記の式で第2の成分Iを算出することができる:
Figure 0007269382000002
上記から分かるように、上記の式(2)における「I1×2n2」の項は、前記第1の成分の数である。Iにスケーリング係数2n2-1を乗じた場合、それをn2-1ビット分で上位ビット側にシフトすることに相当する。上記の計算によって、前記マルチビット幅値を表す第1の成分と第2の成分を取得した。
以上、第2の成分に符号ビットを含まない場合の分割操作について説明したが、以下、第2の成分に符号ビットを含む場合の分割操作について説明し、そのうち、式中の符号の意味が上記と同じである。
まず、下記の式(5)と(6)でfを調整することができる。
If f>=0: f=f+0.5 (5)
if f<0: f=f-0.5 (6)
上記の式における「0.5」は、上述した所定の定数である。上記の式(5)または(6)で計算すると、調整されたマルチビット幅値を得ることができる。
次に、下記の式(7)で第1の成分Iを算出することができる:
Figure 0007269382000003
本形態では、第2の成分に符号ビットを含むことを考慮したため、ここで、前記スケーリング係数を、式(1)における「2n2-1」でなく、2n2で示す。
次に、下記の式(8)、(9)で第2の成分Iを算出することができる:
Figure 0007269382000004
Figure 0007269382000005
上記から分かるように、符号ビッドを考慮したため、式(8)と(9)には、式(4)に含まない調整値「2n2-1」を有する。さらに、式(8)と(9)における「I1×2n2」の項は第1の成分に関する値である。また、マルチビット幅値から第1の成分に関する値と調整値を減算した後に、本開示の形態は、例えば、式(8)に使われるゼロへの丸め関数「to_zero( )」と式(9)に使われる下向き丸め関数「floor( )」のように、取得された値に対して対応する丸め操作を実行して、最終的な第1の成分と第2の成分を取得することができる。式(8)と式(9)には符号ビットを考慮したため、取得された第1の成分と第2の成分は、分割前のマルチビット幅値を表現する上では損失がより小さい。
いくつかの応用シナリオでは、前記マルチビット幅値が浮動小数点数である場合、丸め操作(例えば、四捨五入)によって固定小数点数を得ることができ、さらに、上記の式(1)~(4)または上記の式(5)~(9)の分割操作によって得られた第1の成分および第2の成分も、演算に関与するためのこの固定小数点数を表すことができ、このことは人工知能用途における固定小数点数演算に特に有利である。また、異なる分割シナリオでは、上記の式中のn0、n1、n2は、例えば、n0=24、n1=8、n2=16、又はn0=32、n1=16、n2=16、又はn0=25、n1=9、n2=16のように、異なる正の整数値をとることができる。幾つかの分割シナリオでは、n0、n1、n2は、さらに、n0<=n1+n2、例えば、n0=25、n1=16、n2=16を満たすことができ、すなわち、25ビット幅値を2つの16ビット幅の成分に分割する。
以下、具体的な値(浮動小数点数を例とする)に対する分割結果を表にて示し、そのうち、表(1)および表(2)は符号ビットを考慮した分割結果を示し、表(3)および表(4)は符号ビットを考慮しない分割結果を示す。
表1
Figure 0007269382000006
表2
Figure 0007269382000007
表3
Figure 0007269382000008
表4
Figure 0007269382000009
図4は、本開示の実施形態に係る組合せ合成処理装置400を示す構成図である。該図に示すように、当該組合せ合成処理装置400は、上述した図面を組み合わせて記述した分割方法を実行するように構成される計算装置402を備える。また、当該組合せ合成処理装置は、相互接続用共通インタフェース404および他の処理装置406をさらに備える。本開示による計算装置402は、相互接続用共通インタフェース404を介して他の処理装置406とインタラクションを行い、ユーザによって指定された操作を共同で完了し、例えば、少なくとも第1の成分と第2の成分を取得するようにマルチビット幅値を分割することができる。
本開示の技術案によれば、当該他の処理装置は、中央演算処理装置(「CPU」)、グラフィックスプロセシングユニット(「GPU」)、人工知能プロセッサなどのおよび汎用/または専用プロセッサのうちの1つまたは複数のタイプのプロセッサを含めばよく、その数は制限せずに実際の必要に応じて決められばよい。一つまたは複数の実施形態では、当該他の処理装置は、本開示の計算装置(人工知能、例えばニューラルネットワーク演算に関する演算装置として具体化することができる)と、外部データとのインタラクションおよび制御用のインターフェースとして、データ伝送を含むがこれに限らない動作を実行し、計算装置のオープンや停止などの基本制御を完了することができる。他の処理装置は、当該計算装置と連携して演算タスクを共同完了することもできる。
本開示の技術案によれば、当該相互接続用共通インタフェースは、計算装置と他の処理装置との間でデータと制御コマンドを伝送するために用いることができる。例えば、計算装置は、前記相互接続用共通インタフェースを介して他の処理装置から分割される入力データを取得し、当該計算装置のオンチップ記憶装置(またはメモリともいう)に書き込むことができる。さらに、前記計算装置は、前記相互接続用共通インタフェースを介して他の処理装置から制御コマンドを取得し、計算装置のオンチップ制御バッファに書き込むことができる。選択的にまたは任意に、相互接続用共通インタフェースは、計算装置の記憶モジュールにおけるデータを読み取り、他の処理装置に送信することもできる。
任意に、当該組合せ処理装置は、それぞれ前記計算装置および前記他の処理装置に接続される記憶装置408をさらに備えてもよい。1つまたは複数の実施形態では、記憶装置は、前記計算装置および前記他の処理装置のデータ、特に計算装置または他の処理装置の内部またはオンチップ記憶装置で全部保存できないデータを格納するために用いることができる。
適用シナリオの違いによって、本開示の組合せ処理装置は、携帯電話、ロボット、ドローン、ビデオ監視装置などの機器のSOCオンチップシステムとして使用することができ、制御部分のコア面積を効果的に低減し、処理速度を高め、全体消費電力を減らすことができる。この場合では、当該組合せ処理装置の相互接続用共通インタフェースは、機器のある部材に接続される。ある部材は、例えば、カメラ、ディスプレイ、マウス、キーボード、ネットワークカードまたはwifiインターフェースなどである。
いくつかの実施形態では、本開示は、前記テスト装置または組合せ処理装置を含むチップを更に開示する。別の実施形態では、本開示は、前記チップを含むチップパッケージング構造を更に開示する。
いくつかの実施形態では、本開示は、前記チップパッケージ構造を含むプリント基板を更に開示する。図5を参照すると、前記例示的なプリント基板が提供され、前記プリント基板は、前記チップ502に加えて、他のセット部品を含んでもよく、前記セット部品は、メモリデバイス504、インターフェースデバイス506および制御デバイス508を含むが、これらに限定されない。
前記記憶デバイスは、バスを介して前記チップパッケージ構造内のチップに接続され、データを記憶するために用いられる。前記記憶デバイスは、複数組のメモリセル510を含むことができる。各組の前記メモリセルと、前記チップとはバスで接続される。各組の前記メモリセルは、DDR SDRAM(「Double Data Rate SDRAM、ダブルデータレート同期型ダイナミックランダムアクセスメモリ」)であればよいことが理解できる。
前記DDRは、クロック周波数を上げる必要がなく、SDRAMの速度を2倍にすることができる。DDRは、クロックパルスの立ち上がりエッジと立ち下がりエッジでデータを読み取ることを許容する。DDRの速度は標準SDRAMの2倍である。1つの実施形態では、前記記憶デバイスは、4組の前記メモリセルを含んでもよい。前記メモリセルの各組は、複数のDDR4粒子(チップ)を含んでもよい。1つの実施形態では、前記チップの内部は4つの72ビットのDDR4コントローラを含んでもよい。前記72ビットのDDR4コントローラでは、64ビットがデータ伝送に使用され、8ビットがECC検証に使用される。
1つの実施形態では、前記メモリセルの各組は、並列に配置されたダブルデータレート同期型ダイナミックランダムアクセスメモリを複数含む。DDRは、1つのクロックサイクルで2回データを伝送することができる。前記チップにはDDRを制御するためのコントローラが設けられ、各メモリセルのデータ伝送とデータ記憶を制御するために用いられる。
前記インターフェース装置は、前記チップパッケージ構造内のチップと電気的に接続される。前記インターフェース装置は、前記チップと外部デバイス512(例えば、サーバまたはコンピューター)との間のデータ伝送を実現するためのものである。例えば、1つの実施形態では、前記インターフェース装置は、標準PCIEインターフェースであればよい。たとえば、処理されるデータは、サーバにより、標準PCIEインターフェースを介して前記チップに転送され、データ転送を実現する。別の実施形態では、前記インターフェース装置は他のインターフェースであってもよく、本開示は、前記他のインターフェースの具体的な表現形式を限定するものではなく、前記インターフェースユニットは、転送機能を実現できるものであれば。さらに、前記チップの計算結果は、前記インターフェイス装置によって外部デバイス(例えば、サーバ)に戻される。
前記制御デバイスは前記チップに電気的に接続される。前記制御デバイスは、前記チップの状態を監視するためのものである。具体的には、前記チップと前記制御デバイスは、SPIインターフェースを介して電気的に接続可能である。前記制御デバイスは、シングルチップマイクロコンピュータ(Micro Controller Unit、MCU)を含むことができる。1つまたは複数の実施形態では、前記チップは、複数の処理チップ、複数の処理コア、または複数の処理回路を含むことができ、複数の負荷を駆動することができる。そのため、前記チップは、多負荷と軽負荷などの異なる動作状態にありえる。前記制御デバイスによって、前記チップにおける複数の処理チップ、複数の処理コアおよび/または複数の処理回路の動作状態の調整および制御を実現することができる。
いくつかの実施形態では、本開示は、前記プリント基板を含む電子機器または装置をさらに開示する。異なる適用シナリオによって、電子機器または装置は、データ処理装置、ロボット、コンピューター、プリンター、スキャナー、タブレット、スマート端末、携帯電話、ドライビングレコーダー、ナビゲーター、センサー、カメラ、サーバ、クラウドサーバ、カメラ、ビデオカメラ、プロジェクター、時計、イヤホン、モバイルストレージ、ウェアラブルデバイス、交通手段、家電製品、および/または医療機器を含むことができる。前記交通手段は、飛行機、船舶、および/または車両を含む;前記家電製品は、テレビ、エアコン、電子レンジ、冷蔵庫、炊飯器、加湿器、洗濯機、電灯、ガスストーブ、レンジフードを含む;前記医療機器は、MRI、B超音波装置および/または心電計を含む。
なお、前述した方法の実施形態のそれぞれについて、説明を簡単にするために、それらを一連の動作の組合せとして記述したが、当業者であれば、本開示に従って、あるステップが他の順でまたは同時に行われるため、本開示は記載された動作の順によって限定されないことを理解するであろう。次に、当業者は、明細書に記載された実施形態が何れも選択可能なものに属し、関連する動作及びモジュールが本開示に必要なものではないことを理解するであろう。
上記の実施形態において、各実施形態に対する説明にはそれぞれ焦点が当てられているが、ある実施形態で詳細に記述されていない部分については、他の実施形態における関連説明を参照することができる。
本開示で提供されたいくつかの実施形態では、開示された装置は他の方式で実現できることが理解されるべきである。例えば、上述した装置に係る実施形態は、単に例示的なものであり、例えば、前記ユニットの分割は、論理機能の分割にすぎず、実際に実現するときに、他の分割方式があり得、例えば、複数のユニットまたは成分を組み合わせ、または別のシステムに統合するか、一部の機能を無視するか、または実行しないことができる。さらに、表示または説明されている相互間の結合または直接結合または通信接続は、幾つかのインターフェース、装置、またはユニットを介した間接結合または通信接続であればよく、電気、光学、音響、磁気または他の形態であり得る。
前記分離部材として説明されたユニットは、物理的に分離されても、または分離されなくてもよく、表示ユニットとする部材は、物理的ユニットであってもでなくてもよく、すなわち、一箇所に位置してもよく、複数のネットワーク要素に分散してもよい。また、本実施形態の技術案の目的を実現するように、実際の必要に応じて、そのうちの一部または全部のユニットを選択することができる。
さらに、本開示の各実施形態における各機能ユニットは、1つの処理ユニットに統合してもよく、各ユニットが物理的に単独で存在してもよく、2つ以上のユニットが1つのユニットに統合してもよい。上記の統合したユニットは、ハードウェアの形で実現でき、ソフトウェアプログラムモジュールの形でも実現することができる。
前記統合したユニットは、ソフトウェアプログラムモジュールの形式で実現され、かつ独立した製品として販売または使用される場合、1つのコンピュータ読み取り可能なメモリに記憶することができる。このような理解に基づいて、本開示の技術案がソフトウェア製品(例えば、コンピュータ読み取り可能な記録媒体)の形で具体化できる場合、当該コンピュータソフトウェア製品は1つのメモリに記憶され、1つのコンピュータデバイス(パーソナルコンピュータ、サーバまたはネットワークデバイスなどであればよい)に本開示の各実施形態に記載の方法のステップの全部または一部を実行させるように、幾つかのコマンドを含む。また、前記メモリは、Uディスク、読み出し専用メモリ(ROM、Read-Only Memory)、ランダムアクセスメモリ(RAM、Random Access Memory)、モバイルハードディスク、磁気ディスクまたは光ディスクなどプログラムコードを記憶可能な各種媒体を含む。
本開示の上記の実施形態において、各実施形態に対する説明にはそれぞれ焦点が当てられているが、ある実施形態で詳細に説明されていない部分については、他の実施形態における関連説明を参照することができる。上記の実施形態の各技術的特徴は、任意に組み合わせることができ、説明を簡潔にするため、上記の実施形態における各技術的特徴のすべての可能の組み合わせに対して説明していない。ただし、これらの技術的特徴の組み合わせは、矛盾がない限り、すべて本明細書に記載した範囲と見なされるべきである。
前述の内容は、次の条項に従ってよりよく理解できる。
条項1では、マルチビット幅値を処理するための計算装置であって、前記マルチビット幅値と、前記マルチビット幅値を表す第1の成分のビット幅情報と第2の成分のビット幅情報を少なくとも含む構成情報とを受信するように構成される入力回路と、前記第2の成分のビット幅情報に関連付けられたスケーリング係数に基づいて、調整されたマルチビット幅値を計算して前記マルチビット幅値を表す第1の成分を取得するように構成される第1の成分計算回路と、少なくとも前記調整されたマルチビット幅値と前記第1の成分に関する値とに基づいて計算して、前記マルチビット幅値を表す第2の成分を取得するように構成される第2の成分計算回路と、前記第1の成分および前記第2の成分のうち少なくとも1つを出力するように構成される出力回路と、を備えることを特徴とする計算装置。
条項2では、判定回路と加算回路とを更に備え、前記判定回路は、前記マルチビット幅値と指定されたデータのサイズを判定し、判定結果を前記加算回路に送信するように構成され、前記加算回路は、前記調整されたマルチビット幅値を取得するために、前記判定結果に基づいて、前記マルチビット幅値に所定の定数を加算または減算するように構成されることを特徴とする条項1に記載の計算装置。
条項3では、前記構成情報は、前記第2の成分のビット幅情報に符号ビットを含むか否かに関する符号情報をさらに含み、前記第1の成分計算回路は、前記符号情報に基づいて前記スケーリング係数を決定するように構成されることを特徴とする条項2に記載の計算装置。
条項4では、前記第1の成分計算回路は、前記スケーリング係数に基づいて前記調整されたマルチビット幅値に対してシフト動作を実行するように構成されるスケーリング回路と、シフト動作を実行した後のマルチビット幅値に対して丸め操作を行って前記第1の成分を取得するように構成される丸め回路とを備えることを特徴とする条項1に記載の計算装置。
条項5では、前記符号情報は、前記第2の成分のビット幅情報に符号ビットを含むことを示し、前記第2の成分計算回路は、前記第2の成分のビット幅情報に基づいて調整値を決定し、前記調整されたマルチビット幅値、前記第1の成分に関する値および前記調整値に基づいて計算して前記第2の成分を取得するように構成されることを特徴とする条項3に記載の計算装置。
条項6では、前記第2の成分計算回路は、前記第2の成分を取得するために、前記マルチビット幅値から前記第1の成分に関する値および前記調整値を減算するように構成される減算回路を備えることを特徴とする条項5に記載の計算装置。
条項7では、入力されたデータを前記マルチビット幅値と同じデータ型に変換するように構成されるタイプコンバータをさらに備えることを特徴とする条項1に記載の計算装置。
条項8では、前記構成情報に基づいて、前記第1の成分と前記第2の成分のうち少なくとも1つを選択しして、前記出力回路に出力するように構成されるセレクタをさらに備えることを特徴とする条項1に記載の計算装置。
条項9では、前記第1の成分と前記第2の成分は、前記マルチビット幅値の丸め後の値を表すために用いられることを特徴とする条項1~8のいずれか1項に記載の計算装置。
条項10では、前記構成情報は、成分数に関する情報を更に含み、且つ前記成分数が2より大きい正の整数である場合、前記計算装置は、前記構成情報に基づいて、前記成分数に対応する成分を得るまで、前記第1の成分計算回路と前記第2の成分計算回路を繰り返し実行することを特徴とする条項1~8のいずれか1項に記載の計算装置。
条項11では、条項1~10のいずれか1つに記載の計算装置を備える集積回路チップ。
条項12では、条項11に記載の集積回路チップを備える集積回路用プリント基板。
条項13では、ニューラルネットワーク演算に用いるようにマルチビット幅値を処理するための方法であって、前記マルチビット幅値と、前記マルチビット幅値を表す第1の成分のビット幅情報と第2の成分のビット幅情報を少なくとも含む構成情報とを受信するステップと、前記第2の成分のビット幅情報に関連付けられたスケーリング係数に基づいて、調整されたマルチビット幅値を計算して前記マルチビット幅値を表す第1の成分を取得するステップと、少なくとも前記調整されたマルチビット幅値と前記第1の成分に関する値とに基づいて計算して、前記マルチビット幅値を表す第2の成分を取得するステップと、前記第1の成分および前記第2の成分のうち少なくとも1つを出力するステップとを含むこと特徴とする方法。
条項14では、前記マルチビット幅値と指定されたデータのサイズを判定するステップと、当該判定結果に基づいて前記マルチビット幅値に所定の定数を加算して、前記調整されたマルチビット幅値を得るステップとを更に含むことを特徴とする条項13に記載の方法。
条項15では、前記構成情報は、前記第2の成分のビット幅情報に符号ビットを含むか否かに関する符号情報を更に含み、前記方法は、前記符号情報に基づいて前記スケーリング係数を決定するステップを更に含むことを特徴とする条項14に記載の方法。
条項16では、前記マルチビット幅値を表す第1の成分を取得する場合、前記方法は、前記スケーリング係数に基づいて、前記調整されたマルチビット幅値に対してシフト動作を実行するステップと、第1の成分を取得するように、シフト動作を実行した後のマルチビット幅値に対して丸め操作を行うステップを含むことを特徴とする条項13に記載の方法。
条項17では、前記符号情報は、前記第2の成分のビット幅情報に符号ビットを含むことを示し、前記方法は、前記第2の成分のビット幅情報に基づいて調整値を決定するステップと、前記調整されたマルチビット幅値、前記第1の成分に関する値および前記調整値に基づいて計算して、前記第2の成分を取得するステップとをさらに含むことを特徴とする条項15に記載の方法。
条項18では、入力されたデータを前記マルチビット幅値と同じデータ型に変換することを更に含むことを特徴とする条項13に記載の方法。
条項19では、前記構成情報に基づいて前記第1の成分および第2の成分のうち少なくとも1つを選択して出力することを更に含むことを特徴とする条項13に記載の方法。
条項20では、前記第1の成分と前記第2の成分は、前記マルチビット幅値の丸め後の値を表すために用いられることを特徴とする条項13~19のいずれか1項に記載の方法。
条項21では、前記構成情報は、成分数に関する情報を更に含み、前記成分数が2より大きい正の整数である場合、構成情報に基づいて、前記第1の成分および前記第2の成分のうち少なくとも1つを次の処理する新しいマルチビット幅値として決定するステップと、前記構成情報における前記新しいマルチビット幅値を表す第2の成分のビット情報に関連付けられたスケーリング係数に基づいて、調整された新しいマルチビット幅値を計算して、新しいマルチビット幅値を表す第1の成分を取得するステップと、調整された新しいマルチビット幅値と新しいマルチビット幅値を表す第1の成分に関する値を計算して、新しいマルチビット幅値を表す第2の成分を取得するステップと、前記成分数に対応する成分を得るまで、前記決定ステップおよび計算ステップを繰り返し実行するステップを含むことを特徴とする条項13に記載の方法。
条項22では、ニューラルネットワーク演算に用いるようにマルチビット幅値を処理するための計算装置であって、プロセッサと、プログラム命令を記憶するためのメモリとを備え、前記プログラム命令が少なくとも1つの前記プロセッサによって実行されると、条項13~21のいずれか1項に記載の方法を実行させることを特徴とする計算装置。
条項23では、ニューラルネットワーク演算に用いるようにマルチビット幅値を処理するためのプログラム命令が記憶されており、前記プログラム命令が前記プロセッサによって実行されると、条項13~21のいずれか1項に記載の方法を実行させることを特徴とするコンピュータ読み取り可能な媒体。
以上、本開示の実施形態を詳しく説明したが、明細書には、具体的な例を使用して、本開示の原理および実施形態を記述し、以上の実施形態の説明は、本開示の方法及びその中心となる思想を理解するためにのみ使用される。それに、当業者にとって、本開示の思想によれば、具体的な実施形態および適用範囲に変更があってもよい。要約すると、本明細書の内容は、本開示を制限するものではないと理解されるべきである。
本開示の特許請求の範囲、明細書および図面での「第1」、「第2」、「第3」および「第4」などの用語は、異なる対象を区別するために使用されるものであり、特定順序を説明するために使用されるものではないことを理解すべきである。本開示の明細書および特許請求の範囲で使用される「含む」および「備える」という用語は、説明する特徴、全体、ステップ、操作、要素および/またはアセンブリの存在を表し、一つまたは複数の他の特徴、全体、ステップ、操作、要素、アセンブリおよび/またはそのセットの存在または追加を除外しない。
ここで、本開示の明細書で使用される用語は、ただ、特定の実施形態を説明する目的に使用され、本開示を限定しようとするものではないことをさらに理解すべきである。本開示の明細書および特許請求の範囲で使用されるように、文脈で他の場合を明確に示していない限り、「一」、「一つの」および「当該」という単数形態は、複数形態を含むことを意図する。さらに、本開示明細書および特許請求の範囲で使用される「および/または」という用語は、関連してリストされた項目的中の一つまたは複数のいかなる組み合わせおよびすべての可能な組み合わせを表し、これら組み合わせを含むことをさらに理解すべきである。
本明細書および特許請求の範囲で使用されるように、「…場合」という用語は、文脈によって、「…とき」、「…と」、「確定されたことに応答して」、または、「検出されたことに応答して」と解釈されてもよい。同様に、「確定された場合」または「[記述された条件または事件]が検出された場合」という句は、文脈によって、「確定されると」、「確定されたことに応答して」、「[記述された条件または事件]が検出されると」、または、「[記述された条件または事件]が検出されたことに応答して」と解釈されてもよい。
以上、本開示の実施形態を詳細に説明し、本明細書では具体的な例を適用して本開示の原理および実施形態を説明した。以上の実施形態の説明は、本開示の方法およびその中心となる思想の理解を助けるためにのみ使用される。それに、当業者によって本開示の思想にしたがって本開示の具体的な実施形態および適用範囲内で行われた変更または変形は、いずれも本開示の保護しようとする範囲に属する。以上より、本明細書の内容を本開示を限定するものとして理解されるべきではない。

Claims (15)

  1. マルチビット幅値を処理するための計算装置であって、
    前記マルチビット幅値と、前記マルチビット幅値のうち上位ビット部分のビット幅情報を表す第1の成分および下位ビット部分のビット幅情報を表す第2の成分を少なくとも含む構成情報とを受信するように構成される入力回路と、
    前記マルチビット幅値から調整されたマルチビット幅値を計算して、計算した前記調整されたマルチビット幅値と前記第2の成分のビット幅情報に関連付けられたスケーリング係数に基づいて、前記第1の成分を取得するように構成される第1の成分計算回路と、
    少なくとも前記調整されたマルチビット幅値と前記第1の成分に関する値とに基づいて計算して、前記第2の成分を取得するように構成される第2の成分計算回路と、
    前記第1の成分および前記第2の成分のうち少なくとも1つを出力するように構成される出力回路と、を備えることを特徴とする計算装置。
  2. 判定回路と加算回路とを更に備え、
    前記判定回路は、前記マルチビット幅値指定された値以上かどうかを判定し、判定結果を前記加算回路に送信するように構成され、
    前記加算回路は、前記調整されたマルチビット幅値を取得するために、前記判定結果に基づいて、前記マルチビット幅値に所定の定数を加算または減算するように構成されることを特徴とする請求項1に記載の計算装置。
  3. 前記構成情報は、前記第2の成分のビット幅情報に符号ビットを含むか否かに関する符号情報をさらに含み、
    前記第1の成分計算回路は、前記符号情報に基づいて前記スケーリング係数を決定するように構成されることを特徴とする請求項2に記載の計算装置。
  4. 前記第1の成分計算回路は、
    前記スケーリング係数に基づいて前記調整されたマルチビット幅値に対してシフト動作を実行するように構成されるスケーリング回路と、
    シフト動作を実行した後のマルチビット幅値に対して丸め操作を行って、前記第1の成分を取得するように構成される丸め回路とを備えることを特徴とする請求項1に記載の計算装置。
  5. 前記符号情報は、前記第2の成分のビット幅情報に符号ビットを含むことを示し、
    前記第2の成分計算回路は、
    前記第2の成分のビット幅情報に基づいて調整値を決定し、
    前記調整されたマルチビット幅値、前記第1の成分に関する値および前記調整値に基づいて計算して、前記第2の成分を取得するように構成されることを特徴とする請求項3に記載の計算装置。
  6. 入力されたデータを前記マルチビット幅値と同じデータ型に変換するように構成されるタイプコンバータをさらに備えることを特徴とする請求項1に記載の計算装置。
  7. 前記構成情報に基づいて、前記第1の成分と前記第2の成分のうち少なくとも1つを選択して、前記出力回路に出力するように構成されるセレクタをさらに備えることを特徴とする請求項1に記載の計算装置。
  8. 請求項1~7のいずれか1つに記載の計算装置を備える集積回路チップ。
  9. 計算装置によりマルチビット幅値を処理するための方法であって、
    前記計算装置が、前記マルチビット幅値と、前記マルチビット幅値を表す第1の成分のビット幅情報と第2の成分のビット幅情報を少なくとも含む構成情報とを受信するステップと、
    前記計算装置が、前記第2の成分のビット幅情報に関連付けられたスケーリング係数に基づいて、調整されたマルチビット幅値を計算して前記第1の成分を取得するステップと、
    前記計算装置が、少なくとも前記調整されたマルチビット幅値と前記第1の成分に関する値とに基づいて計算する処理を行い前記第2の成分を取得するステップと、
    前記計算装置が、前記第1の成分および前記第2の成分のうち少なくとも1つを出力するステップとを含むこと特徴とする方法。
  10. 前記計算装置が、前記マルチビット幅値指定された値以上かどうかを判定するステップと、
    前記計算装置が、判定結果に基づいて、前記マルチビット幅値に所定の定数を加算して、前記調整されたマルチビット幅値を得るステップとを更に含むことを特徴とする請求項9に記載の方法。
  11. 前記構成情報は、前記第2の成分のビット幅情報に符号ビットを含むか否かに関する符号情報を更に含み、前記方法は、前記計算装置が、前記符号情報に基づいて前記スケーリング係数を決定するステップを更に含むことを特徴とする請求項10に記載の方法。
  12. 前記第1の成分を取得する場合、前記方法は、
    前記計算装置が、前記スケーリング係数に基づいて、前記調整されたマルチビット幅値に対してシフト動作を実行するステップと、
    前記計算装置が、第1の成分を取得するように、前記シフト動作を実行した後のマルチビット幅値に対して丸め操作を行うステップとを含むことを特徴とする請求項9に記載の方法。
  13. 前記計算装置が、入力されたデータを前記マルチビット幅値と同じデータ型に変換するステップを更に含み、
    或いは、
    前記計算装置が、前記構成情報に基づいて前記第1の成分および第2の成分のうち少なくとも1つを選択して出力するステップを更に含むことを特徴とする請求項9に記載の方法。
  14. マルチビット幅値を処理するための計算装置であって、
    プロセッサと、
    プログラム命令を記憶するためのメモリと、を備え、
    前記プログラム命令が少なくとも1つの前記プロセッサによって実行されると、請求項9~13のいずれか1項に記載の方法実行されることを特徴とする計算装置。
  15. ニューラルネットワーク演算に用いるようにマルチビット幅値を処理するためのプログラム命令が記憶されており、前記プログラム命令がプロセッサによって実行されると、請求項9~13のいずれか1項に記載の方法実行されることを特徴とするコンピュータ読み取り可能な記録媒体。

JP2021576637A 2020-03-17 2021-03-16 計算装置、方法、プリント基板、およびコンピュータ読み取り可能な記録媒体 Active JP7269382B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202010188341.1 2020-03-17
CN202010188341.1A CN113408717A (zh) 2020-03-17 2020-03-17 计算装置、方法、板卡和计算机可读存储介质
PCT/CN2021/081188 WO2021185261A1 (zh) 2020-03-17 2021-03-16 计算装置、方法、板卡和计算机可读存储介质

Publications (2)

Publication Number Publication Date
JP2022538238A JP2022538238A (ja) 2022-09-01
JP7269382B2 true JP7269382B2 (ja) 2023-05-08

Family

ID=77677169

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021576637A Active JP7269382B2 (ja) 2020-03-17 2021-03-16 計算装置、方法、プリント基板、およびコンピュータ読み取り可能な記録媒体

Country Status (5)

Country Link
US (1) US20220253280A1 (ja)
EP (1) EP4024288B1 (ja)
JP (1) JP7269382B2 (ja)
CN (1) CN113408717A (ja)
WO (1) WO2021185261A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001109613A (ja) 1999-10-05 2001-04-20 Mitsubishi Electric Corp 演算装置
JP2020507844A (ja) 2017-01-30 2020-03-12 エイアールエム リミテッド 入力オペランド値を処理するための装置及び方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0831024B2 (ja) * 1989-02-03 1996-03-27 日本電気株式会社 演算プロセッサ
JP3602884B2 (ja) * 1994-04-14 2004-12-15 松下電器産業株式会社 画像処理装置
US20030065699A1 (en) * 2001-10-01 2003-04-03 Koninklijke Philips Electronics N.V. Split multiplier for efficient mixed-precision DSP
US8495125B2 (en) * 2009-05-27 2013-07-23 Microchip Technology Incorporated DSP engine with implicit mixed sign operands
CN102761509B (zh) * 2011-04-27 2016-01-06 联芯科技有限公司 Ofdm系统的接收系统及降低接收系统内存的方法
CN105978611B (zh) * 2016-05-12 2019-09-17 京信通信系统(中国)有限公司 一种频域信号压缩方法及装置
US10691413B2 (en) * 2018-05-04 2020-06-23 Microsoft Technology Licensing, Llc Block floating point computations using reduced bit-width vectors
US10853067B2 (en) * 2018-09-27 2020-12-01 Intel Corporation Computer processor for higher precision computations using a mixed-precision decomposition of operations
CN110780845B (zh) * 2019-10-17 2021-11-30 浙江大学 一种用于量化卷积神经网络的可配置近似乘法器及其实现方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001109613A (ja) 1999-10-05 2001-04-20 Mitsubishi Electric Corp 演算装置
JP2020507844A (ja) 2017-01-30 2020-03-12 エイアールエム リミテッド 入力オペランド値を処理するための装置及び方法

Also Published As

Publication number Publication date
EP4024288A4 (en) 2023-09-06
EP4024288B1 (en) 2024-05-01
US20220253280A1 (en) 2022-08-11
JP2022538238A (ja) 2022-09-01
WO2021185261A1 (zh) 2021-09-23
CN113408717A (zh) 2021-09-17
EP4024288A1 (en) 2022-07-06
EP4024288C0 (en) 2024-05-01

Similar Documents

Publication Publication Date Title
EP3651078B1 (en) Computation device and method
WO2021078212A1 (zh) 用于向量内积的计算装置、方法和集成电路芯片
CN111381871B (zh) 运算方法、装置及相关产品
JP7269381B2 (ja) 計算装置、方法、プリント基板、およびコンピュータ読み取り可能な記憶媒体
TW202115560A (zh) 用於浮點運算的乘法器、方法、積體電路晶片和計算裝置
CN112101541B (zh) 对高位宽值数据进行拆分的装置、方法、芯片及板卡
WO2021078210A1 (zh) 用于神经网络运算的计算装置、方法、集成电路和设备
WO2021083101A1 (zh) 数据处理方法、装置及相关产品
WO2021082725A1 (zh) Winograd卷积运算方法及相关产品
JP7269382B2 (ja) 計算装置、方法、プリント基板、およびコンピュータ読み取り可能な記録媒体
CN109740730B (zh) 运算方法、装置及相关产品
WO2021073512A1 (zh) 用于浮点运算的乘法器、方法、集成电路芯片和计算装置
CN111258537B (zh) 一种防止数据溢出的方法、装置和芯片
CN111523656A (zh) 处理装置及方法
CN111381882A (zh) 数据处理装置及相关产品
WO2021169914A1 (zh) 数据量化处理方法、装置、电子设备和存储介质
CN113112009B (zh) 用于神经网络数据量化的方法、装置和计算机可读存储介质
CN111047023B (zh) 一种计算装置及相关产品
WO2022001438A1 (zh) 一种计算装置、集成电路芯片、板卡、设备和计算方法
WO2021037083A1 (zh) 用于处理数据的方法、装置以及相关产品
CN111738428B (zh) 计算装置、方法及相关产品
WO2021073511A1 (zh) 用于浮点运算的乘法器、方法、集成电路芯片和计算装置
WO2021082724A1 (zh) 运算方法及相关产品
WO2023279946A1 (zh) 一种处理装置、设备、方法及其相关产品
CN117391157A (zh) 硬件加速电路、数据处理加速方法、芯片及加速器

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211223

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211223

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230228

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: 20230418

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230421

R150 Certificate of patent or registration of utility model

Ref document number: 7269382

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150