JP2023057629A - グリッドコンピューティングシステム - Google Patents

グリッドコンピューティングシステム Download PDF

Info

Publication number
JP2023057629A
JP2023057629A JP2021167204A JP2021167204A JP2023057629A JP 2023057629 A JP2023057629 A JP 2023057629A JP 2021167204 A JP2021167204 A JP 2021167204A JP 2021167204 A JP2021167204 A JP 2021167204A JP 2023057629 A JP2023057629 A JP 2023057629A
Authority
JP
Japan
Prior art keywords
vehicle
information
job
configuration information
arithmetic
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.)
Pending
Application number
JP2021167204A
Other languages
English (en)
Inventor
陽平 能勢
Yohei Nose
正 中村
Tadashi Nakamura
英臣 藤本
Hideomi Fujimoto
賢一 的野
Kenichi Matono
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.)
Mazda Motor Corp
Original Assignee
Mazda Motor Corp
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 Mazda Motor Corp filed Critical Mazda Motor Corp
Priority to JP2021167204A priority Critical patent/JP2023057629A/ja
Publication of JP2023057629A publication Critical patent/JP2023057629A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

Figure 2023057629000001
【課題】グリッドコンピューティングにおいて、車両の主演算装置のハードウェア構成を依頼されたアプリケーションジョブに応じた最適な構成にする。
【解決手段】グリッドコンピューティングシステムは、グリッドコンピューティングを管理するマスタ装置と、車両の非稼働中に前記グリッドコンピューティングへの参加が可能に構成された車載演算装置とを含む。車載演算装置において、車両10の稼働時には、再構成回路125として走行コンフィグ情報に基づいた回路が構成され、車両の走行制御処理が実行される。また、車両10の非稼働時には、再構成回路125として演算コンフィグ情報に基づいた回路が構成され、アプリケーションジョブが実行される。
【選択図】図6

Description

