JP2019079183A - 演算装置及び車載制御装置 - Google Patents

演算装置及び車載制御装置 Download PDF

Info

Publication number
JP2019079183A
JP2019079183A JP2017204440A JP2017204440A JP2019079183A JP 2019079183 A JP2019079183 A JP 2019079183A JP 2017204440 A JP2017204440 A JP 2017204440A JP 2017204440 A JP2017204440 A JP 2017204440A JP 2019079183 A JP2019079183 A JP 2019079183A
Authority
JP
Japan
Prior art keywords
multiplier
register
multiplicand
bits
stored
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
Application number
JP2017204440A
Other languages
English (en)
Other versions
JP6886389B2 (ja
Inventor
豪一 小野
Goichi Ono
豪一 小野
理宇 平井
Riu Hirai
理宇 平井
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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Automotive Systems 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 Hitachi Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Priority to JP2017204440A priority Critical patent/JP6886389B2/ja
Priority to PCT/JP2018/032577 priority patent/WO2019082511A1/ja
Priority to DE112018004631.1T priority patent/DE112018004631T5/de
Publication of JP2019079183A publication Critical patent/JP2019079183A/ja
Application granted granted Critical
Publication of JP6886389B2 publication Critical patent/JP6886389B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

【課題】ひとつの乗数に制限されずに一つの乗算器で複数の乗算を並列的に実行する。【解決手段】乗数Aと、乗数Bと、被乗数a及び被乗数bを受け付ける受付部と、前記乗数A及び前記乗数Bを含む乗数と、前記被乗数a及び前記被乗数bを含む被乗数との乗算を実行する乗算器と、前記乗算器の演算結果から複数の乗算結果を出力する出力部と、を有し、前記乗算器は、前記被乗数aに対し、前記乗数A及び前記乗数Bを乗ずる演算と、前記被乗数bに対し、前記乗数Aまたは前記乗数Bを乗ずる演算を一括で実行する。【選択図】図3

Description

本発明は、乗算器を含むプログラマブルロジックデバイスに関する。
近年、機械学習による物体認識や行動予測を、車両の自動運転に適用する技術が進展している。物体認識等に適用する機械学習手法としては、Deep Neural Network(以下、DNN)が知られている。
DNNでは畳み込み演算の演算量が大きいため、車両に搭載する演算装置では演算能力の増大が必要となる。畳み込み演算を高速に実行するためには、積和演算器を含む演算装置を採用して演算の並列度を向上させる必要がある。車載用の演算装置としては、消費電力当たりの演算性能が高いFPGA(Field-Programmable Gate Array)等のプログラマブルロジックデバイスが好適である。
また、DNNの推論演算では、32bitや16bit幅のデータではなく、低ビット幅(INT8、またはINT8以下)の演算でも認識率の低下が少ないため、低ビット幅での演算が主流になりつつある。
演算装置の演算能力を増大させる技術としては、特許文献1や非特許文献1が知られている。特許文献1には、低ビット数の演算器を複数使用して乗算のパイプラインを実現する技術が開示されている。また、非特許文献1には、一つの積和演算器で2つの乗算を並列的に実現する技術が開示されている。
特開2003−303094号公報
"ザイリンクス デバイスでのINT8 に最適化したエンベデッド ビジョンの実装"、[online]、[平成29年10月3日検索]、インターネット<https://japan.xilinx.com/support/documentation/white_papers/j_wp490-embedded-vision-int8.pdf>
FPGAの乗算器はハードウェアで作り込まれているため、乗算を低ビット化しても乗算器の演算能力は変わらず、また、消費電力の低下にも寄与しない。また、上記非特許文献1では、一つの乗算器で2つの乗算が可能となっているが、2つの被乗数a、bに対してひとつの乗数cを共用するという制限があり、乗算の並列化がa×c、b×cに制限されてしまう、という問題があった。
そこで本発明は、上記問題点に鑑みてなされたもので、ひとつの乗数に制限されずに一つの乗算器で複数の乗算を並列的に実行することを目的とする。
本発明は、乗数Aと、乗数Bと、被乗数a及び被乗数bを受け付ける受付部と、前記乗数A及び前記乗数Bを含む乗数と、前記被乗数a及び前記被乗数bを含む被乗数との乗算を実行する乗算器と、前記乗算器の演算結果から複数の乗算結果を出力する出力部と、を有し、前記乗算器は、前記被乗数aに対し、前記乗数A及び前記乗数Bを乗ずる演算と、前記被乗数bに対し、前記乗数Aまたは前記乗数Bを乗ずる演算を、一括で実行する。
したがって、本発明は、2つの被乗数a、bに対して2つの乗数A、Bを用いて3つの乗算を並列的に実行することが可能となり、ひとつの乗算器の演算能力を向上させることが可能となる。これにより、ひとつの乗数に制限されずに一つの乗算器で複数の乗算を並列的に実行することが可能となる。
本発明の実施例1を示し、車載用の演算装置の一例を示すブロック図である。 本発明の実施例1を示し、乗算器の一例を示すブロック図である。 本発明の実施例1を示し、乗算器のレジスタの一例を示す図である。 本発明の実施例1を示し、乗数及び被乗数を格納する位置を示す図である。 本発明の実施例1を示し、乗算器を畳み込み演算に適用した例を示す図である。 本発明の実施例2を示し、車載用の演算装置の一例を示すブロック図である。 本発明の実施例2を示し、乗算器のレジスタの一例を示す図である。 本発明の実施例2を示し、乗算器を畳み込み演算に適用した例を示す図である。 本発明の実施例3を示し、車載用制御装置の一例を示すブロック図である。
以下、本発明の実施形態を添付図面に基づいて説明する。
図1は、本発明の実施例1を示し、車載用の演算装置の一例を示すブロック図である。本実施例1では、車載用の演算装置1として、複数の乗算器を含むFPGAを採用した例を示す。
演算装置1は、演算対象の被乗数a、bと乗数A、Bを受け付けるn個の受付部2−1〜2−nと、後述するように3つの乗算を並列実行するn個の乗算器3−1〜3−nと、乗算器3−1〜3−nの演算結果を出力する出力部4−1〜4−nとを含む。なお、以下の説明では、乗算器3−1〜3−nの全体について説明する際には「−」以降を省略した符号3を用いる。他の構成要素の符号についても同様である。
演算装置1は、n個の乗算器3の他に、図示はしないが、プログラム可能な論理ブロックやメモリリソースを含む。受付部2や出力部4は、上記論理ブロック等によって構成することができる。
演算装置1は、被乗数a、bを格納するBレジスタ31と、乗数A、Bを格納するADレジスタ35と、Bレジスタ31とADレジスタ35の値を乗じる乗算部36と、乗算結果を格納するPレジスタ39とを含む。
受付部2は、4ビットの被乗数a,bを、18ビットのBレジスタ31の所定の位置(ビット)に格納する。また、受付部2は、後述する前置加算器34を用いて、4ビットの乗数A、Bを、25ビットのADレジスタ35の所定の位置(ビット)に格納させる。
乗算部36は、Bレジスタ31の値にADレジスタ35の値を乗じて、演算結果を45ビットのPレジスタ39に格納する。本実施例1では、受付部2が後述するように、被乗数a,bと乗数A、Bの格納位置を調整することで、8ビット長の演算結果(b×A、a×A、b×B)を3つ含む乗算結果を1回の乗算で得ることができる。なお、演算結果には1ビットの符号ビットを加えた9ビットで扱うことができる。また、上位ビットの演算結果(b×B)の符号ビットは、図中不定とした19ビットの中に含めることができる。
出力部4は、Pレジスタ39に格納された45ビットの演算結果から、所定の位置に格納された8ビット長の3つの演算結果を選択して出力する。
図2は、乗算器3の詳細な構成の一例を示すブロック図である。18ビットのBレジスタ31は乗算部36に接続される。
図1に示したADレジスタ35の前段には、前置加算器34とAレジスタ32とDレジスタ33が配置される。Aレジスタ32とDレジスタ33は、それぞれ25ビットで構成される。前置加算器34は、Aレジスタ32とDレジスタ33の加算結果を、25ビットのADレジスタ35に格納する。
受付部2は、Bレジスタ31に被乗数a、bを格納し、Aレジスタ32に定数Bを格納し、Dレジスタ33に乗数Bを格納する。前置加算器34は乗数A、Bの加算結果をADレジスタ35に出力する。
乗算部36は、Bレジスタ31の値にADレジスタ35の値を乗じた結果をMレジスタ37に格納する。Mレジスタ37はALU38を介してPレジスタ39に接続される。本実施例1では、ALU38はMレジスタ37の内容をそのままPレジスタ39に出力する。なお、本実施例1では、Mレジスタ37と、Pレジスタ39の幅は45ビットとする。
図示の例では、受付部2は、被乗数a、bをBレジスタ31の所定の位置に格納する。また、受付部2は、乗数BをAレジスタ32の所定の位置に格納し、乗数AをDレジスタ33の所定の位置に格納する。
乗算器3はAレジスタ32とDレジスタ33に値が設定されると、前置加算器34で加算させる。前置加算器34は、Aレジスタ32とDレジスタ33の加算結果を25ビット幅のADレジスタ35に格納する。
図3は、乗算器3の各レジスタの一例を示す図である。図中左側がMSB(Most Significant Bit)を示し、図中右側がLSB(Least Significant Bit)を示す。
受付部2は、4ビットの被乗数bをBレジスタ31のLSB側の0〜3ビットに格納する。さらに、受付部2は、4ビットの被乗数aをBレジスタ31のMSB側の9〜12ビットに格納する。なお、受付部2は、被乗数a,bを格納したビットを除くBレジスタ31の他のビット(4〜8、13〜17)には0を設定する。
受付部2は、4ビットの乗数AをDレジスタ33のLSB側の0〜3ビットに格納する。さらに、受付部2は、4ビットの乗数BをAレジスタ32のMSB側の18〜21ビットに格納する。なお、受付部2は、乗数Aを格納したビットを除くDレジスタ33の他のビット(4〜24)には0を設定する。また、受付部2は、乗数Bを格納したビットを除くAレジスタ32の他のビット(0〜17、22〜24)には0を設定する。
前置加算器34による加算結果は、ADレジスタ35のLSB側の0〜3ビットに乗数Aが格納され、ADレジスタ35のMSB側の18〜21ビットに乗数Bが格納される。また、ADレジスタ35の乗数A、Bを格納したビット以外の他のビット(4〜17、22〜24)には0が設定される。
乗算部36による乗数結果は、Pレジスタ39の0〜26ビットに格納される。Pレジスタ39の0〜7ビットには、被乗数b×乗数Aの値が格納される。Pレジスタ39の8ビットは、b×Aの乗算結果の符号ビットとして用いることができる。
Pレジスタ39の9〜16ビットには、被乗数a×乗数Aの値が格納される。Pレジスタ39の17ビットは、a×Aの乗算結果の符号ビットとして用いることができる。Pレジスタ39の18〜25ビットには、被乗数b×乗数Bの値が格納される。Pレジスタ39の26ビットは、b×Bの乗算結果の符号ビットとして用いることができる。
被乗数a、bと乗数A、Bを図示のように、Aレジスタ32、Bレジスタ31、Dレジスタ33の所定の位置に設定することで、乗算部36は、一回の乗算で、b×Aとa×A及びb×Bの3つの演算結果を得ることができる。
出力部4は、Pレジスタ39の0〜7ビットをb×Aの演算結果として選択し、9〜16ビットをa×Aの演算結果として選択し、18〜25ビットをb×Bの乗算結果として選択して出力することができる。
本実施例1の演算装置1によれば、被乗数a、bと乗数A、Bの4つの値から、3つの乗算結果(b×A、a×A、b×B)を1回の乗算で得ることが可能となる。このように、本実施例1では、前記従来例のようにひとつの乗数cに制限されることなく所望の乗数A、Bで3つの乗算結果を並列的に算出することが可能となる。
図4は、乗算器3の各レジスタに乗数及び被乗数を格納する位置を示す図である。図3の例では、被乗数と乗数が4ビットの例を示したが、図4は、被乗数と乗数のビット数をXビットとした場合に、Dレジスタ33、Aレジスタ32、Bレジスタ31に被乗数と乗数を設定する位置を示す。なお、以下の例では、各レジスタの長さ(ビット数)に制限がないと仮定した場合を示す。
Dレジスタ33には、受付部2が乗数Aを、LSB側の0〜X−1ビットに設定する。Aレジスタ32には、受付部2が乗数Bを、MSB側の2×(2X+1)ビットから設定する。
Bレジスタ31には、受付部2が被乗数bを、LSB側の0〜X−1ビットに設定し、被乗数aを、MSB側の2X+1ビットから設定する。
乗算結果を格納するPレジスタ39には、LSB側の0〜2Xビットにb×Aと符号ビットが格納され、9〜2×(2Xビット+1)−1にa×Aと符号ビットが格納され、2×(2Xビット+1)〜3×(2Xビット+1)−1にb×Bと符号ビットが格納される。
換言すれば、受付部2は、ADレジスタ35(第1のレジスタ)で乗数Aを最下位ビットから格納し、乗数Bを最下位ビットから4X+2ビットの位置から格納し、Bレジスタ31(第2のレジスタ)で被乗数bを最下位ビットから格納し、被乗数aを最下位ビットから2X+1ビットの位置から格納する。
なお、図示はしないが、Dレジスタ33またはAレジスタ32のいずれか一方に、乗数A、Bを設定するようにしてもよい。
図5は、乗算器3を畳み込み演算に適用した例を示す図である。図示の例では、スライディングウィンドウで画像とフィルタの乗算を行う例を示す。スライド前の画像a、bとフィルタの乗数A、Bを乗算器3−1で演算し、スライド後の画像c、dとフィルタの乗数B、Cを乗算器3−2で演算する。そして、乗算器3の後段に配置した加算器5−1、5−2でスライド前の結果と、スライド後の結果を出力する例を示す。なお、加算器5−1、5−2は、出力部4に含まれる例を示す。
乗算器3−1は、画像a、bを被乗数として受け付けて、フィルタA、Bを乗数として受け付けて乗算を実行する。前記図3と同様に、乗算器3−1は、乗算結果としてa×A、b×B及びb×Aを算出する。
乗算器3−2は、画像c、dを被乗数として受け付けて、フィルタB、Cを乗数として受け付けて乗算を実行する。乗算器3−2は、乗算結果としてc×B、d×C及びc×Cを算出する。
乗算器3−1は、加算器5−1にa×A、b×Bを出力する。乗算器3−2は、加算器5−1にc×Cを出力する。加算器5−1は、スライド前の畳み込み演算の結果(a×A、b×A、c×C)を出力する。
乗算器3−2は、加算器5−2にc×B、d×Cを出力する。乗算器3−1は、加算器5−2にb×Aを出力する。加算器5−2は、スライド後の畳み込み演算の結果(b×A、c×B、d×C)を出力する。
本実施例1では、乗算器3を複数使用することで、畳み込み演算を効率よく実行することができる。そして、一つの乗算器で3つの乗算結果を並列的に算出することが可能なるので、畳み込み演算を実行する演算装置1で使用する乗算器3の数を低減でき、消費電力の削減も実現することができる。
なお、上記実施例1では、乗数A、Bを格納するAレジスタ32とDレジスタ33の値を前置加算器34が加算してADレジスタ35に格納してから、乗算部36がBレジスタ31との乗算を行う例を示したが、これに限定されるものではない。前置加算器34を用いない場合では、受付部2がADレジスタ35に直接アクセスして乗数A、Bを上述のように格納し、被乗数a,bを格納するBレジスタ31と、乗数A、Bを格納するADレジスタ35の積を乗算部36が演算すれば良い。
以上のように、乗算器3は、前記被乗数aに対して乗数Aを乗ずる演算と、被乗数bに対して前記乗数A及び乗数Bを乗ずる演算を一括して実行することで、3つの乗算結果(b×A、a×A、b×B)を得ることができ、ひとつの乗数に制限されずに一つの乗算器で複数の乗算を並列的に実行することが可能となる。
図6、図7は、本発明の実施例2を示し、車載用の演算装置1の一例を示すブロック図である。本実施例2では、Aレジスタ32(ADレジスタ35)への乗数Bの格納位置を前記実施例1とは異なる位置に格納するもので、その他の構成は前記実施例1と同様である。
本実施例2の受付部2は、図7で示すように、Aレジスタ32のLSB側の9ビット目(2X+1)から乗数Bを格納する。前置加算器34はAレジスタ32とDレジスタ33を加算して図6のようにADレジスタ35に演算結果を格納する。
乗算部36は、前記実施例1と同様にBレジスタ31とADレジスタ35の積を算出してMレジスタ37を介してPレジスタ39に演算結果を格納する。本実施例2では、前記実施例1のa×Aに代わって、b×A+c×Bを算出できる点が実施例1と相違する。
本実施例2では図7で示すように、受付部2が被乗数b、cをBレジスタ31に設定し、乗数BをAレジスタ32に設定し、乗数AをDレジスタ33に設定する。
すなわち、受付部2は、4ビットの被乗数cをBレジスタ31のLSB側の0〜3ビットに格納する。さらに、受付部2は、前記実施例1と同様に、4ビットの被乗数bをBレジスタ31のMSB側の9〜12ビットに格納する。なお、受付部2は、被乗数b、cを格納したビットを除くBレジスタ31の他のビット(4〜8、13〜17)には0を設定する。
また、受付部2は、4ビットの乗数AをDレジスタ33のLSB側の0〜3ビットに格納する。さらに、受付部2は、4ビットの乗数BをAレジスタ32のLSB側から9〜12ビットに格納する。なお、受付部2は、乗数Aを格納したビットを除くDレジスタ33の他のビット(4〜24)には0を設定する。また、受付部2は、乗数Bを格納したビットを除くAレジスタ32の他のビット(0〜8、13〜24)には0を設定する。
前置加算器34による加算結果は、ADレジスタ35のLSB側の0〜3ビットに乗数Aが格納され、ADレジスタ35の9〜12ビットに乗数Bが格納される。
換言すれば、受付部2は、ADレジスタ35(第1のレジスタ)で乗数Aを最下位ビットから格納し、乗数Bを最下位ビットから2X+1ビットの位置から格納し、Bレジスタ31(第2のレジスタ)で被乗数bを最下位ビットから格納し、被乗数aを最下位ビットから2X+1ビットの位置から格納する。
乗算部36による乗数結果は、Pレジスタ39の0〜26ビットに格納される。Pレジスタ39の0〜7ビットには、被乗数c×乗数Aの値が格納される。Pレジスタ39の8ビットは、b×Aの乗算結果の符号ビットとして用いることができる。
Pレジスタ39の9〜16ビットには、被乗数b×乗数A+被乗数c×乗数Bの値が格納される。Pレジスタ39の17ビットは、b×A+c×Bの乗算結果の符号ビットとして用いることができる。Pレジスタ39の18〜25ビットには、被乗数b×乗数Bの値が格納される。Pレジスタ39の26ビットは、b×Bの乗算結果の符号ビットとして用いることができる。
被乗数b,cと乗数A、Bを図示のように、Aレジスタ32、Bレジスタ31、Dレジスタ33の所定の位置に設定することで、乗算部36は、一回の乗算で、c×Aとb×A+c×B及びb×Bの3つの乗算結果を得ることができる。
出力部4は、Pレジスタ39の0〜7ビットをc×Aの演算結果として選択し、9〜16ビットをb×A+c×Bの演算結果として選択し、18〜25ビットをb×Bの乗算結果として選択して出力することができる。
本実施例2の演算装置1によれば、被乗数b、bと乗数A、Bの4つの値から、3つの乗算結果を1回で得ることが可能となる。このように、本実施例2においても、前記従来例のようにひとつの乗数cに制限されることなく所望の乗数A、Bで3つの乗算結果を並列的に算出することが可能となる。
図8は、本実施例2の乗算器3を畳み込み演算に適用した例を示す図である。図示の例では、スライディングウィンドウで画像とフィルタの乗算を行う例を示す。スライド前の画像b、cとフィルタの乗数A、Bを乗算器3−1で演算し、スライド後の画像d、eとフィルタの乗数B、Aを乗算器3−2で演算する。そして、乗算器3の後段に配置した加算器5−1、5−2、5−3、5−4でスライド前の結果と、スライド後1、スライド後2、スライド後3の結果を出力する例を示す。なお、加算器5−1〜5−4は、出力部4に含まれる例を示す。
乗算器3−1は、画像b、cを被乗数として受け付けて、フィルタA、Bを乗数として受け付けて乗算を実行する。図7で示したように乗算器3−1は、乗算結果としてc×A、b×A+c×B及びb×Bを算出する。
乗算器3−2は、画像d、eを被乗数として受け付けて、フィルタB、Aを乗数として受け付けて乗算を実行する。乗算器3−2は、乗算結果としてd×A、d×B+e×A及びe×Bを算出する。
乗算器3−1は、加算器5−1にc×A、b×Bを出力し、加算器5−2にb×A+c×Bを出力し、加算器5−3にc×Aを出力する。加算器5−1は、スライド前の畳み込み演算の結果(b×B、c×A)を出力する。
乗算器3−2は、加算器5−2にd×Aを出力し、加算器5−3にd×B+e×Aを出力し、加算器5−4にd×A、e×Bを出力する。
加算器5−2は、スライド後1の畳み込み演算の結果(b×A、c×B、d×A)を出力する。加算器5−3は、スライド後2の畳み込み演算の結果(c×A、d×B、e×A)を出力する。加算器5−4は、スライド後3の畳み込み演算の結果(d×A、e×B)を出力する。
本実施例2では、前記実施例1と同様に、乗算器3を複数使用することで、畳み込み演算を効率よく実行することができる。そして、一つの乗算器で3つの乗算結果を並列的に算出することが可能なるので、畳み込み演算を実行する演算装置1で使用する乗算器3の数を低減でき、消費電力の削減も実現することができる。
なお、上記実施例2では、乗数A、Bを格納するAレジスタ32とDレジスタ33の値を前置加算器34が加算してADレジスタ35に格納してから、乗算部36がBレジスタ31との乗算を行う例を示したが、これに限定されるものではない。前置加算器34を用いない場合では、受付部2がADレジスタ35に直接アクセスして乗数A、Bを上述のように格納し、被乗数b、cを格納するBレジスタ31と、乗数A、Bを格納するADレジスタ35の積を乗算部36が演算すれば良い。
また、上記実施例2では、被乗数b、cを用いる例を示したが、前記実施例1の図3と同様に被乗数a、bをBレジスタ31に設定した場合、乗算結果は、b×A、a×A+b×B、a×Bとなる。すなわち、乗算器3は、被乗数aに対して乗数A及び乗数Bを乗ずる演算と、被乗数bに対して乗数A及び乗数Bを乗ずる演算を一括して実行することで、3つの乗算結果(b×A、a×A+b×B、a×B)を得ることができ、ひとつの乗数に制限されずに一つの乗算器で複数の乗算を並列的に実行することが可能となる。
図9は、本発明の実施例3を示し、前記実施例1または実施例2の車載用の演算装置1を採用した車載制御装置100の一例を示すブロック図である。
車載制御装置100には、画像を取得するカメラ110と、車両の制御対象となるアクチュエータ140が接続される。車載制御装置100は、カメラ110が取得した画像を所定の形式で出力する画像処理部120と、画像処理部120からのデータを受け付けてDNNの畳み込み演算を実施する演算装置1と、演算装置1の演算結果に基づいてアクチュエータ140を制御する駆動部130を含む。
演算装置1は前記実施例1または前記実施例2と同様であり、DNNの畳み込み演算を実行して車両の制御を行う。演算装置1は、画像処理部120が出力したデータを被乗数として受け付けて、予め設定されたフィルタの乗数A、Bで乗算を含む演算を実施する。なお、演算装置1は、フィルタの乗数A、Bを外部から受け付けてもよい。
アクチュエータ140は、例えば、操舵装置や制動装置あるいは駆動力制御装置を構成する。なお、駆動部130は、アクチュエータ140に代わってインバータなどの電子機器を制御しても良い。
演算装置1は、前記実施例1または実施例2と同様に1つの乗算器3で3つの乗算を一括して実行することができる。このため、DNNの畳み込み演算のように多数の乗算を実行する場合には、演算装置1で稼働する乗算器3の数を低減でき、消費電力の削減も実現することができる。
なお、上記実施例1、2、3では、演算装置1にFPGAを採用する例を示したが、これに限定されるものではなく、乗算器3を含むDSP(Digital Signal Processor)やASIC(Application Specific Integrated Circuit)あるいは他のプログラマブルロジックデバイスを採用することができる。
また、上記実施例1の乗算器3は、被乗数aに対して乗数Aを乗ずる演算と、被乗数bに対して乗数A及び乗数Bを乗ずる演算を一括して実行する例を示し、上記実施例2の乗算器3は、被乗数aに対して乗数A及び乗数Bを乗ずる演算と、被乗数bに対して乗数A及び乗数Bを乗ずる演算を一括して実行する例を示したが、これに限定されるものではない。例えば、被乗数aに対して乗数A及び乗数Bを乗ずる演算と、被乗数bに対して乗数Aまたは乗数Bを乗ずる演算を一括して実行しても良い。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
1 演算装置
2 受付部
3 乗算器
4 出力部
31 Bレジスタ
32 Aレジスタ
33 Dレジスタ
34 前置加算器
35 ADレジスタ
36 乗算部36
37 Mレジスタ37
38 ALU
39 Pレジスタ
100 車載制御装置
110 カメラ
120 画像処理部

Claims (10)

  1. 乗数Aと、乗数Bと、被乗数a及び被乗数bを受け付ける受付部と、
    前記乗数A及び前記乗数Bを含む乗数と、前記被乗数a及び前記被乗数bを含む被乗数との乗算を実行する乗算器と、
    前記乗算器の演算結果から複数の乗算結果を出力する出力部と、を有し、
    前記乗算器は、
    前記被乗数aに対し、前記乗数A及び前記乗数Bを乗ずる演算と、前記被乗数bに対し、前記乗数Aまたは前記乗数Bを乗ずる演算を、一括で実行することを特徴とする演算装置。
  2. 請求項1に記載の演算装置であって、
    前記受付部は、
    前記乗数A及び前記乗数Bを乗算器の第1のレジスタに格納し、
    前記被乗数a及び前記被乗数bを乗算器の第2のレジスタに格納し、
    前記乗算器は、
    前記第1のレジスタと第2のレジスタを用いて、複数の乗算を一括で実行することを特徴とする演算装置。
  3. 請求項2に記載の演算装置であって、
    前記受付部は、
    前記第1のレジスタで前記乗数A又は前記乗数Bが格納されているビット以外に0を格納し、前記第2のレジスタで前記被乗数a又は前記被乗数bが格納されているビット以外に0を配置することを特徴とする演算装置。
  4. 請求項3に記載の演算装置であって、
    前記乗数A又は前記乗数Bと前記被乗数a又は前記被乗数bの長さがXビットの場合、
    前記受付部は、
    前記第1のレジスタで前記乗数Aを最下位ビットから格納し、前記乗数Bを最下位ビットから4X+2ビットの位置から格納し、前記第2のレジスタで前記被乗数bを最下位ビットから格納し、前記被乗数aを最下位ビットから2X+1ビットの位置から格納することを特徴とする演算装置。
  5. 請求項3に記載の演算装置であって、
    前記乗数A又は前記乗数Bと前記被乗数a又は前記被乗数bの長さがXビットの場合、
    前記受付部は、
    前記第1のレジスタで前記乗数Aを最下位ビットから格納し、前記乗数Bを最下位ビットから2X+1ビットの位置から格納し、
    前記受付部は、
    前記第2のレジスタで前記被乗数bを最下位ビットから格納し、前記被乗数aを最下位ビットから2X+1ビットの位置から格納することを特徴とする演算装置。
  6. 画像処理部からのデータを被乗数a及び被乗数bとして受け付け、フィルタの乗数A及び乗数Bを受け付ける受付部と、
    前記乗数A及び前記乗数Bを含む乗数と、前記被乗数a及び前記被乗数bを含む被乗数との乗算を実行する乗算器と、
    前記乗算器の演算結果から複数の乗算結果を出力する出力部と、を有し、
    前記乗算器は、
    前記被乗数aに対し、前記乗数A及び前記乗数Bを乗ずる演算と、前記被乗数bに対し、前記乗数Aまたは前記乗数Bを乗ずる演算を、一括で実行することを特徴とする車載制御装置。
  7. 請求項6に記載の車載制御装置であって、
    前記受付部は、
    前記乗数A及び前記乗数Bを乗算器の第1のレジスタに格納し、
    前記被乗数a及び前記被乗数bを乗算器の第2のレジスタに格納し、
    前記乗算器は、
    前記第1のレジスタと第2のレジスタを用いて、複数の乗算を一括で実行することを特徴とする車載制御装置。
  8. 請求項7に記載の車載制御装置であって、
    前記受付部は、
    前記第1のレジスタで前記乗数A又は前記乗数Bが格納されているビット以外に0を格納し、前記第2のレジスタで前記被乗数a又は前記被乗数bが格納されているビット以外に0を配置することを特徴とする車載制御装置。
  9. 請求項8に記載の車載制御装置であって、
    前記乗数A又は前記乗数Bと前記被乗数a又は前記被乗数bの長さがXビットの場合、
    前記受付部は、
    前記第1のレジスタで前記乗数Aを最下位ビットから格納し、前記乗数Bを最下位ビットから4X+2ビットの位置から格納し、前記第2のレジスタで前記被乗数bを最下位ビットから格納し、前記被乗数aを最下位ビットから2X+1ビットの位置から格納することを特徴とする車載制御装置。
  10. 請求項8に記載の車載制御装置であって、
    前記乗数A又は前記乗数Bと前記被乗数a又は前記被乗数bの長さがXビットの場合、
    前記受付部は、
    前記第1のレジスタで前記乗数Aを最下位ビットから格納し、前記乗数Bを最下位ビットから2X+1ビットの位置から格納し、
    前記受付部は、
    前記第2のレジスタで前記被乗数bを最下位ビットから格納し、前記被乗数aを最下位ビットから2X+1ビットの位置から格納することを特徴とする車載制御装置。
JP2017204440A 2017-10-23 2017-10-23 演算装置及び車載制御装置 Active JP6886389B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017204440A JP6886389B2 (ja) 2017-10-23 2017-10-23 演算装置及び車載制御装置
PCT/JP2018/032577 WO2019082511A1 (ja) 2017-10-23 2018-09-03 演算装置及び車載制御装置
DE112018004631.1T DE112018004631T5 (de) 2017-10-23 2018-09-03 Arithmetikeinrichtung und an einem Fahrzeug montierte Steuereinrichtung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017204440A JP6886389B2 (ja) 2017-10-23 2017-10-23 演算装置及び車載制御装置

Publications (2)

Publication Number Publication Date
JP2019079183A true JP2019079183A (ja) 2019-05-23
JP6886389B2 JP6886389B2 (ja) 2021-06-16

Family

ID=66246381

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017204440A Active JP6886389B2 (ja) 2017-10-23 2017-10-23 演算装置及び車載制御装置

Country Status (3)

Country Link
JP (1) JP6886389B2 (ja)
DE (1) DE112018004631T5 (ja)
WO (1) WO2019082511A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021033813A (ja) * 2019-08-28 2021-03-01 株式会社デンソー 畳込み演算方法及び演算処理装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110262774B (zh) * 2019-05-25 2023-03-24 南京惟心光电系统有限公司 一种光电乘法器的计算方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0784763A (ja) * 1993-09-09 1995-03-31 Fujitsu Ltd 乗算回路
JPH1195981A (ja) * 1997-09-18 1999-04-09 Toshiba Corp 乗算回路
JP2011008439A (ja) * 2009-06-24 2011-01-13 Ihi Corp 通路検出プログラム、通路検出装置及び方法
JP2011180966A (ja) * 2010-03-03 2011-09-15 Renesas Electronics Corp 積和演算器
JP2016045685A (ja) * 2014-08-22 2016-04-04 富士通株式会社 乗算回路及びその乗算方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003303094A (ja) 2002-04-11 2003-10-24 Toshiba Corp 乗算回路
JP6010715B1 (ja) 2016-05-13 2016-10-19 株式会社日立パワーソリューションズ マグネトロンおよびマグネトロンの共振周波数調整方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0784763A (ja) * 1993-09-09 1995-03-31 Fujitsu Ltd 乗算回路
JPH1195981A (ja) * 1997-09-18 1999-04-09 Toshiba Corp 乗算回路
JP2011008439A (ja) * 2009-06-24 2011-01-13 Ihi Corp 通路検出プログラム、通路検出装置及び方法
JP2011180966A (ja) * 2010-03-03 2011-09-15 Renesas Electronics Corp 積和演算器
JP2016045685A (ja) * 2014-08-22 2016-04-04 富士通株式会社 乗算回路及びその乗算方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021033813A (ja) * 2019-08-28 2021-03-01 株式会社デンソー 畳込み演算方法及び演算処理装置
JP7230744B2 (ja) 2019-08-28 2023-03-01 株式会社デンソー 畳込み演算方法及び演算処理装置

Also Published As

Publication number Publication date
WO2019082511A1 (ja) 2019-05-02
DE112018004631T5 (de) 2020-07-16
JP6886389B2 (ja) 2021-06-16

Similar Documents

Publication Publication Date Title
JP7348971B2 (ja) 畳み込みニューラルネットワークハードウエア構成
CN109871936B (zh) 用于处理神经网络中的卷积运算的方法和装置
JP6987860B2 (ja) ハードウェアにおけるカーネルストライドの実行
US10621489B2 (en) Massively parallel neural inference computing elements
EP3480742A1 (en) Activation functions for deep neural networks
WO2019201657A1 (en) Accelerator and system for accelerating operations
EP4066101A1 (en) Systolic array including fused multiply accumulate with efficient prenormalization and extended dynamic range
EP3528181B1 (en) Processing method of neural network and apparatus using the processing method
CN111382859A (zh) 用于处理神经网络中的卷积运算的方法和装置
JP7414930B2 (ja) 情報処理装置、情報処理方法
JP4349265B2 (ja) プロセッサ
US11113361B2 (en) Electronic apparatus and control method thereof
JP2020507844A (ja) 入力オペランド値を処理するための装置及び方法
JP6886389B2 (ja) 演算装置及び車載制御装置
CN112528219A (zh) 存储器装置及其运算方法、计算设备
EP3709225A1 (en) System and method for efficient utilization of multipliers in neural-network computations
WO2021073918A1 (en) Multi-mode low-precision inner-product computation circuits for massively parallel neural inference engine
US11281745B2 (en) Half-precision floating-point arrays at low overhead
CN110852414B (zh) 高精度低位卷积神经网络
JP6737869B2 (ja) スライディングウィンドウ演算
CN111507456A (zh) 具有卷积神经网络处理的方法和装置
CN114595811A (zh) 用于执行深度学习操作的方法和设备
US20200089474A1 (en) Arithmetic logic unit, data processing system, method and module
CN113869517A (zh) 一种基于深度学习模型的推理方法
TW202319909A (zh) 用於將輸入集相乘之硬體電路及方法,以及非暫時性機器可讀儲存裝置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210330

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210408

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210514

R150 Certificate of patent or registration of utility model

Ref document number: 6886389

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250