JP2019526876A - モデル計算ユニット、及び、多層パーセプトロンモデルを計算するための制御装置 - Google Patents

モデル計算ユニット、及び、多層パーセプトロンモデルを計算するための制御装置 Download PDF

Info

Publication number
JP2019526876A
JP2019526876A JP2019533673A JP2019533673A JP2019526876A JP 2019526876 A JP2019526876 A JP 2019526876A JP 2019533673 A JP2019533673 A JP 2019533673A JP 2019533673 A JP2019533673 A JP 2019533673A JP 2019526876 A JP2019526876 A JP 2019526876A
Authority
JP
Japan
Prior art keywords
model
neuron
setting
calculation unit
data memory
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
JP2019533673A
Other languages
English (en)
Other versions
JP6737960B2 (ja
JP2019526876A5 (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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of JP2019526876A publication Critical patent/JP2019526876A/ja
Publication of JP2019526876A5 publication Critical patent/JP2019526876A5/ja
Application granted granted Critical
Publication of JP6737960B2 publication Critical patent/JP6737960B2/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/08Learning methods
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Feedback Control In General (AREA)

Abstract

本発明は、多層パーセプトロンモデルを計算するためのモデル計算ユニット(22)であって、モデル計算ユニット(22)は、ハードウェアで形成されハードワイヤードされており、‐入力ベクトル(ut)の1つ以上の入力に従って、複数のニューロン(20)を有する多層パーセプトロンモデルのニューロン層の1つ以上の出力を計算するよう構成された演算コア(18)と、‐ニューロン層ごとに、各設定メモリ区分(A)に設定パラメータを格納するための設定メモリ領域(121)と、各データメモリ区分(D)に入力ベクトルの入力及び1つ以上の出力(y[j])を格納するためのデータメモリ領域(122)と、を有するメモリ(12)と、‐演算コア(18)に以下のこと、即ち、各設定メモリ区分(A)の設定パラメータと、設定パラメータにより定義された、入力ベクトル(ut)の入力と、に基づいてニューロン層をそれぞれ計算し、及び、得られた各出力(y[j])を、対応する設定パラメータにより定義された、データメモリ領域(122)のデータメモリ区分(D)に格納すること、を連続的に命令するよう構成されたDMAユニット(17)と、を含み、連続的に考慮される設定メモリ区分(A)の設定パラメータは、得られた出力のためのデータメモリ部分(D)であって、その次のニューロン層の計算用の入力のためのデータメモリ部分(D)に相当する上記データメモリ区分(D)を指定する、上記モデル計算ユニット(22)に関する。【選択図】図1

Description

本発明は、特に多層パーセプトロンモデルを計算するための、ハードワイヤードされている別体のモデル計算ユニットでの関数モデルの計算に関する。
例えば、内燃機関、エレクトリックパワートレイン、蓄電池等の技術システムを制御する機能は、実際のシステムの数学的な描写に相当するモデルを用いて実現されることが多い。しかしながら、物理的なモデルでは、特に関係が複雑な場合には、必要とされる計算精度が欠けており、今日の計算能力では、このようなモデルを、制御装置のために要求される実要求時間の範囲内で計算することは通常困難である。このような場合のために、データに基づくモデルであって、試験機等を利用して獲得された訓練データのみに基づいて出力と入力との間の関係を記述する上記データに基づくモデルを利用することが考えられている。
特に、データに基づくモデルは、複雑な関係をモデル化するために適しており、ここでは、相互関係が生じている複数の入力が適切なやり方でモデルにおいて考慮される。さらに、データに基づくモデルを利用したモデル化によって、個別入力の付加によりモデルを補完する可能性が与えられる。
データに基づく関数モデルは、通常は、各適用のために十分なモデル化精度を達成するために多数のサンプルポイントに基づいている。
多数のサンプルポイントにより、例えばガウス過程モデル又は多層パーセプトロンモデル等の、データに基づく関数モデルを用いてモデル値を計算するためには高い計算能力が必要となる。従って、制御装置での適用において、このようなデータに基づく関数モデルを実時間で計算しうるために、ハードウェア構成に基づくモデル計算ユニットが設けられうる。
本発明に基づいて、請求項1に係る多層パーセプトロンモデルのニューロン層を計算するためのモデル計算ユニット、並びに、独立請求項に係る制御装置及び制御装置の利用が構想される。
更なる別の構成が、従属請求項において示される。
第1の観点によれば、多層パーセプトロンモデルを計算するためのモデル計算ユニットであって、モデル計算ユニットは、ハードウェアで形成されハードワイヤードされており、
‐入力ベクトルの1つ以上の入力に従って、複数のニューロンを有する多層パーセプトロンモデルのニューロン層の1つ以上の出力を計算するよう構成された演算コアと、
‐ニューロン層ごとに、各設定メモリ区分に設定パラメータを格納するための設定メモリ領域と、各データメモリ区分に入力ベクトルの入力及び1つ以上の出力を格納するためのデータメモリ領域と、を有するメモリと、
‐演算コアに以下のこと、即ち、各設定メモリ区分の設定パラメータと、設定パラメータにより定義された、入力ベクトルの入力と、に基づいてニューロン層をそれぞれ計算し、及び、得られた各出力を、対応する設定パラメータにより定義された、データメモリ領域のデータメモリ区分に格納すること、を連続的に命令するよう構成されたDMAユニットと、を含み、
連続的に考慮される設定メモリ区分の設定パラメータは、得られた出力のためのデータメモリ部分であって、その次のニューロン層の計算用の入力のためのデータメモリ部分に相当する上記データメモリ区分を指定する、上記モデル計算ユニットが構想される。
上記のモデル計算ユニットでは、データに基づくモデルの一部としての、各可変数のニューロンを有する多層パーセプトロンモデル(MLPモデル)の複数のニューロン層を計算することを可能とする設計が構想される。多層パーセプトロンモデルの利用によって、例えばガウス過程モデル等の比較可能なデータに基づくモデルの場合よりも少ない数のサンプル点を含む、データに基づくモデル化が提示される。
上記のモデル計算ユニットの構想は、多層パーセプトロンモデルの層を計算するためのこのモデル計算ユニットを、制御装置の演算コアにハードウェア構造により別体で形成することである。このやり方で、ほぼハードワイヤードされたハードウェア回路が、以下のような機能を実現するために提供され、即ち、多層パーセプトロンモデルの1つ以上の層を計算し、その際に、ソフトウェアで制御される、制御装置のマイクロプロセッサで、非常に僅かな計算負荷しか生じさせないことを可能とする上記機能を実現するために提供されうる。モデル計算ユニットにより提供されるハードウェア加速化によって、多層パーセプトロンモデルを実時間で計算することが可能であり、従って、このようなモデルの利用は、自動車の内燃機関のための制御装置での適用にとって有益でありうる。
ハードウェアにより形成された上記モデル計算ユニットによって、制御装置の演算コアでの、多層パーセプトロンモデルの複数のニューロン層の自動的に連続的に行われる計算が可能となる。ハードワイヤードにより形成されたモデル計算ユニットへと、多層パーセプトロンモデルの計算を移すことによって、マイクロプロセッサと、多層パーセプトロンモデルを計算するためのモデル計算ユニットと、の間の通信を可能な限り減らし、このようにしてモデル値の計算のための時間消費を最小限に抑えることが可能である。
多層パーセプトロンモデルのモデル値が計算される際には、通常では層単位で計算が実行され、その際に、入力ベクトルの入力が第1のニューロン層に供給され、第1のニューロン層の計算によって、中間出力ベクトルの中間出力が獲得され、この中間出力自体は、パーセプトロンモデルの下位ニューロン層のための中間入力として機能する。
パーセプトロンモデルのニューロン層の数に対応して、上記の計算が連続的に行われ、従って、最後のニューロン層の結果としてモデル値が獲得される。このために、DMAユニットと共に演算フローの制御を行うことが可能なメモリ構造が設けられる。
入力ベクトルの入力、及び、後続の他のニューロン層のための中間入力ベクトルの中間入力を格納するための各区分を含むデータメモリ領域を設けることによって、他の複写プロセス無しで、モデル計算ユニットでのモデル値の自動的な計算を設けることが可能である。このことは、最後のニューロン層を除いた各ニューロン層の出力ベクトルの出力がそれぞれ、次に計算されるニューロン層の中間入力を格納するためのデータメモリ領域の区分に格納されるように行われる。DMAユニットによって、演算コアでの対応するニューロン層の計算を新たに開始させることによって、多層パーセプトロンモデルの所定数のニューロン層を自動的に計算することが可能である。
特に、演算の流れを設定しかつニューロン層の数及びニューロン層ごとのニューロンの予め設定可能な数をパラメータ化してニューロンの計算順序を設定することを可能とする設定メモリ領域を設けることが可能である。さらに、演算コアでは、入力ベクトルの入力をそこから読み出しかつ1のニューロン層の出力ベクトルの出力をそこに書き込むデータメモリ領域を、以下のようにアドレス指定し、即ち、1のニューロン層の計算の出力が次のニューロン層のための中間入力として再定義されるようにアドレス指定することが構想される。これにより、ニューロン層の新たな計算の自動的な開始によって、パーセプトロンモデルの多層での計算の流れが、演算コアのメモリの設定メモリ領域での適切なパラメータ化によって設けられうる。このようにして、多層パーセプトロンモデルを計算するというタスクを、マイクロプロセッサによって演算コアに予め設定し、上記計算の終了後に、マイクロプロセッサによる更なる介入無しで、多層パーセプトロンモデルの出力としてのモデル値を、マイクロプロセッサによって呼出し又は受信することが可能である。
さらに、DMAユニットが、ニューロン層の計算の終了後に、次のニューロン層のための設定パラメータを演算コアに提供するよう構成され、ここで、上記計算は、1つ以上の設定パラメータに従って終了されることが構想されうる。
一実施形態によれば、演算コアは、ニューロン層の現在の計算の終了を、DMAユニットにシグナリングするよう構成されうる。DMAユニットは、次のニューロン層の計算を、別の設定メモリ区分に格納された設定パラメータに基づいて開始する。
さらに、演算コアは、複数のニューロンを有する多層パーセプトロンモデルのニューロン層ごとに、入力ベクトルの1つ以上の入力と、重み付け係数を含む重み付けマトリクスと、ニューロンごとに予め設定されるオフセット値と、に従って、ニューロンごとに出力を計算するよう構成され、各ニューロンについて、各重み付け係数により重み付けされた、上記入力の値の和に、ニューロンに予め設定されたオフセット値が加えられ、結果が活性化関数によって変換され、ニューロンのための出力が獲得され、ここで、重み付け係数は、ニューロン及び入力によって定められ又は決定される。
一実施形態によれば、演算コアは、集積モジュールの平面領域に形成されうる。
他の観点によれば、マイクロプロセッサと、1つ以上の上記モデル計算ユニットを含む制御装置が設けられ、制御装置は、特に集積回路として形成される。
更に別の観点によれば、自動車内の内燃機関及び/又はエレクトロパワートレイン及び/又は電気エネルギー貯蔵器を含むエンジンシステムを制御するための制御装置としての、上記制御装置の利用が構想される。
以下では、実施形態が、添付の図面を用いて詳細に解説される。
自動車内のエンジンシステムのための実装のための制御装置の概略図を示す。 制御装置の構成要素としての計算ユニットの概略図を示す。 MLPモデルのニューロン層の概略図を示す。 可能な活性化関数の図を示す。 可能な活性化関数の図を示す。 可能な活性化関数の図を示す。 可能な活性化関数の図を示す。 演算コアの設定メモリ領域の設定メモリ区分を示す。 設定メモリ領域の区分けを示す。 データメモリ領域の区分けを示す。 モデル計算ユニットのDMAユニットの機能を示すためのフロー図を示す。
図1は、制御される技術的システムの一例として内燃機関3を備えるエンジンシステム1のための制御装置2の概略図を例示している。制御装置2は、マイクロプロセッサ21と、モデル計算ユニット22と、を含み、マイクロプロセッサ21とモデル計算ユニット22とは、別々のモジュールとして形成され、又は統合された形態により、チップ上の別々の平面領域に形成されうる。特に、モデル計算ユニット22は、構造的にマイクロプロセッサ21の演算コアから分けることが可能なハードウェア回路である。
モデル計算ユニット22は、基本的にハードワイヤードされており、これに応じて、マイクロプロセッサ21のように、ソフトウェアコードを実行しこれによりソフトウェアによって予め設定される可変的な関数を実行するようには構成されていない。換言すれば、モデル計算ユニット22にはプロセッサが設けられておらず、従って、モデル計算ユニット22は、ソフトウェアコードによっては駆動可能ではない。予め設定されたモデル関数に焦点を絞ることによって、このようなモデル計算ユニット22の、リソースが最適化された実現が可能となる。集積された構造形態において、モデル計算ユニット22は、面積が最適化されて(flaechenoptimiert)実現され、このことによってさらに、高速の計算が可能となる。
制御装置2は基本的に、内燃機関3のセンサシステムにより検知されたセンサ信号S又はセンサ値及び/又は外部の設定Vを処理し、周期的に、例えば1〜100msの固定で予め定められた時間間隔で、又は角度に同期して、駆動される内燃機関のクランク軸の角度に従って、1つ以上の対応する駆動制御変数Aの値を内燃機関3に印加するために役立ち、従って、内燃機関3は公知のやり方で駆動可能である。
図2には、モデル計算ユニット22がより詳細に示されている。モデル計算ユニット22は、状態機械11と、メモリ12と、1つ以上の演算ブロックと、を含み、1つ以上の演算ブロックは、例えば、1つ以上のMACブロック13(固定少数点演算のためのMAC(Multiply‐ACcumulate)、または、浮動小数点演算のためのFMA(Fused‐Multiply‐Add))、活性化関数を計算するための活性化関数計算ブロック14、及び、任意に、加算ブロック15、及び/又は、乗算ブロック16を含む。状態機械11によって、メモリ12内のデータメモリ領域122(入力メモリ領域)に格納された入力の値が、反復されるループ計算によって計算され、従って、中間出力又は出力が獲得され、この中間出力又は出力は、メモリ12の対応する出力メモリ領域に書き込まれる。
上記計算の制御は、DMA(Direct Memory Access)ユニット17を用いて行われうる。
状態機械11は、多層パーセプトロンモデルの個々のニューロン層を計算するよう構成される。状態機械11は、以下の疑似コードによって記述されうる。
Figure 2019526876
但し、
p7:入力ベクトルの入力のための最大インデックス値
p8:現在のニューロン層のニューロンの計算のための最小インデックス値又は初期値
p6:現在のニューロン層のニューロンのための最大インデックス値
p3:オフセット値
p1、p2:入力変換のための変数
p4、p5:出力変換のための変数
上記の疑似コードを用いて、計算されるニューロン層のニューロンごとに以下の計算が実行される。即ち、

j=0…p6‐1について、
Figure 2019526876
これは、図3に示されるような、多層パーセプトロンモデルのニューロン層のための計算を表している。
図3は、複数のニューロン20のニューロン層を示している。複数のニューロン20には、入力ベクトルut…utp6−1の入力の値が供給される。入力の値は、重み付け係数v0…p7−1,0…p6−1からの対応する所定の重み付けマトリクスを用いて重み付けされる。この重み付けは通常、対応付けられた重み付け係数v0…p7−1,0…p6−1を乗算的に加えることによって行われる。重み付け係数は一般に、他のやり方でも入力ベクトルの値に加えられうる。
入力ベクトルut0…utp6−1の上記重み付けされた値の和の結果には、オフセット値O…Op6−1が加えられ、特に加算的に加えられる。この結果は、所定の活性化関数「act」によって変換される。結果として、出力ベクトルy…yp6−1の対応する値が獲得される。ニューロンごとにオフセット値を設けることによって、モデル形成のための更なる自由度が生じる。
インデックス付き変数p6の設定によって、計算されるニューロン層のニューロン20の数が調整されうる。多層パーセプトロンモデルは、ニューロン層の出力ベクトルy…yp6−1の値を、モデル計算ユニット22での次のニューロン層の計算用の入力ベクトルとして利用することによって利用可能であり、従って、多層パーセプトロンモデルの複数のニューロン層を、対応して変更されたパラメータによる上記の疑似コードに係る関数の呼び出し又はモデル計算ユニット22の呼び出しを繰り返すことによって、実現することが可能である。
入力ベクトルの入力の入力変換、及び/又は、出力ベクトルの出力の出力変換を、ニューロンごとに予め設定された正規化変数p1及びp2、又はp4及びp5を用いて行うことが可能である。入力及び出力の上記入力変換及び/又は出力変換は省略されてもよい。
MLPモデルの層単位での計算によって、モデル計算ユニット22のすっきりとした構成が可能となり、集積された構造形態においてモデル計算ユニット22が必要とする面積は小さい。それにも関わらず、モデル計算ユニット22によって、多層パーセプトロンモデルの計算が簡単なやり方で、出力ベクトルの出力の値を他のニューロン層の計算用の入力ベクトルの入力としてフィードバック又は再定義することで、可能となる。
活性化関数「act」として、複数の活性化関数のうちの1つの活性化関数を提供することが可能であり、上記1つの活性化関数は、モデル計算ユニット22の活性化関数計算ブロック14によって計算されうる。活性化関数は、例えば、図4a〜図4dに対応して示されるような、正規化線形関数(Knickfunktion)、双曲線正接関数、シグモイド関数、又は一次関数であってもよい。
上記の疑似コードにより実現されるニューロンモデルを単層で形成することによって、さらに、簡単な変更によって、MLPモデルのニューロン層の他にガウス過程モデル又はRBF(Radiale Basisfunktion、放射基底関数)モデルも計算することが可能である。このために、重み付けの値は、乗算的ではなく、加算的又は減算的に入力の値に加えられる。さらに、所定の長さスケールL[k]により重み付けされた平方距離(quadratischer Abstand)が計算される。さらに、RBFモデルのために、活性化関数として指数関数が選択される。これにより、ガウス過程モデルが、以下の数式に対応して、
Figure 2019526876
疑似コードの変更によって、任意に以下のように計算される。
Figure 2019526876
ループ関数の実行時には、変数cfg_mlpによって、個別的な解析が行われることが分かる。cfg_mlp=1の場合にはニューロン層の計算が選択され、cfg_activation_function=0…3によって、上記の活性化関数の形態が選択されうる。
cfg_mlp=0の場合には、ガウス過程モデル又はRBFモデルが計算される。ここでは、活性化関数の選択は必要ではない。なぜならば、これは常に指数関数によって計算されるからである。このようにして、ガウス過程モデル、RBFモデルの計算のためにも、MLPモデルのニューロン層の計算のためにもモデル計算ユニット22を利用し、その際には、状態機械の集積された構造形態において僅かな面積しか必要としないことが可能である。
モデル計算ユニット22のメモリ12は、設定メモリ121を有し、この設定メモリ121は、所定数のニューロン層のための設定パラメータを、各設定メモリ区分Aで格納することが可能である。設定メモリ領域121は、制御装置のメインメモリの構成要素であり、この設定メモリ領域121は、マイクロコントローラ21とモデル計算ユニット22との双方によってアクセス又は利用されうる。代替的に、設定メモリ区分Aは、別体のフラッシュメモリにも、又は演算コア18にとって外部のメモリにも設けられうる。
設定メモリ区分Aは個別のメモリアドレスを有し、この個別のメモリアドレスには、図5に例示するように、モデル計算ユニット22の設定パラメータが所定の順序に対応して格納される。個々の設定メモリ区分Aを利用するためには、ニューロン層の計算のためのそこに格納された値が、DMAユニット17によって、演算コア18のそのために設けられたレジスタに複写される。複写過程は、マイクロコントローラ又は演算コア18が関与することなく行うことが可能であり、自動的にDMAユニット17によって実行される。
各設定メモリ区分Aのアドレス位置Reg1〜RegPは、設定メモリ領域121の設定メモリ区分Aが対応付けられた該当するニューロン層での計算を実行するためのパラメータを含んでいる。例えば、設定メモリ位置Reg1〜RegPは、上記の疑似コードに対応するパラメータp1〜p8を格納することが可能であり、かつ、特に、対応するアドレスポインタを介して、格納することが可能であり、データメモリ領域122に設けられたデータメモリ区分(対応する開始アドレスの指定により定義されたアドレス範囲)には、(現在計算される)該当するニューロン層に関連した、入力ベクトルの入力又は中間入力ベクトルの中間入力、重み付けマトリクスの重み付け係数、オフセットベクトルのオフセット値が格納されている。
データメモリ領域122は、制御装置のメインメモリ内、又は、モデル計算ユニット22の外部で対応付けられたメモリ内に設けられうる。さらに、設定パラメータReg1〜RegPのうちの1つが、ニューロン層での計算の結果として獲得される得られた出力ベクトルの各出力を格納するデータメモリ区分のための開始アドレスを指定することが可能である。アドレスポインタの利用には利点がある。なぜならば、モデルパラメータと、入力ベクトルと、出力ベクトルと、の次元は可変的だからである。
さらに、設定メモリ領域121には、計算開始情報RegCtrlを格納するためのアドレス位置を設けることが可能であり、この計算開始情報RegCtrlは、特定データが書き込まれた際に、現在の(即ち、各設定メモリ区分に対応付けられた)ニューロン層の計算を開始させる。
さらに、別の状態レジスタメモリ領域Rが、状態情報を読み出すための1つ以上のアドレス位置RegR01〜RegR0Qを有しうる。状態情報は、パーセプトロンモデルの各ニューロン層の計算からのフィードバックを示しうる。状態情報は、例えば、モデル計算ユニット22の演算状態(idle/busy)についての情報、計算の進捗(状態機械での疑似コードの計算の位置、例えば、入力変換、メインループ等の計算の位置)、パラメータの有効性(不正のアドレスポインタ、間違った/未対応の値(例えば、floatにおけるINFinity又はNot‐a‐Number)等についての情報を有しうる。
さらに、利用されないメモリアドレスを各設定メモリ区分Aに設けることが可能であり、従って、DMAユニット17による、ブロックごとの設定メモリ区分Aの処理が考慮される。
図6aには、設定メモリ領域121での複数の設定メモリ区分Aの配置が示されており、設定メモリ領域121では、図6aに示されるように、設定パラメータが、連続する設定メモリ区分Aに格納されている。そこでは、N個のニューロン層MLP1…MLPNのための設定パラメータを含むN個の設定メモリ区分の配置が予め設定されている。ニューロン層ごとの設定パラメータの数は変化しないため、設定メモリ区分Aは、好適に、それぞれ同じ大きさで設けられる。
設定パラメータの幾つかは、アドレスポインタとして設けられており、「*」の印が付けられている。図6bに示されるように、アドレスポインタは、例えば制御装置のメインメモリ内に設けられた、データメモリ領域122のデータメモリ区分の開始アドレスを指し、上記データメモリ領域122から、該当するニューロン層の計算のために、入力ベクトルの入力、又は、中間入力ベクトルの中間入力(例えば、MLP1_Reg1*、MLP2_Reg1*等)、重み付けマトリクスからの重み付け係数、オフセットベクトルのオフセット値が呼び出される。さらに、アドレスポインタの1つは、出力ベクトルの得られた出力、又は、(計算すべき後続のニューロン層が存在する際には)中間出力ベクトルの得られた中間出力を格納するためのデータメモリ区分を指す(例えば、MLP1_Reg2*、MLP2_Reg2*等)。連続する設定メモリ区分A内の設定パラメータの適切なパラメータ化によって、好適に以下のことが構想され、即ち、1のニューロン層の出力ベクトルを格納するためのデータメモリ区分Dの開始アドレスが、次のニューロン層の入力ベクトル又は中間入力ベクトルを格納するためのデータメモリ区分の開始アドレスに対応することが構想される。
入力及び出力のためのデータメモリ領域122のデータメモリ区分は、ニューロン層ごとに、データメモリ区分D内の所定数のアドレス位置により予め設定されており、上記所定数のアドレス位置によって、パーセプトロンモデルの対応するニューロン層のニューロンの対応する数が予め設定される。個々のニューロン層の入力ベクトル及び出力ベクトルの開始アドレスは、メモリアクセスの粒度に従って区切化される。これにより、例えば図6bに示すような1つ以上の利用されないデータメモリアドレス範囲が生じる。この利用されないデータメモリアドレス範囲は、例えば、アドレスポインタが「ページ(Page)」単位でのみ、例えば8又は16バイトまでのブロックで、アドレス指定しうる場合に発生する。
これにより、マイクロプロセッサは、パーセプトロンモデルの複数のニューロン層を連続して計算するために、DMAユニット17のみ初期設定すればよく、その際に、マイクロプロセッサによって、対応するプログラムフロー制御量が獲得されることはない。ニューロン層の計算を連続的に呼び出すことによるフロー制御は、DMAユニット17によって行われる。
図7では、DMAユニット17によるモデル計算ユニットの制御を提示するフロー図が示されている。開始に際して、マイクロプロセッサによる設定が行われ、その際には、対応するモデルパラメータ、例えば第1のニューロン層の入力の値が、データメモリ領域122の対応付けられたデータメモリ区分Dに書き込まれる。例えば、図6aで示したような複数の設定メモリ区分Aのモデルパラメータの他の部分、例えは、重み付けマトリクス及び個々のニューロン層ごとのオフセット値等の各データメモリ区分に格納されたモデルパラメータが、(オフラインで(offline)、MLPモデルの生成過程の間に)典型的に予め提供されている。必要に応じて、設定メモリ区分Aは、様々なニューロン層(MLP1〜MLPN)のために、実行時間中にも生成され又は変更されうる。重み付けマトリクスの値、及び個別ニューロン層ごとのオフセット値自体は、常にオフライン(offline)で(例えばフラッシュメモリ(Flash)に)準備されている。計算速度を上げるために、これらパラメータをフラッシュメモリから各割り当てられたデータメモリ区分Dへと複写するということも可能である。
工程S1において、DMAユニット17がマイクロコントローラによって、多重複写転送(Multiple‐Copy‐Transfer)であって、例えば設定メモリ領域のソースアドレスが増分され、複写先として演算コア18のレジスタが設定された上記多重複写転送のために設定される。これにより、DMAユニット17は、各設定パラメータ区分Aについて行われる複写過程の回数と、MLPモデル全体の複写過程の回数(=MLPニューロン層の数)と、が分かる。続いて、DMAユニット17は、例えば、設定メモリ領域121の計算開始情報RegCtrlを対応するアドレス位置/演算コア18のためのレジスタへと書き込むことで、計算を開始することを演算コア18にシグナリングする。
DMAユニット17は、演算ユニットのレジスタへの第1の設定パラメータ区分Aの第1の複写過程を開始し、続いて、工程S2において、第1のニューロン層に対応付けられた設定パラメータ(MLP1_Reg1〜MLP1_RegP、RegCtrl)に基づいて、第1のニューロン層の計算を開始する。設定パラメータのアドレスポインタが、以下のようなデータメモリ区分Dを指定し、即ち、第1のニューロン層の出力ベクトルの出力を計算するために、入力ベクトルの入力、重み付けマトリクスからの重み付け係数、及びオフセットベクトルのオフセット値をそこから取り出すべき上記データメモリ区分Dを指定する。
第1のニューロン層の出力が計算された後に、この出力は、対応する出力メモリブロックに存在し、この対応する出力メモリブロックは、DMAユニット17によって、第1のニューロン層のための設定パラメータに基づいて、データメモリ領域122の対応するデータメモリ区分に格納される。
工程S3では、演算コア18が、第1のニューロン素の計算が終了したことをDMAユニット17にシグナリングする。このことは、演算コア18が、対応する設定パラメータによってDMAユニット17への割り込みを促すことにより、達成される。更なる別のニューロン層の計算のために、第1のニューロン層の計算からの出力が、以下のことにより、次のニューロン層の計算のための中間入力として見做され、即ち、DMAユニット17が、上記更なる別のニューロン層に対応付けられた設定メモリ領域121の設定メモリ区分Aから演算ユニットのレジスタへと設定パラメータを供給し、場合によっては、重み付けマトリクスの重み付け係数及びオフセットベクトルのオフセット値を、これらが前もってそこに格納されていない限りにおいて、アドレスポインタにより設定パラメータで示されるデータメモリ区分Dに格納することにより、上記中間入力として見做される。続いて、工程S4において計算が開始される。
工程S3及びS4の処理は、各他のニューロン層のために、例えば最初に予め設定した数の複写すべき設定メモリ区分に達するまで、繰り返される。最後のニューロン層の計算のための対応する設定パラメータが、演算コア18が割り込みを直接的にマイクロプロセッサに促すことで演算コア18の割り込み読出しを定める。この場合、演算コアは、対応する割り込み信号をマイクロプロセッサへとシグナリングし、マイクロプロセッサは、これに応じて、モデル値を呼び出し又は他のやり方で受信する。代替的に、モデル計算ユニット22が、割り込み信号をDMAユニットに伝えてもよく、DMAユニット17が、割り込み信号をマイクロコントローラへとさらに伝える(連鎖割り込み(chained interrupt))。
設定メモリ領域121は、計算のために必要なデータのためのデータメモリ区分Dを対応して参照させる設定パラメータも有しうる。さらに、パーセプトロンモデルの計算の終了後には、第2のパーセプトロンモデルの新たな第1のニューロン層の計算が行われうる。このためには、第2のパーセプトロンモデルの第1のニューロン層の入力の部分ではなく、第1のパーセプトロンモデルの最後のニューロン層の出力としてのモデル値が格納されているアドレス位置だけが必要である。

Claims (9)

  1. 多層パーセプトロンモデルを計算するためのモデル計算ユニット(22)であって、
    前記モデル計算ユニット(22)は、ハードウェアで形成されハードワイヤードされており、
    ‐入力ベクトル(ut)の1つ以上の入力に従って、複数のニューロン(20)を有する前記多層パーセプトロンモデルのニューロン層の1つ以上の出力(y[j])を計算するよう構成された演算コア(18)と、
    ‐ニューロン層ごとに、各設定メモリ区分(A)に設定パラメータを格納するための設定メモリ領域(121)と、各データメモリ区分(D)に前記入力ベクトルの前記入力及び前記1つ以上の出力(y[j])を格納するためのデータメモリ領域(122)と、を有するメモリ(12)と、
    ‐前記演算コア(18)に以下のこと、即ち、各設定メモリ区分(A)の前記設定パラメータと、前記設定パラメータにより定義された、前記入力ベクトル(ut)の前記入力と、に基づいてニューロン層をそれぞれ計算し、及び、得られた各前記出力(y[j])を、対応する前記設定パラメータにより定義された、前記データメモリ領域(122)のデータメモリ区分(D)に格納すること、を連続的に命令するよう構成されたDMAユニット(17)と、
    を含む、モデル計算ユニット(22)。
  2. 連続的に考慮される設定メモリ区分(A)の前記設定パラメータは、前記得られた出力のためのデータメモリ区分(D)であって、その次のニューロン層の計算用の前記入力のための前記データメモリ部分(D)に相当する前記データメモリ区分(D)を指定する、請求項1に記載のモデル計算ユニット(22)。
  3. 前記DMAユニット(17)は、前記ニューロン層の前記計算の終了後に、前記ニューロン層のうちの次のニューロン層のための前記設定パラメータを、前記演算コア(18)に提供するよう構成され、前記計算は、1つ以上の設定パラメータに従って終了される、請求項1又は2に記載のモデル計算ユニット(22)。
  4. 前記演算コア(18)は、前記ニューロン層の現在の前記計算の終了を、前記DMAユニット(17)又は外部にシグナリングするよう構成され、前記DMAユニット(17)は、次の前記ニューロン層の前記計算を、別の設定メモリ区分(A)に格納された設定パラメータに基づいて開始する、請求項1〜3のいずれか1項に記載のモデル計算ユニット(22)。
  5. 前記演算コア(18)は、複数のニューロン(20)を有する多層パーセプトロンモデルのニューロン層ごとに、入力ベクトル(ut)の1つ以上の入力と、重み付け係数(νj、k)を含む重み付けマトリクスと、ニューロン(20)ごとに予め設定されたオフセット値と、に従って、ニューロン(20)ごとに出力(y[j])を計算するよう構成され、各ニューロン(20)について、前記ニューロン(20)及び前記入力によって決定される重み付け係数(νj、k)により重み付けされた、前記入力の値の和に、前記ニューロン(20)に予め設定された前記オフセット値が加えられ、結果が活性化関数(act)によって変換され、前記ニューロン(20)のための前記出力(y[j])が獲得される、請求項1〜4のいずれか1項に記載のモデル計算ユニット(22)。
  6. 前記演算コア(18)は、集積モジュールの平面領域に形成される、請求項1〜5のいずれか1項に記載のモデル計算ユニット(22)。
  7. マイクロプロセッサ(21)と、請求項1〜6のいずれか1項に記載の1つ以上のモデル計算ユニット(22)と、を含む制御装置(2)。
  8. 前記制御装置(2)は、集積回路として形成される、請求項7に記載の制御装置(2)。
  9. 自動車内のエンジンシステム(1)を制御するための制御装置(2)としての、請求項7又は8に記載の制御装置(2)の利用。
JP2019533673A 2016-09-07 2017-09-04 モデル計算ユニット、及び、多層パーセプトロンモデルを計算するための制御装置 Active JP6737960B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102016216947.5A DE102016216947A1 (de) 2016-09-07 2016-09-07 Modellberechnungseinheit und Steuergerät zur Berechnung eines mehrschichtigen Perzeptronenmodells
DE102016216947.5 2016-09-07
PCT/EP2017/072046 WO2018046418A1 (de) 2016-09-07 2017-09-04 Modellberechnungseinheit und steuergerät zur berechnung eines mehrschichtigen perzeptronenmodells

Publications (3)

Publication Number Publication Date
JP2019526876A true JP2019526876A (ja) 2019-09-19
JP2019526876A5 JP2019526876A5 (ja) 2019-10-31
JP6737960B2 JP6737960B2 (ja) 2020-08-12

Family

ID=59923387

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019533673A Active JP6737960B2 (ja) 2016-09-07 2017-09-04 モデル計算ユニット、及び、多層パーセプトロンモデルを計算するための制御装置

Country Status (6)

Country Link
US (1) US11599787B2 (ja)
JP (1) JP6737960B2 (ja)
KR (1) KR102508098B1 (ja)
CN (1) CN109690579B (ja)
DE (1) DE102016216947A1 (ja)
WO (1) WO2018046418A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03235723A (ja) * 1990-02-09 1991-10-21 Hitachi Ltd 自動車の制御装置
JPH06175999A (ja) * 1992-12-08 1994-06-24 Mitsubishi Electric Corp ニューロコンピュータ
US5583964A (en) * 1994-05-02 1996-12-10 Motorola, Inc. Computer utilizing neural network and method of using same
JP2001034735A (ja) * 2000-01-01 2001-02-09 Hitachi Ltd 情報処理装置
JP2015015024A (ja) * 2013-07-02 2015-01-22 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 制御装置を駆動する方法及びモデル計算ユニットを有する制御装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590356A (en) * 1994-08-23 1996-12-31 Massachusetts Institute Of Technology Mesh parallel computer architecture apparatus and associated methods
US8051019B2 (en) * 2006-07-13 2011-11-01 Sap Ag Neural network resource sizing apparatus for database applications
JP5184824B2 (ja) * 2007-06-15 2013-04-17 キヤノン株式会社 演算処理装置及び方法
DE102010028266A1 (de) * 2010-04-27 2011-10-27 Robert Bosch Gmbh Steuergerät und Verfahren zur Berechnung einer Ausgangsgröße für eine Steuerung
KR20130090147A (ko) * 2012-02-03 2013-08-13 안병익 신경망 컴퓨팅 장치 및 시스템과 그 방법
US9153230B2 (en) * 2012-10-23 2015-10-06 Google Inc. Mobile speech recognition hardware accelerator
DE102013213420A1 (de) 2013-04-10 2014-10-16 Robert Bosch Gmbh Modellberechnungseinheit, Steuergerät und Verfahrenzum Berechnen eines datenbasierten Funktionsmodells
CN104401036A (zh) * 2014-10-22 2015-03-11 宁波步络科工业自动化科技有限公司 基于bp神经网络的数控冲床的刹车曲线自学习方法
EP3035204B1 (en) * 2014-12-19 2018-08-15 Intel Corporation Storage device and method for performing convolution operations
EP3035249B1 (en) * 2014-12-19 2019-11-27 Intel Corporation Method and apparatus for distributed and cooperative computation in artificial neural networks
CN104915322B (zh) * 2015-06-09 2018-05-01 中国人民解放军国防科学技术大学 一种卷积神经网络硬件加速方法
CN105070156B (zh) * 2015-06-10 2018-04-17 浙江求是科教设备有限公司 电力***自动化实验装置
CN105892989B (zh) * 2016-03-28 2017-04-12 中国科学院计算技术研究所 一种神经网络加速器及其运算方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03235723A (ja) * 1990-02-09 1991-10-21 Hitachi Ltd 自動車の制御装置
JPH06175999A (ja) * 1992-12-08 1994-06-24 Mitsubishi Electric Corp ニューロコンピュータ
US5583964A (en) * 1994-05-02 1996-12-10 Motorola, Inc. Computer utilizing neural network and method of using same
JP2001034735A (ja) * 2000-01-01 2001-02-09 Hitachi Ltd 情報処理装置
JP2015015024A (ja) * 2013-07-02 2015-01-22 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 制御装置を駆動する方法及びモデル計算ユニットを有する制御装置

Also Published As

Publication number Publication date
US11599787B2 (en) 2023-03-07
CN109690579A (zh) 2019-04-26
KR102508098B1 (ko) 2023-03-10
JP6737960B2 (ja) 2020-08-12
US20190197405A1 (en) 2019-06-27
KR20190044657A (ko) 2019-04-30
DE102016216947A1 (de) 2018-03-08
WO2018046418A1 (de) 2018-03-15
CN109690579B (zh) 2023-11-03

Similar Documents

Publication Publication Date Title
US11216721B2 (en) Method for calculating a neuron layer of a multi-layer perceptron model with simplified activation function
WO2020042739A1 (zh) 数据预处理方法、装置、计算机设备和存储介质
CN102859158B (zh) 用于计算控制用的输出参量的控制设备和方法
US11314507B2 (en) Model conversion method, device, computer equipment, and storage medium
US8731737B2 (en) Microcontroller having a computing unit and a logic circuit, and method for carrying out computations by a microcontroller for a regulation or a control in a vehicle
JP2020526830A (ja) 演算アクセラレータ
JP6828170B2 (ja) フィードフォーワード及びフィードバックが設けられた多層パーセプトロンモデルを計算のためのモデル計算ユニット及び制御装置
JP2019145111A (ja) データに基づく関数モデルを計算するためのモデル計算ユニット、制御装置、及び方法
KR102166650B1 (ko) 제어 장치의 작동 방법 및 모델 연산 유닛을 포함하는 제어 장치
WO2022083527A1 (zh) 确定逻辑核布局的方法、模型训练方法、电子设备、介质
CN111767995B (zh) 运算方法、装置及相关产品
CN110865950B (zh) 数据预处理方法、装置、计算机设备和存储介质
CN109583579B (zh) 计算装置及相关产品
JP6737960B2 (ja) モデル計算ユニット、及び、多層パーセプトロンモデルを計算するための制御装置
CN112948291B (zh) 数据传输方法、电子设备和可读存储介质
US11645499B2 (en) Model calculating unit and control unit for calculating a neural layer of a multilayer perceptron model
CN114090466A (zh) 一种指令处理装置、方法、计算机设备及存储介质
JP6742525B2 (ja) Rbfモデルを計算するためのモデル計算ユニット及び制御装置
CN114692824A (zh) 一种神经网络模型的量化训练方法、装置和设备
US20220327180A1 (en) Generic image resizer using matrix multiplier accelerator
CN110865792A (zh) 数据预处理方法、装置、计算机设备和存储介质
CN110412890A (zh) 一种伺服驱动器的仿真方法、装置、设备和存储介质
JPH02232727A (ja) 情報処理装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190306

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190306

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20190318

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190319

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20200220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200327

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200615

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200716

R150 Certificate of patent or registration of utility model

Ref document number: 6737960

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250