ここに開示された技術は、グリッドコンピューティングシステムに関する技術分野に属する。
特許文献1には、車両の走行中には車両の走行を補助する車両走行用情報処理が可能であり、車両の非走行中には車両走行用情報処理以外の非車両走行用情報処理が可能であるように構成された車載計算装置が示されている。特許文献1の車載計算装置では、検知手段が車両が走行中であると検知したときに再構成可能回路を車両走行用情報処理に適切な回路に切り替え、かつ、検知手段が車両が走行中ではないと検知したときに再構成可能回路を非車両走行用情報処理に適切な回路に切り替えるように構成されている。
特許第6421403号公報
ところで、グリッドコンピューティングにおいて演算対象となるアプリケーションジョブは、多種多様である。そして、アプリケーションジョブに応じて、最適なハードウェアの構成が異なる場合がある。そうすると、特許文献1のように、車両が走行中ではない場合に再構成可能回路を車両走行用情報処理回路から非車両走行用情報処理回路に切り替えるというだけでは十分ではなく、改善の余地があった。
ここに開示された技術は斯かる点に鑑みてなされたものであり、グリッドコンピューティングを実行する際に、車両の主演算装置のハードウェア構成を、依頼されたアプリケーションジョブに応じた最適な構成にすることにある。
前記課題を解決するために、本開示の第1態様では、グリッドコンピューティングを管理するマスタ装置と、車両の非稼働中に前記グリッドコンピューティングへの参加が可能に構成された車載演算装置とを含むグリッドコンピューティングシステムを対象として、 前記車載演算装置は、前記マスタ装置と通信する通信部と、前記車両の稼働状態を検出する走行検出器と、プログラマブルにハードウェアの再構成ができるように構成された再構成回路と、前記走行検出器で検出された車両の稼働状態に基づいて前記再構成回路のハードウェアの再構成を制御をする制御回路と、車両走行制御用のハードウェア構成のコンフィグ情報である走行コンフィグ情報が記憶された記憶部とを備え、前記マスタ装置は、前記車両に、実行対象となるアプリケーションジョブのジョブデータ及び当該アプリケーションジョブ用のハードウェア構成のコンフィグ情報である演算コンフィグ情報を送信し、 前記車載演算装置は、前記車両の稼働時には、前記走行コンフィグ情報に基づいて前記再構成回路を構成して当該再構成回路を用いて車両の走行制御処理を実行し、前記車両の非稼働時には、前記マスタ装置から受信した前記演算コンフィグ情報に基づいて前記再構成回路を構成して当該再構成回路を用いて前記アプリケーションジョブを実行する、という構成にした。
上記態様によると、実行対象となるアプリケーションジョブを実行するのに最適な構成の回路を用いて演算を実施することができる。これにより、車両では、依頼されたジョブに対する演算効率を高めることができる。さらに、車載演算装置は、車両走行時には、自車内の記憶部に格納された走行コンフィグ情報に基づくハードウェア構成を使用するので、演算リソースが冗長となることを回避することができる。
以上説明したように、ここに開示された技術によると、車載演算装置は、依頼されたアプリケーションジョブに応じたハードウェアコンフィグ情報を管理サーバから受信してハードウェアの再構成をするようにしたので、依頼されたアプリケーションジョブに対する演算効率を高めることができる。さらに、車載演算装置は、車両走行時には、自車内の記憶部に格納された走行制御用に適したハードウェア構成を使用するので、演算リソースが冗長となることを回避することができる。
グリッドコンピューティングシステムの構成を例示する概略図 グリッドコンピューティングについて説明するための概念図 車両の構成を例示するブロック図 クライアントサーバの構成を例示するブロック図 管理サーバの構成を例示するブロック図 実施形態のシステムの接続構成の一例を示すブロック図 走行制御時の再構成回路の構成例及び演算フローの一例を示す図 グリッドコンピューティングシステムの動作例を示すフローチャート 車両の主演算装置の動作例を示すフローチャート ジョブ演算時の再構成回路の構成例及び演算フローの一例を示す図 ジョブ演算時の再構成回路の構成例及び演算フローの他の例を示す図 ジョブ演算時の再構成回路の構成例及び演算フローの他の例を示す図 再構成回路の構成例及び演算フローの一例を示す図
実施形態について、図面を参照しながら詳細に説明する。図中同一または相当部分には同一の符号を付すものとし、繰り返しの説明を省略する場合がある。また、以下の実施形態では、本開示の内容に関連性の高い構成を中心に説明する。なお、以下の実施形態は、例示的なものであり、記載の有無や例示した数値等によって本開示の内容を限定する意図はまったくない。
<第1実施形態>
(グリッドコンピューティングシステム)
図1は、実施形態のグリッドコンピューティングシステム1(以下、単に「システム1」ともいう)の構成を例示する。
このシステム1は、複数の車両10と、複数のクライアント端末30と、管理サーバ50とを備える。これらの構成要素は、通信網6を経由して互いに通信可能である。複数の車両10の各々には、主演算装置105が搭載される。管理サーバ50は、マスタ装置の一例である。車両は、移動体の一例である。なお、マスタ装置は、クラウドで実現されてもよい。
〔グリッドコンピューティング〕
図2に示すように、実施形態のシステム1では、複数の主演算装置105によりグリッドコンピューティングG(以下、単に「グリッドG」ともいう)が構成される。システム1では、複数の主演算装置105のうち利用可能な主演算装置105にアプリケーションジョブ(以下、単に「ジョブ」ともいう)を演算させるグリッドコンピューティングが実行される。
なお、車両10が走行している場合、車両10の走行制御のために主演算装置105の演算能力が必要となり、主演算装置105が稼働状態となる。一方、例えば、車両10が停車して車両10の電源がオフ状態になると、車両の走行制御に対する主演算装置105の演算能力が実質的に不要となる。そこで、車両10は非稼働状態となり、この車両10の非稼働中(例えば、停車中)に上記のグリッドコンピューティング処理が実行される。車両の稼働/非稼働の判別方法は、特に限定されないが、例えば、イグニッション-オン時に稼働状態と判断し、イグニッション-オフ時に非稼働状態と判断する方法が採用できる。
〔車両〕
車両10には、電池(図示省略)が搭載される。電池の電力は、主演算装置105などの車載機器に供給される。このような車両10の例としては、電気自動車、プラグインハイブリッド自動車などが挙げられる。
図3に示すように、車両10は、通信部101と、記憶部103と、主演算装置(MPU:Micro-Processing Unit)105とを備える。
-通信部-
通信部101は、管理サーバ50との間で情報やデータを送受信する。具体的に、通信部101は、管理サーバ50からアプリケーションジョブのジョブデータD1及びそのジョブデータを実行する際に用いるハードウェアコンフィグ情報(以下、単に「コンフィグ情報」という)である演算コンフィグ情報を受信する。通信部101により受信された情報やデータは、後述する主演算装置105の制御回路123に送られる。
-記憶部-
記憶部103は、情報やデータを記憶する。記憶部103の具体的な構成は、特に限定されない。例えば、チップに内蔵されたメモリで実現されてもよいし、HDD(Hard disk drive)、SSD(Solid State Drive)で実現されてもよいし、DVDやBDのような光ディスクで実現されてもよい。
この例では、記憶部103は、車両情報D10を記憶する。車両情報D10には、車両基本情報D11と、車両状態情報D13と、稼働情報D15が含まれる。
〈車両基本情報〉
車両基本情報D11は、車両識別情報とリソース情報を含む。
車両識別情報は、VINのように車両を識別するための情報や、車両10の所有者を識別するユーザ識別情報を含む。
リソース情報は、後述する演算資源(CPUやGPUなど)に関する情報である。リソース情報は、例えば、演算資源ごとに付与された演算資源ID、各演算資源の性能を示す性能情報を含む。演算資源の性能には、演算資源の演算能力(具体的には最大演算能力)を示す演算能力、演算資源におけるCPUとGPUの比率などが含まれる。演算資源の演算能力は、例えば、それぞれの演算資源が単位時間当たりに演算することができるデータ量である。
〈車両状態情報〉
車両状態情報D13は、車両10の状態を示す情報であり、例えば、車両位置情報、走行履歴情報、車両通信情報、車両電源情報等を含む。
車両位置情報は、車両10の位置(緯度および経度)を示す。例えば、車両位置情報は、GPS(Global Positioning System)により取得可能である。
走行履歴情報は、例えば、後述する走行検出器121で検出された車両走行情報と時刻とを関連付けて示す情報であったり、上記の車両位置情報と時刻とを関連付けて示す情報である。なお、走行履歴情報に加えて、車両10の未来の走行予定を示す走行予定情報が含まれてもよい。
車両通信情報は、車両10と通信網6との通信状態を示す情報、車両10と管理サーバ50との通信帯域の情報を含む。車両通信情報は、例えば、所定時間毎に更新される。
車両電源情報は、車両10の電源の状態を示す情報、車両電池残量情報、車両充電情報などを含む。例えば、車両電源情報は、イグニッション電源のオン/オフ、アクセサリ電源のオン/オフなどを示す。車両電池残量情報は、車両10に搭載された電池(図示省略)の残量を示す。車両充電情報は、充電設備(図示省略)において車両10が充電中であるか否かを示す。
〈稼働情報〉
稼働情報D15は、例えば、主演算装置105の稼働履歴を示す稼働履歴情報と、主演算装置105の稼働予定を示す稼働予定情報を含む。
稼働履歴情報は、例えば、主演算装置105の演算資源の利用率及び/またはジョブの処理量と、時刻とを関連付けて示す。稼働履歴情報は、通常稼働履歴と、グリッド稼働履歴とを含む。通常稼働履歴は、例えば、車両の走行やカーナビ、音楽再生等のサービスの提供等のように、ユーザーの利用のために主演算装置105を稼働させた履歴を示す。グリッド稼働履歴は、グリッドコンピューティング処理を実行するために主演算装置105を稼働させた履歴を示す。
稼働予定情報は、例えば、主演算装置105の未来の利用状況を示す利用予定情報などを含む。
-主演算装置-
主演算装置105は、車両10の各部を制御する。この例では、主演算装置105は、センサ(図示省略)により得られた各種の情報に応じて各アクチュエータ(図示省略)を制御する。主演算装置105は、車載演算装置の一例である。
主演算装置105は、プロセッサ、メモリなどを有する。プロセッサの例としては、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)などが挙げられる。メモリは、プロセッサを動作させるためのプログラム、プロセッサの処理結果を示す情報やデータなどを記憶する。
なお、本開示では、CPUやGPUのように、グリッドコンピューティングの演算・処理に利用可能なリソースを「演算資源」と称する。演算資源は、車両10に搭載されたCPU及びGPUの一部または全部を含む。また、例えば、演算資源としての利用を許可される時間帯と、演算資源としての利用を制限する時間帯とが分けられていてもよい。すなわち、単一のCPUが、ある時間帯では演算資源としてカウントされ、他の時間帯では演算資源としてカウントされないとしてもよい。また、CPUが単一または複数のコアで実現されている場合において、その複数のコアの一部が演算資源としてカウントされ、それ以外のコアは演算資源としてカウントされないとしてもよい。GPUについても同様である。また、演算資源として、後述する再構成回路の回路リソースが含まれていてもよい。
図6は、管理サーバ50及び車両10の主演算装置105の構成のうち、本実施形態の説明に用いる構成を抽出して図示したものである。すなわち、管理サーバ50及び車両10の主演算装置105のは、図6以外の構成を含み得る。
図6に示すように、この例では、主演算装置105は、走行検出器121と、制御回路123と、再構成回路125と、ROM127と、セレクタ128とを備える。
〈走行検出器〉
走行検出器121は、車両の走行状態を検出する。走行検出器121で検出された車両10の走行状態を示す車両走行情報は、制御回路123に出力される。車両走行情報は、車両10が走行している状態(走行状態)なのか、車両10が走行していない状態(非走行状態)なのかを示す。
なお、車両10の走行状態の検出方法は、特に限定されない。例えば、車速センサ(図示省略)やアクセル開度センサ(図示省略)のように車両10に取り付けられたセンサを用いて車両が走行状態か非走行状態かを検出してもよい。また、例えば、車内カメラ(図示省略)等を用いて、運転席にドライバが搭乗しているか否かで判断するようにしてもよい。また、例えば、イグニッションスイッチのオンオフで車両の走行状態/非走行状態を検出してもよいし、GPSなどの位置情報を用いて走行状態/非走行状態を検出してもよい。また、上記の方法を組み合わせてもよい。
また、車両10の走行状態として、実際に車両10が走行している状態に加えて、車両10が走行の準備に入った状態(車両10がその後走行する蓋然性が高い状態)を含めるようにしてもよい。例えば、イグニッションスイッチがオンされ、ドライバがハンドルを触った時点で、車両10が走行する蓋然性が高い状態にあると検出されるようにしてもよい。そして、その車両10が走行する蓋然性が高い状態を示す情報を車両走行情報に含めるようにしてもよい。
〈制御回路〉
制御回路123は、通信部101及び通信部501を介して、管理サーバ50の制御部505と情報やデータのやり取りを行う。走行検出器121で検出された車両の走行状態に基づいて再構成回路125のハードウェア構成の再構成を制御をする。
制御回路123は、ジョブデータD1を一時的に格納したり、処理結果を一時的に保存するための内部メモリとしての記憶部124を備える。
具体的に、この例では、制御回路123は、(1)走行検出器121から受信した車両10走行情報及びリソース情報を、後述する制御部505のコンフィグデータ選択器521に送信する、(2)走行検出器121で検出された車両10の走行状態に基づいてセレクタ128を切り替える、(3)ジョブデータD1を含むジョブの演算依頼内容を示す情報を受信し、その情報に基づいてジョブデータD1を用いた演算を再構成回路125に実行させる、(4)再構成回路125の演算結果を記憶部124に格納する、(5)記憶部124の演算結果を管理サーバ50に送信する、といった処理や制御を実行する。なお、制御回路123の動作フローについては、後ほど説明する。
〈再構成回路〉
再構成回路125は、プログラマブルにハードウェアの再構成ができるように構成された回路である。具体的に、再構成回路125は、粒度の細かい多種多様の演算素子と、1または複数のメモリを内蔵し、それらの内部接続を切り替えることができるプログラマブルなハードウェアデバイスである。そして、再構成回路125としては、例えば、FPGA(Field Programmable Gate Array)やDRP(Dynamically Reconfigurable Processor)が例示される。本開示において、「演算素子」とは、積和演算の組み合わせ回路を指す。
前述のとおり、再構成回路125は、制御回路123の制御を受けて、車両10の走行制御時と、グリッドGのジョブを実行するジョブ演算時(以下、単に「ジョブ演算時」という)とでそれぞれに適したハードウェア構成が適用される。さらに、本開示では、管理サーバ50から車両10にジョブデータD1を送信する際に、あわせてそのジョブの演算に適した演算コンフィグ情報D3を送信する。そして、ジョブの演算をする際には、その演算コンフィグ情報D3に基づいて再構成回路125のハードウェアが再構成されるようになっている。
例えば、車両10の走行制御時には、演算負荷を抑える観点から、演算素子の低ビット化が期待される。演算素子を低ビット化することで、車両10の走行制御に求められる精度の演算を高いスループットで実現することができるようになる。一方で、例えば、ジョブ演算時には、演算精度を高める観点から、演算素子が多ビットを扱えるようにするといったことができる。
ここで、前述のとおり、ジョブ演算時において多種多様なジョブの演算に対応する場合には、それぞれに最適なハードウェアの構成が大きく異なる場合がある(図9~図12参照)。そこで、前述のとおり、管理サーバ50から都度受信する演算コンフィグ情報D3に基づいて再構成回路125のハードウェアが再構成される。具体的な再構成回路125の構成事例については、後ほど説明する。
〈ROM〉
ROM127には、車両走行制御用のハードウェア構成のコンフィグ情報である走行コンフィグ情報が記憶されている。走行コンフィグ情報は、車両10にあらかじめ保存されている情報であり、例えば、車両10の製造過程においてROM127に記憶される。走行コンフィグ情報は、複数の演算素子及び複数の内部メモリの各々の間の接続方法を特定するための接続情報を含む。また、走行コンフィグ情報の接続情報は、複数の演算素子を用いて、例えば積和演算等を行うビット演算器を構成する情報を含む。走行コンフィグ情報は、前述の演算コンフィグ情報に基づくハードウェア構成と比較して、車両走行制御用に適したハードウェア構成のコンフィグ情報である。
ここで、走行制御用に適したハードウェア構成とは、例えば、応答速度を優先した構成である。より具体的には、同じハードウェアリソースを用いて、低ビットの演算素子に分割し、演算素子数を可能な限り増やす構成とすることが例示される。これにより、処理時間の短縮化を図ることができる。ROM127は、例えば、車両10のメンテナンス時などに記憶された走行コンフィグ情報の書き換えができるように構成されていてもよい。
〈セレクタ〉
セレクタ128は、管理サーバ50の制御部505から受信された演算コンフィグ情報D3と、ROM127に記憶されている走行コンフィグ情報とが入力される。そして、制御回路123から出力されたコンフィグ切替信号に基づいて、走行コンフィグ情報または演算コンフィグ情報D3のいずれかを選択して、再構成回路125に出力する。換言すると、コンフィグ切替信号は、走行コンフィグ情報と演算コンフィグ情報D3のどちらを選択するかの切り替えを設定する信号である。
〔クライアント端末〕
クライアント端末30は、クライアントにより所有される。クライアントは、ジョブデータの演算を依頼する。このようなクライアントの例としては、企業、研究機関、教育機関などが挙げられる。
図4に示すように、クライアント端末30は、通信部301と、記憶部303と、制御部302とを備える。
-通信部-
通信部301は、管理サーバ50と双方向通信が可能に接続され、相互間での情報やデータを送受信する。通信部301により受信された情報やデータは、制御部302に送られる。
-制御部-
制御部302は、クライアント端末30の各部を制御する。制御部302は、プロセッサ、メモリなどを有する。メモリは、プロセッサを動作させるためのプログラム、プロセッサの処理結果を示す情報やデータなどを記憶する。
制御部302は、ジョブを依頼する際には、記憶部303から依頼するジョブのジョブ情報D32及びそのジョブの演算に必要なジョブデータD1を取り出し、通信部301を介して管理サーバ50に送信する。このとき、必要に応じてジョブ情報D32及びジョブデータD1に加えて、クライアント情報D31を送信する。
-記憶部-
記憶部303は、情報やデータを記憶する。この例では、記憶部303は、クライアント情報D31と、ジョブデータD1とを記憶する。
〈クライアント情報〉
クライアント情報D31は、クライアントに関する情報である。クライアント情報D31は、クライアントに設定されたクライアントID、クライアントにより所有されるクライアント端末30に設定されたクライアント端末ID、担当者名、住所、電話番号などを含む。
〈ジョブデータ〉
ジョブデータD1は、ジョブに対応するデータであり、ジョブの実施のために処理されるデータである。
なお、ジョブデータD1は、演算タイプにより分類可能である。演算タイプの例としては、CPU系の演算タイプ、GPU系の演算タイプなどが挙げられる。CPU系の演算タイプのジョブデータD1では、シミュレーション演算など、条件分岐の多い複雑な演算が要求される傾向にある。GPU系の演算タイプのジョブデータD1では、画像処理や機械学習など、膨大な量の単純演算が要求される傾向にある。
また、ジョブデータD1は、処理条件により分類可能である。処理条件の例としては、常時通信が要求される処理条件、常時通信が要求されない処理条件などが挙げられる。常時通信が要求される処理条件のジョブデータD1では、グリッドコンピューティング処理において主演算装置105が常に通信可能であることが要求される。常時通信が要求されない処理条件のジョブデータD1では、グリッドコンピューティング処理において主演算装置105が常に通信可能であることが要求されない。
〈ジョブ情報〉
ジョブデータD1に付随してジョブに関するジョブ情報D32が記憶される。ジョブ情報D32は、例えば、ジョブの名称情報、ジョブの内容情報、ジョブデータの演算タイプ、処理条件、必要演算能力、ジョブの納期情報などを含む。
〔管理サーバ〕
管理サーバ50は、グリッドコンピューティングの運営を管理する。言い換えると、システム1は、管理サーバ50を備える。管理サーバ50は、システム1を運営する事業者により所有される。
図5に示すように、管理サーバ50は、通信部501と、記憶部503と、制御部505とを備える。
-通信部-
通信部501は、車両10やクライアント端末30と双方向通信が可能に接続され、相互間での情報やデータを送受信する。通信部501により受信された情報やデータは、制御部505に送られる。
-記憶部-
記憶部503は、情報やデータを記憶する。記憶部503の具体的な構成は、特に限定されない。例えば、チップに内蔵されたメモリで実現されてもよいし、HDD(Hard disk drive)、SSD(Solid State Drive)で実現されてもよいし、DVDやBDのような光ディスクで実現されてもよい。
この例では、記憶部503には、車両情報テーブルD51と、ジョブテーブルD53と、マッチングテーブルD55と、ジョブデータD1と、演算結果データD2、演算コンフィグ情報D3などの各種テーブル及び各種データが格納される。
〈車両情報テーブル〉
車両情報テーブルD51は、車両情報を管理するためのテーブルである。車両情報テーブルD51には、各車両の車両情報D10がリスト化されて格納されている。
〈ジョブテーブル〉
ジョブテーブルD53は、クライアントから依頼されたジョブを管理するためのテーブルである。ジョブテーブルD53には、ジョブ毎に、そのジョブに設定された受付番号、そのジョブを依頼したクライアントに設定されたクライアントID、そのジョブの名称および内容などのジョブ情報D32が登録される。また、ジョブテーブルD53には、ジョブ毎に、そのジョブに対応するジョブデータの演算タイプおよび処理条件、そのジョブデータの演算に必要となる演算能力である必要演算能力、そのジョブに設定された納期などが登録される。ジョブテーブルD53では、それぞれのジョブデータD1がどのクライアントから依頼されたジョブなのかがわかるように紐づけされている。
〈マッチングテーブル〉
マッチングテーブルD55は、マッチング工程でのマッチングの結果を管理するためのテーブルである。マッチングテーブルD55には、ジョブ毎に、そのジョブに設定された受付番号、そのジョブに対応するジョブデータD1に設定されたジョブデータID、マッチング処理によりそのジョブデータD1に対して割り当てられた車両の車両識別情報などが登録される。
〈ジョブデータ〉
記憶部503に記憶されるジョブデータD1は、後述するジョブ受付処理でクライアント端末30から受け付けられたジョブのデータである。
〈演算結果データ〉
記憶部503に記憶される演算結果データD2は、後述するグリッドコンピューティング処理により各対象車両10で実行されたジョブの演算結果のデータである。
〈演算コンフィグ情報〉
記憶部503に記憶される演算コンフィグ情報は、ジョブタイプ(推論モデル)ごとに用意され、それぞれのジョブタイプに適用される再構成回路125のハードウェア構成を示す。ジョブタイプとしては、一般的に演算精度が優先される学習モデル型、演算処理時間の短縮化を狙ったシリアル接続された演算処理フローモデル型や並列接続された演算処理フローモデル型などが例示される。
ユーザーから要望されるジョブに幅広く対応するためには、多種の推論モデルを実行できることが要求される。そこで、記憶部503には、それぞれの推論モデルに対応できるように、多種の演算コンフィグ情報が格納される。推論モデルに応じたハードウェア構成の具体例については、後ほど「グリッドコンピューティングシステムの動作」で説明する。なお、1つの演算コンフィグ情報で複数の推論モデルに対応できるようにしてもよい。
演算コンフィグ情報は、演算素子の演算精度と演算素子の数を制御するための制御情報を含む。具体的に、例えば、演算素子(積和演算)のビット精度を高くすると回路リソースの使用量が増えて実装可能な演算素子の数が減少し、演算素子のビット精度を落とすと回路リソースの使用量が抑えられ実装可能な演算素子数を増やすことができる。結果として、動的再構成回路リソースに搭載可能な演算素子数が、演算精度によって変わることになる。
演算コンフィグ情報は、複数の演算素子及び複数の内部メモリの各々の間の接続方法を特定するための接続情報を含む。また、演算コンフィグ情報の接続情報は、複数の演算素子を用いて積和演算を行うビット演算器を構成する情報を含む。そして、演算コンフィグ情報に基づいて構成されるビット演算器のビット数は、演算処理時間が走行時よりも多くかけられることから、演算並列性を抑えることが可能となることから演算素子数を減らすことができ、走行コンフィグ情報に基づいて構成されるビット演算器のビット数より多くすることが可能である。
-制御部-
この例では、制御部505は、グリッドコンピューティングの運営や管理に関する一連の制御及び処理を実行する機能を有する。例えば、後述する図7のフロー図内での制御や処理を実行する。なお、以下の説明では、説明の便宜上、管理サーバ50を主体をとして動作や処理についての記載をしているが、制御部505がその処理や制御に寄与することで実現される場合がある。
制御部505は、クライアント端末30から受信した情報やデータを記憶部503に記憶する。例えば、制御部505は、クライアント端末30からジョブデータD1を受信すると、ジョブデータD1を記憶部503に保存する。また、制御部505は、クライアント端末30からジョブ情報D32を受信すると、記憶部503のジョブテーブルD53に登録する。
制御部505は、それぞれの車両10から受信した情報やデータを記憶部503に記憶する。例えば、制御部505は、車両10から車両情報D10(車両走行情報、リソース情報を含む)を受信すると、記憶部503の車両情報テーブルD51に登録する。
図6に示すように、この例では、制御部505は、コンフィグデータ選択器521を備える。
コンフィグデータ選択器521は、クライアント端末から依頼されたジョブ(以下、「依頼ジョブ」という)に適用するコンフィグ情報を選択する。この例では、コンフィグデータ選択器521は、依頼ジョブのジョブ情報D32及び/またはジョブデータD1に基づいて演算コンフィグ情報D3を選択する。
ここで、演算コンフィグ情報とは、再構成回路125の内部に用意されている細粒度の演算素子や内部メモリの組み合わせ方や、それぞれの接続を切り替えるための配線情報などである。
また、演算コンフィグ情報の登録方法は、特に限定されないが、例えば、(1)主要なジョブタイプ毎に適した構成に沿った演算コンフィグ情報をあらかじめ登録する方法、(2)ユーザー(クライアント端末30の利用者)がジョブを登録する際に、ユーザー自身がジョブに最適化された演算コンフィグ情報を作成し、ジョブとともに登録する方法、などがある。
また、コンフィグデータ選択器521は、ジョブの依頼対象となる車両(以下、「対象車両10」という)から車両走行情報として非走行状態の通知を受信した場合に、対象車両のリソース情報などに基づいて、対象車両向けの依頼ジョブを決定する。その後、コンフィグデータ選択器521は、依頼ジョブのジョブ情報D32及びジョブデータD1とあわせて、依頼ジョブに最適な演算コンフィグ情報を対象車両10に送信する。
より具体的なコンフィグデータ選択器521の具体的な動作例については、以下の「グリッドコンピューティングシステムの動作」で説明する。
〔グリッドコンピューティングシステムの動作〕
以下において、システム1の動作例について、図7及び図8のフローチャートを参照しつつ説明する。こちらの説明では、システム1は、クライアント端末30と、管理サーバ50と、対象車両10とを含み、それぞれの動作や相互間の情報のやり取りを中心に説明する。
図7は、システム全体の動作について示したフローチャートであり、図8は、車両10の主演算装置105についてのフローチャートである。また、図7と図8について、共通の動作には、共通の符号を付している。
-ステップS31(S311~S314)-
ステップS31において、対象車両10が走行中の場合、対象車両10には走行コンフィグ情報が適用される。具体的には、図8のステップS311において、対象車両10の走行検出器121では、走行状態(稼働状態)であることが検出される。
次のステップS312において、制御回路123は、セレクタ128に走行コンフィグ情報を選択することを示すコンフィグ切替信号を出力する。そうすると、ROM127に登録されている走行コンフィグ情報が再構成回路125に入力される。そして、再構成回路125において、走行コンフィグ情報に基づいた回路が構成される。
図9には、対象車両10の走行制御時において、ニューラルネットワークを用いた推論演算する場合の再構成回路125の構成例及び演算フローの一例を示している。
例えば、再構成回路125は、車両の走行制御時には、消費電力の低減及びスループットの最大化を優先する観点から、低ビット演算器を構成し、演算器数を最大化するようなハードウェア構成にされる。図9では、再構成回路125は、車両の走行制御時に8ビット×M個のPEアレイで構成されている例を示している。ここで、Mは2以上の自然数であり、例えばM=32である。なお、各低ビット演算器のビット数は、8ビットに限定されず、他のビット数であってもよいし、互いに異なるビット数の組み合わせでもよい。
ステップS313において、主演算装置105では、再構成回路125での推論演算に基づいた走行制御が実行される。具体的に、対象車両10に搭載された各種センサ(図示省略)やカメラ、レーダーなどからの入力データ、位置情報などが再構成回路125に与えられ、再構成回路125での推論演算に基づいて対象車両10の各所に配置された各種アクチュエータが制御される。
図13には、走行時とグリッドコンピューティングの演算実行時における再構成回路125の構成例を概念的に示している。具体的に、図13の下段左側は、走行時における再構成回路125の構成例であり、図13の下段右側はグリッドコンピューティングの演算実行時における再構成回路125の構成例である。
走行時における再構成回路125は、レイテンシー、演算処理速度、省エネを優先する。具体的には、例えば、回路リソースの割り当て方法として、演算精度を落とすことで一つの演算素子に対する回路リソースの割り当てを低減させるようにしている。
また、図13に示すように、データフロー形式とすることで、一度のデータ転送に対して、複数の異なる処理を流れるように処理することができる。より具体的には、例えば、画像に対するエッジ抽出フィルタ処理(処理Aに相当)のために、記憶部124から入力画像データを再構成回路125の入力に与える。そしてエッジ抽出処理を実行後に、その出力結果を使用して特徴量抽出処理(処理Bに相当)を実行し、その後、データフロー形式で、段階的により高抽象度な特徴量抽出処理(処理C、処理Dに相当)を実行して、画像識別するための特徴抽出結果という出力データを得る処理が例示される。このように、一連の処理をデータフロー形式とすることにより、主演算装置105が搭載された半導体チップ(図示省略)の外部に設けられた記憶装置7(例えば、DRAM)とのアクセス回数をできるだけ減らすことができ、低電力化を図ることができる。
一方で、グリッドコンピューティングの演算実行時における再構成回路125では、演算精度を優先して回路リソースを割り当てる。例えば、記憶装置7から再構成回路125への一度のデータ転送で精度の高い1つの処理(少ない種類の処理でも可)を実行させるように再構成回路125を構成する。より具体的には、例えば、4つの処理(処理A~処理D)がある場合には、再構成回路125を1つ目の処理Aのための回路にして、処理Aを高精度で実行させ、その結果を記憶装置7に記憶させる。その後、再構成回路125を次の処理Bを実行する回路に書き換えて、記憶装置7から処理Aの結果を取り出し、次の処理Bを実行させ、その結果を記憶装置7に記憶させる。そして、それを次の処理C、その次の処理Dと順次繰り返して実行する。これにより、記憶装置7と再構成回路125との間のデータ転送回数は増えるが、より精度を高めた演算を実行することができる。グリッドコンピューティングの演算については、後ほど具体例を説明する。
図8に戻り、ステップS314では、対象車両10の走行状態が継続しているかどうかが判定される。そして、走行状態が継続されている期間中(ステップS314でYES)、ステップS313での走行制御が継続される。
-ステップS32~S34,S21-
対象車両10の非走行状態(例えば、イグニッションオフを伴う停車)が検出されると、図8のステップS314では、NO判定となる(図7のステップS32に相当)。
次のステップS33では、対象車両10から管理サーバ50に車両走行情報(非稼働状態)と最新のリソース情報が送信される。
また、ステップS34において、制御回路123は、管理サーバ50から受信される演算コンフィグ情報D3を選択することを示すコンフィグ切替信号をセレクタ128に出力する。これにより、セレクタ128が切り替えられ、管理サーバ50から受信された演算コンフィグ情報D3が記憶部124に保存される。
ステップS21において、管理サーバ50は、対象車両10から車両走行情報(非稼働状態)と最新のリソース情報を受信する。なお、各車両10のリソース情報は、車両の走行前や走行中などに、あらかじめ管理サーバ50に登録しておき、それを使用してもよい。
なお、ステップS33とステップS34との順番は、図7の順に限定されず、ステップS34の処理が先に実行され、その後に、ステップS33の処理が実行されてもよい。
-ステップS11,S22-
ステップS11において、クライアント端末30は、管理サーバ50にアプリケーションジョブの演算依頼内容を送信する。演算依頼内容には、例えば、クライアント情報D31、ジョブ情報D32及びジョブデータD1が含まれる。
ステップS22において、管理サーバ50は、クライアント端末30からアプリケーションジョブの演算依頼内容を受信する。
なお、ステップS21とステップS22との順番は、図8の順に限定されず、ステップS22の受信が先に行われ、その後に、ステップS21の受信がおこなわれてもよい。
-ステップS23,S24,S35-
ステップS23において、管理サーバ50では、対象車両10向けの依頼ジョブを決定する。そして、依頼ジョブの演算依頼内容(ジョブ情報D32及び/またはジョブデータD1)に基づいて対象車両10に最適な演算コンフィグ情報を選択する。
図10~図12には、演算内容(推論モデル)に応じた最適な再構成回路の構成の一例とその動作例を示す。
図10は、繰り返し学習を行う学習モデルについての例を示す。
図10の例では、再構成回路125は、演算精度を高める観点から、32ビットの高精度なプロセッサで32ビット×NのPEアレイで構成されている。ここで、NはMより小さい自然数であり、例えば、N=4である。そして、再構成回路125が、出力データ解析と、パラメータ生成器の回路を再構成し、機能させるようにしている。
図11は、VGG16の畳み込みニューラルネットワークモデルの一部用に、シリアル接続された演算処理フローモデルについての例を示す。
具体的に、この例では、再構成回路125は、PEアレイをシリアルかつパイプラインに接続して再構成回路125を構成することで演算を並列化し処理時間の短縮化を狙ったものである。そして、図11には、再構成回路125の一部の構成を示しており、2つの3×3×512のConvolutionのPEアレイがシリアルかつパイプラインに接続されている。
図12は、GoogLeNet network構造の畳み込みニューラルネットワークモデルの一部用に、並列接続された演算処理フローモデルについての例を示す。
具体的に、この例では、再構成回路125は、互いに構成の異なるPEアレイ(1×1conv64,3×3conv128,5×5conv32,3×3MAXpool32)を並列に接続することでデータ処理を並列化し、処理時間の短縮化を図ったものである。さらに、上記の配列化された複数のPEアレイの出力結果を結合させるConcat回路(結合回路)を設けている。
図7に戻り、次のステップS24において、管理サーバ50は、演算依頼内容(ジョブ情報D32及びジョブデータD1)及びステップS23で選択された演算コンフィグ情報D3を対象車両10に送信する。
ステップS35において、管理サーバ50は、クライアント端末30からアプリケーションジョブの演算依頼内容を受信する。具体的には、対象車両10は、管理サーバ50から依頼ジョブの内容及びそのジョブデータD1を受信するとともに、その依頼ジョブに適用する演算コンフィグ情報D3を受信する。
-ステップS36-
前述のとおり、セレクタ128が、管理サーバ50から受信した演算コンフィグ情報D3を再構成回路125に出力するように切り替えられている(ステップS34参照)。したがって、対象車両10において、管理サーバ50から演算コンフィグ情報D3が受信されると、その演算コンフィグ情報D3は、セレクタ128を介して再構成回路125に出力される。
その後、ステップS36において、再構成回路125は、演算コンフィグ情報D3に基づいて回路の再構成をする。例えば、図10~図12のいずれかの演算に対応する演算コンフィグ情報D3を受信した場合には、その演算コンフィグ情報D3に応じた回路が構成される。
-ステップS37-
ステップS37では、ステップS36で再構成された再構成回路125を用いた演算が実行される。以下において、図10~図12の再構成回路125を用いたそれぞれの演算処理について概要を説明する。
図10の再構成回路の処理フローは、以下の(P1)~(P7)で構成される。
(P1)まず、C61において、記憶部124(内部メモリ)に入力データとして格納されたジョブデータD1を読み出す。
(P2)次のC62において、記憶部124に格納されたジョブデータD1を再構成回路125の32ビットの高精度プロセッサアレイに入力する。
(P3)次のC63において、高精度プロセッサアレイでの処理結果が記憶部124に格納される。
(P4)次のC64において、再構成回路125は、メモリに格納された出力データの解析を実施し、教師データ(正解データ)との誤差を計測する。そして、誤差を低減できるようにパラメータを再設計しC61の入力データを置き換えて、再演算を要求する。
(P5)次のC65では、パラメータ生成器で更新パラメータを生成し、C62で使用した32ビットの高精度プロセッサアレイに適用する。
(P6)そして、記憶部124に格納された更新された入力データを、32ビットの高精度プロセッサアレイに入力し再演算を実行する。
(P7)上記の(P1)~(P6)の処理を繰り返し実行し、パラメータを最適化していく。
図11の処理フローは、以下の(Q1)~(Q4)で構成される。
(Q1)まず、C71において、記憶部124に格納されているジョブデータD1を読み出す。
(Q2)次のC72において、読み出されたジョブデータD1を再構成回路125のPEアレイに入力し、PEアレイ(3×3conv512)において畳み込みの演算処理を実行する。
(Q3)次のC73において、C72の演算結果が内部メモリに格納される。
(Q4)次のC74において、C73で内部メモリに格納されたデータを取り出して、次のPEアレイ(3×3conv512)において畳み込みの演算処理を実行する。
図12の処理フローは、以下の(R1)~(R4)で構成される。
(R1)まず、C81において、記憶部124に格納されているジョブデータD1を読み出して、並列接続されている各PEアレイに入力する。
(R2)次に、C82~C85において、それぞれのPEアレイで畳み込みの演算処理を実行して出力する。
(R3)次に、R2の各PEアレイから出力された演算結果を結合する。
(R4)次に、R3で結合された結果を内部メモリに格納する。
〔実施形態の効果〕
以上で説明したように、車両の主演算装置105では、車両の走行制御時と、グリッドGのジョブを実行している場合とで主たる演算内容が異なる。
そこで、上記実施形態のシステム1では、主演算装置105に再構成回路125を設けて、車両の走行制御時と、グリッドGのジョブを実行するジョブ演算時とでそれぞれに適したハードウェアに構成を変更できるようにした。再構成回路125は、内部接続情報であるハードウェアコンフィグ情報(以下、単にコンフィグ情報という)を書き換えることで、プログラマブルに用途の異なる回路に再構築することができるという特徴がある。
さらに、管理サーバ50から車両に処理対象となるジョブのジョブデータD1を送信する際に、あわせてそのジョブの演算に適した演算コンフィグ情報を送信するようにしている。
そうすることで、処理対象のジョブを実行するのに最適な構成の回路を用いて演算を実施することができる。これにより、車両10では、依頼されたジョブに対する演算効率を高めることができる。さらに、主演算装置105は、車両走行時には、自車内のROM127に格納された走行制御用に適した走行コンフィグ情報に基づくハードウェア構成を使用するので、演算リソースが冗長となることを回避することができる。
(その他の実施形態)
なお、以上の実施形態を適宜組み合わせて実施してもよい。以上の実施形態は、本質的に好ましい例示であって、ここに開示する技術、その適用物、あるいはその用途の範囲を制限することを意図するものではない。すなわち、前述の実施形態は単なる例示に過ぎず、本開示の範囲を限定的に解釈してはならない。本開示の範囲は請求の範囲によって定義され、請求の範囲の均等範囲に属する変形や変更は、全て本開示の範囲内のものである。
以上説明したように、ここに開示する車両システムは、グリッドコンピューティングを実行可能に構成されており、極めて有用である。
1 グリッドコンピューティングシステム
10 車両
50 管理サーバ(マスタ装置)
101 通信部(第2通信部)
103 記憶部
105 主演算装置(車載演算装置)
121 走行検出器
123 制御回路
125 再構成回路
501 通信部(第1通信部)
D3 演算コンフィグ情報

Claims (4)

  1. グリッドコンピューティングを管理するマスタ装置と、車両の非稼働中に前記グリッドコンピューティングへの参加が可能に構成された車載演算装置とを含むグリッドコンピューティングシステムであって、
    前記車載演算装置は、
    前記マスタ装置と通信する通信部と、
    前記車両の稼働状態を検出する走行検出器と、
    プログラマブルにハードウェアの再構成ができるように構成された再構成回路と、
    前記走行検出器で検出された車両の稼働状態に基づいて前記再構成回路のハードウェアの再構成を制御をする制御回路と、
    車両走行制御用のハードウェア構成のコンフィグ情報である走行コンフィグ情報が記憶された記憶部とを備え、
    前記マスタ装置は、前記車載演算装置に、実行対象となるアプリケーションジョブのジョブデータ及び当該アプリケーションジョブ用のハードウェア構成のコンフィグ情報である演算コンフィグ情報を送信し、
    前記車載演算装置は、
    前記車両の稼働時には、前記走行コンフィグ情報に基づいて前記再構成回路を構成して当該再構成回路を用いて車両の走行制御処理を実行し、
    前記車両の非稼働時には、前記マスタ装置から受信した前記演算コンフィグ情報に基づいて前記再構成回路を構成して当該再構成回路を用いて前記アプリケーションジョブを実行する、
    グリッドコンピューティングシステム。
  2. 前記再構成回路は、複数の演算素子を備え、
    前記演算コンフィグ情報は、前記演算素子の演算精度と、前記演算素子の数を制御するための制御情報を含む、請求項1に記載のグリッドコンピューティングシステム。
  3. 前記再構成回路は、複数の演算素子及び複数の内部メモリを備え、
    前記演算コンフィグ情報及び前記走行コンフィグ情報は、それぞれ、前記複数の演算素子及び前記複数の内部メモリの各々の間の接続方法を特定するための接続情報を含む、請求項1に記載のグリッドコンピューティングシステム。
  4. 前記演算コンフィグ情報の接続情報及び前記走行コンフィグ情報の接続情報は、それぞれ、前記複数の演算素子を用いて積和演算を行うビット演算器を構成する情報を含み、
    前記演算コンフィグ情報に基づいて構成される前記ビット演算器のビット数は、前記走行コンフィグ情報に基づいて構成される前記ビット演算器のビット数より多い、請求項3に記載のグリッドコンピューティングシステム。
JP2021167204A 2021-10-12 2021-10-12 グリッドコンピューティングシステム Pending JP2023057629A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021167204A JP2023057629A (ja) 2021-10-12 2021-10-12 グリッドコンピューティングシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021167204A JP2023057629A (ja) 2021-10-12 2021-10-12 グリッドコンピューティングシステム

Publications (1)

Publication Number Publication Date
JP2023057629A true JP2023057629A (ja) 2023-04-24

Family

ID=86054722

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021167204A Pending JP2023057629A (ja) 2021-10-12 2021-10-12 グリッドコンピューティングシステム

Country Status (1)

Country Link
JP (1) JP2023057629A (ja)

Similar Documents

Publication Publication Date Title
JP7430203B2 (ja) 指定したバイアスを用いた浮動小数点演算を用いた行列乗算命令のためのシステム及び方法
US20230244485A1 (en) Compute-in-memory systems and methods
TWI818944B (zh) 神經網路處理單元及系統晶片
AU2016102436A4 (en) Methods and systems for carpooling
US20210319317A1 (en) Methods and apparatus to perform machine-learning model operations on sparse accelerators
AU2016394453A1 (en) Methods and systems for carpooling
JP2018073414A (ja) プロセッサ、及び複数のメモリ装置を含む分散計算システム内のワークフローを制御する方法
AU2017405450A1 (en) Methods and systems for carpooling
US20220109742A1 (en) Apparatus, articles of manufacture, and methods to partition neural networks for execution at distributed edge nodes
CN109788489A (zh) 一种基站规划方法及装置
CN115525421A (zh) 用于促进服务代理的方法和装置
WO2022007880A1 (zh) 数据精度配置方法和装置、神经网络设备、介质
WO2023207487A1 (zh) 一种电路走线确定方法及相关设备
US20230318932A1 (en) Methods and apparatus to direct transmission of data between network-connected devices
US20210272036A1 (en) Vehicle dispatch using machine learning
WO2023113969A1 (en) Methods and apparatus for performing a machine learning operation using storage element pointers
JP2023057629A (ja) グリッドコンピューティングシステム
Belcastro et al. Edge-cloud continuum solutions for urban mobility prediction and planning
CN114065924A (zh) 用于在多个处理节点之间分布人工神经网络的网关
CN114694085A (zh) 换电排队车辆的数量识别方法、系统、设备及介质
CN114464007B (zh) 基于无人机的智慧城市停车监控方法、系统及云平台
Vink et al. Caffe barista: Brewing caffe with fpgas in the training loop
US20230047233A1 (en) Using per memory bank load caches for reducing power use in a system on a chip
CN112766475B (zh) 处理部件及人工智能处理器
US20230049442A1 (en) Reduced memory write requirements in a system on a chip using automatic store predication