(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2026-01-26
(45)【発行日】2026-02-03
(54)【発明の名称】グリッドコンピューティングシステム
(51)【国際特許分類】
G06F 9/50 20060101AFI20260127BHJP
【FI】
G06F9/50 150D
(21)【出願番号】P 2021180460
(22)【出願日】2021-11-04
【審査請求日】2024-09-17
(73)【特許権者】
【識別番号】000003137
【氏名又は名称】マツダ株式会社
(74)【代理人】
【識別番号】110001427
【氏名又は名称】弁理士法人前田特許事務所
(72)【発明者】
【氏名】藤本 英臣
(72)【発明者】
【氏名】中村 正
(72)【発明者】
【氏名】的野 賢一
(72)【発明者】
【氏名】能勢 陽平
【審査官】田中 幸雄
(56)【参考文献】
【文献】特開2005-141669(JP,A)
【文献】特開2019-175216(JP,A)
【文献】特開2020-107891(JP,A)
【文献】特開平6-68053(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
ジョブを管理する管理装置と、前記ジョブの演算ノードとして動作する移動体で構成されたグリッドコンピューティングシステムであって、
前記移動体は、
前記移動体における演算負荷の許容度の指標となる
所定の属性値を計測する計測部と、
前記計測部で計測された前記
属性値を前記管理装置に送信する第1通信部とを備え、
前記管理装置は、
前記
属性値を受信する第2通信部と、
前記ジョブの演算における演算精度及び演算負荷が互いに異なる複数の演算パラメータが格納された記憶部と、
前記
属性値に基づいて、前記複数の演算パラメータの中から前記移動体に用いる設定パラメータを選択し、前記ジョブのジョブデータ及び前記設定パラメータを前記第2通信部を介して前記移動体に送信する制御部とを備え、
前記移動体は、
前記管理装置から受信した前記ジョブデータ及び前記設定パラメータが格納される記憶部と、
データフロー
処理を実行する複数の演算素子と、前記複数の演算素子の中で選択された演算経路をバイパスさせるバイパス経路とを備える演算部と、
前記設定パラメータに基づいて、前記バイパス経路の一部または全部を有効化させて前記ジョブデータを前記演算部に演算させる演算制御部とをさらに備える、グリッドコンピューティングシステム。
【請求項2】
前記移動体において、
前記計測部は、前記
属性値としての前記移動体に搭載されたバッテリーの残量を検出するバッテリー残量検出部を含み、
前記管理装置は、前記バッテリー残量検出部で計測されたバッテリーの残量に基づいて前記移動体に用いる前記設定パラメータを選択する、請求項1に記載のグリッドコンピューティングシステム。
【請求項3】
前記管理装置は、前記バッテリーの残量が多いほど、前記設定パラメータとして選択可能な前記演算パラメータの演算負荷の上限を高く設定する、請求項2に記載のグリッドコンピューティングシステム。
【請求項4】
前記移動体において、
前記計測部は、前記
属性値としての前記演算部の周辺温度を測定する温度センサを含み、
前記管理装置において、
前記制御部は、前記温度センサの測定された温度データに基づいて推定された前記演算素子を構成する半導体素子のジャンクション温度に基づいて前記移動体に用いる前記設定パラメータを選択する、請求項1または2に記載のグリッドコンピューティングシステム。
【請求項5】
前記管理装置は、最大定格ジャンクション温度と前記推定されたジャンクション温度との差が大きいほど、前記設定パラメータとして選択可能な前記演算パラメータの演算負荷の上限を高く設定する、請求項4に記載のグリッドコンピューティングシステム。
【請求項6】
前記移動体において、
前記計測部は、前記演算部の周辺温度を測定する温度センサと、
前記温度センサの測定結果に基づいて、前記
属性値として、前記複数の演算素子の中で駆動することが可能な前記演算素子の駆動可能数を推定する推定部とを備え、
前記管理装置において、
前記制御部は、前記演算素子の駆動可能数に基づいて、前記設定パラメータとして選択可能な前記演算パラメータの演算負荷の上限を設定する、請求項1または2に記載のグリッドコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
ここに開示された技術は、グリッドコンピューティングシステムに関する技術分野に属する。
【背景技術】
【0002】
特許文献1及び特許文献2には、複数の分散処理ノードを備える分散処理システムにおいて、各分散処理ノードから数値データを集計して集計データを生成し、各分散処理ノードに集計データを分配する分散処理システムに関する技術が開示されている。
【0003】
特許文献3には、集計処理ノードと複数の分散処理ノードとを連携させてニューラルネットワークの学習を行う分散処理システムに関する技術が開示されている。
【0004】
また、近年、特許文献4に示されるように、車両に搭載された演算資源を有効に活用するために、複数の車両をWiFi通信等によって無線ネットワークで接続し、グリッドコンピューティングとして活用することが検討されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2019-215603号公報
【文献】特開2020-67687号公報
【文献】特開2019-219714号公報
【文献】特開2020-160661号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
1つのニューラルネットワークを分散化処理するシステムにおいて、ディープなニューラルネットワーク等では、パラメータが膨大であることから、高い演算負荷が必要となり、演算にかかる消費電力も肥大化するという課題を抱えている。一方で、車両等の移動体(以下、単に「移動体」という)を活用したグリッドコンピューティングにおいては、移動体に搭載されるバッテリは蓄電容量が有限であるため、各移動体の電力消費はできるだけ少なくすることが望まれる。特に、ユーザが移動先でグリッドコンピューティングに係る演算(以下、「グリッド演算」という)をする場合、充電残量がそれほど多くない場合も想定される。そのような移動体についても、バッテリーの残量がないことによる次回の移動体の走行距離の制限や支障ができるだけ少なくなるようにしつつグリッド演算を実行させる必要がある。
【0007】
ここに開示された技術は斯かる点に鑑みてなされたものであり、グリッド演算による次回の走行距離への影響をできるだけ少なくしたグリッドコンピューティングシステムを提供することを目的とする。
【課題を解決するための手段】
【0008】
前記課題を解決するために、本開示の第1態様では、前記ジョブの演算ノードとして動作する移動体で構成されたグリッドコンピューティングシステムを対象として、前記移動体は、前記移動体における演算負荷の許容度の指標となる許容度パラメータを計測する計測部と、前記計測部で計測された許容度パラメータを前記管理装置に送信する第1通信部とを備え、前記管理装置は、前記パラメータを受信する第2通信部と、前記ジョブの演算における演算精度及び演算負荷が互いに異なる複数の演算パラメータが格納された記憶部と、前記許容度パラメータに基づいて、前記複数の演算パラメータの中から前記移動体に用いる設定パラメータを選択し、前記ジョブのジョブデータ及び前記設定パラメータを前記第2通信部を介して前記移動体に送信する制御部とを備え、前記移動体は、前記管理装置から受信した前記ジョブデータ及び前記設定パラメータが格納される記憶部と、データフロー型に構成された複数の演算素子と、前記複数の演算素子の中で選択された演算経路をバイパスさせるバイパス経路とを備える演算部と、前記設定パラメータに基づいて、前記バイパス経路の一部または全部を有効化させて前記ジョブデータを前記演算部に演算させる演算制御部とをさらに備える、という構成にした。
【0009】
上記態様によると、グリッドコンピューティングシステムでは、(1)移動体において、演算負荷の許容度の指標となる許容度パラメータを計測する、(2)管理装置において、許容度パラメータに基づいて複数の演算パラメータの中からその移動体に用いる設定パラメータを選択する、(3)移動体において、設定パラメータに基づいて選択された演算素子のバイパス経路を有効化させて演算部の演算を行う、という一連の処理を実行する。これにより、移動体において、許容度パラメータに基づいた演算負荷でグリッド演算が実行されるので、グリッド演算後の車両の走行距離に対する制限や支障をできるだけ少なくすることができる。
【0010】
具体的には、例えば、許容度パラメータとしてのバッテリー残量が少なくなっている場合には、バッテリー残量が十分にある場合と比較して、演算負荷が小さくなるような設定パラメータが選択される。そして、その設定パラメータが適用されることにより、有効化させるバイパス経路が増加する、言い換えるとバイパスされる演算素子が増えるようにした状態でグリッド演算が実行される。これにより、グリッド演算後の車両の走行距離に対する制限や支障をできるだけ少なくすることができる。
【発明の効果】
【0011】
以上説明したように、ここに開示された技術によると、許容度に応じた演算負荷で移動体に演算をさせるので、グリッド演算後の車両の走行距離に対する制限や支障をできるだけ少なくすることができる。
【図面の簡単な説明】
【0012】
【
図1】グリッドコンピューティングシステムの概念図
【
図4】グリッドコンピューティングシステムの構成を例示するブロック図
【
図6】グリッドコンピューティングシステムの動作の一例を示すフローチャート
【
図7】ジャンクション温度上昇幅と演算素子の駆動数との関係の一例を示す図
【
図8】グリッドコンピューティングシステムの構成の他の例を示すブロック図
【発明を実施するための形態】
【0013】
実施形態について、図面を参照しながら詳細に説明する。図中同一または相当部分には同一の符号を付すものとし、繰り返しの説明を省略する場合がある。また、以下の実施形態では、本開示の内容に関連性の高い構成を中心に説明する。
【0014】
なお、以下の実施形態は、例示的なものであり、記載の有無や例示した数値等によって本開示の内容を限定する意図はまったくない。また、本開示において、「システム」、「部」、「装置」という用語が使用されているかどうかに関係なく、システム/部/装置は、特定用途向け集積回路(ASIC:Application specific integrated circuit)またはプログラマブルロジックアレイ(PLA : Programmable logic array)などの専用回路で実現され得る。同様に、システム/部/装置は、コンピュータで読み取り可能な命令(例えば、プログラム)を実行して、所定の処理ステップを実行することにより特定の機能を実行させるプロセッサ回路で実現され得る。
【0015】
(グリッドコンピューティングシステム)
図1は、実施形態のグリッドコンピューティングシステム1(以下、単に「システム1」ともいう)の構成を例示する。
【0016】
このシステム1は、複数の車両10と、管理サーバ50とを備える。これらの構成要素は、グローバルネットワークを経由して互いに通信可能である。複数の車両10の各々には、演算部17が搭載される。管理サーバ50は、管理装置の一例である。車両10は、移動体の一例である。なお、管理装置は、クラウドで実現されてもよい。また、移動体は車両10に限定されない。
【0017】
〔グリッドコンピューティング〕
図1に示すように、実施形態のシステム1では、複数の演算部17によりグリッドコンピューティングG(以下、単に「グリッドG」ともいう)が構成される。システム1では、複数の演算部17のうち利用可能な演算部17にアプリケーションジョブ(以下、単に「ジョブ」ともいう)を演算させるグリッドコンピューティングが実行される。
【0018】
なお、車両10が走行している場合、車両10の走行制御のために演算部17の演算能力が必要となり、演算部17が稼働状態となる。一方、例えば、車両10が停車して車両10の電源がオフ状態になると、車両の走行制御に対する演算部17の演算能力が実質的に不要となる。そこで、車両10の非稼働中(例えば、駐車中)にグリッドコンピューティングの演算(以下、「グリッド演算」という)が実行される。この例では、車両の非稼働時に、それぞれの車両に搭載される演算資源(演算部17を含む)を演算ノードとしてニューラルネットワークの演算が行われる。
【0019】
〔車両〕
図2に示すように、車両10は、バッテリー11と、計測部12と、通信部15と、記憶部16と、演算部17と、演算制御部19とを備える。計測部12、通信部15、記憶部16、演算部17及び演算制御部19の機能は、例えば、車両10に搭載されたMPU(Micro-Processing Unit)で実現できる。
【0020】
-バッテリー-
車両10には、バッテリー11が搭載される。バッテリー11の電力は、演算部17などの車載機器に供給される。また、バッテリー11が、移動体の走行駆動モータ用の電源に用いられてもよい。このような車両10の例としては、電気自動車、プラグインハイブリッド自動車などが挙げられる。
【0021】
-計測部-
計測部12は、演算部17でグリッド演算を行う際の許容度パラメータを計測する。計測部12の具体的態様は、特に限定されないが、例えば、バッテリー11の残量を検出するバッテリー残量検出部121及び演算部17の近傍に設けられた温度センサ122を含む。例えば、温度センサ122として、マイコンに一般的に内蔵されているような従来から知られているジャンクション温度計測用の温度検出器を使用することができる。
【0022】
許容度パラメータは、演算負荷の許容度の指標となるパラメータである。許容度パラメータは、特に限定されないが、例えば、バッテリーの残量情報、上記のマイコンに内蔵された温度センサ122を用いて測定された温度情報等である。
【0023】
なお、計測部12は、後述する演算素子PEの許容駆動数を決定し、その許容駆動数を許容度パラメータとしてもよい。許容駆動数の決定方法については、後ほど説明する。
【0024】
-通信部-
通信部15は、管理サーバ50の通信部51との間で情報やデータを送受信する。具体的に、通信部15は、計測部12で計測された許容度パラメータをグローバルネットワークを介して管理サーバ50に送信する。通信部15は、第1通信部の一例である。
【0025】
通信部15は、管理サーバ50から演算対象のアプリケーションジョブ(以下、単に「ジョブ」という)のジョブデータD1及び設定パラメータD17を受信する。通信部15で受信された情報やデータは、演算部17に送られる。ジョブデータD1及び設定パラメータD17については、後ほど説明する。
【0026】
-記憶部-
記憶部16は、情報やデータを記憶する。記憶部16の具体的な構成は、特に限定されない。例えば、チップに内蔵されたメモリで実現されてもよいし、HDD(Hard disk drive)、SSD(Solid State Drive)で実現されてもよいし、DVDやBDのような光ディスクで実現されてもよい。
【0027】
この例では、記憶部16は、車両情報D10を記憶する。車両情報D10には、車両基本情報D11と、車両状態情報D13と、稼働情報D15が含まれる。また、記憶部16には、管理サーバ50から受信したジョブデータD1及び設定パラメータD17が格納される。
【0028】
〈車両基本情報〉
車両基本情報D11は、車両識別情報とリソース情報を含む。
【0029】
車両識別情報は、VINのように車両を識別するための情報や、車両10の所有者を識別するユーザ識別情報を含む。
【0030】
リソース情報は、後述する演算資源171に関する情報である。リソース情報は、例えば、演算資源171ごとに付与された演算資源ID、各演算資源171の性能を示す性能情報を含む。演算資源171の性能には、演算資源171の演算能力(具体的には最大演算能力)、演算資源171におけるCPUとGPUの比率などが含まれる。演算資源171の演算能力は、例えば、それぞれの演算資源171が単位時間当たりに演算することができるデータ量である。
【0031】
〈車両状態情報〉
車両状態情報D13は、車両10の状態を示す情報であり、例えば、車両位置情報、走行履歴情報、車両通信情報、車両電源情報、測定温度データ、車両の走行状態情報等を含む。車両状態情報D13は、例えば、車両の駐車状態の検知に用いられる。
【0032】
車両位置情報は、車両10の位置(緯度および経度)を示す。例えば、車両位置情報は、GPS(Global Positioning System)により取得可能である。
【0033】
走行履歴情報は、例えば、走行検出器(図示省略)で検出された車両走行情報と時刻とを関連付けて示す情報であったり、上記の車両位置情報と時刻とを関連付けて示す情報である。なお、走行履歴情報に加えて、車両10の未来の走行予定を示す走行予定情報が含まれてもよい。
【0034】
車両通信情報は、車両10とグローバルネットワークとの通信状態を示す情報、車両10と管理サーバ50との通信帯域の情報を含む。車両通信情報は、例えば、所定時間毎に更新される。なお、車両通信情報が、他の車両10との車車間通信の状態を示す情報を含んでいてもよい。
【0035】
車両電源情報は、車両10の電源の状態を示す情報、バッテリー残量情報、車両充電情報などを含む。例えば、車両電源情報は、イグニッション電源のオン/オフ、アクセサリ電源のオン/オフなどを示す。バッテリー残量情報は、バッテリー残量検出部121で検出されたバッテリー11の残量を示す情報である。バッテリー残量情報は、例えば、所定の時間毎に更新される。また、例えば、車両の駐車が検知された場合や残量が所定の閾値以下になった場合といった特定のトリガに基づいて情報が更新されてもよい。車両充電情報は、充電設備(図示省略)において車両10が充電中であるか否かを示す。
【0036】
温度測定データは、マイコンに内蔵された温度センサ122を用いて測定された測定データである。温度測定データは、例えば、所定の時間毎に更新される。また、例えば、車両の駐車が検知された場合やジャンクション温度に対するマージンが所定の閾値以下になった場合といった特定のトリガに基づいて情報が更新されてもよい。
【0037】
車両の走行状態情報は、車両の現在の走行状態を示す情報である。例えば、車両の走行状態情報は、エンジンのオン/オフ情報、走行スピードの情報、シフトレバーの設定情報、各種ブレーキの状態情報等を含む。
【0038】
〈稼働情報〉
稼働情報D15は、例えば、後述する演算資源171の稼働履歴を示す稼働履歴情報と、演算資源171の稼働予定を示す稼働予定情報を含む。
【0039】
稼働履歴情報は、例えば、演算資源171の利用率及び/またはジョブの処理量と、時刻とを関連付けて示す。稼働履歴情報は、通常稼働履歴と、グリッド稼働履歴とを含む。通常稼働履歴は、例えば、車両の走行やカーナビ、音楽再生等のサービスの提供等のように、ユーザーの利用のために演算資源171を稼働させた履歴を示す。グリッド稼働履歴は、グリッドコンピューティング処理を実行するために演算資源171を稼働させた履歴を示す。
【0040】
稼働予定情報は、例えば、演算資源171の未来の利用状況を示す利用予定情報などを含む。
【0041】
-演算部-
演算部17は、車両10の各部を制御する。この例では、演算部17は、センサ(図示省略)により得られた各種の情報に応じて各アクチュエータ(図示省略)を制御する。
【0042】
演算部17は、プロセッサ、メモリなどを有する。プロセッサの例としては、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)などが挙げられる。メモリは、プロセッサを動作させるためのプログラム、プロセッサの処理結果を示す情報やデータなどを記憶する。
【0043】
本開示では、演算部17の中でグリッドコンピューティングの演算・処理に利用可能なリソースを、説明の便宜上「演算資源」と称して説明する。
【0044】
なお、演算資源171は、車両10の制御に用いられるリソースを兼用してもよいし、車両の制御に使用しないグリッドコンピューティング専用のCPUやGPUを用いてもよい。
【0045】
また、例えば、演算資源171としての利用を許可される時間帯と、演算資源171としての利用を制限する時間帯とが分けられていてもよい。すなわち、単一のCPUが、ある時間帯では演算資源171としてカウントされ、他の時間帯では演算資源171としてカウントされないとしてもよい。また、CPUが単一または複数のコアで実現されている場合において、その複数のコアの一部が演算資源171としてカウントされ、それ以外のコアは演算資源171としてカウントされないとしてもよい。GPUについても同様である。
【0046】
図4に示すように、演算資源171は、データフロー型に構成された複数の演算素子PEと、複数の演算素子PEの中で選択された演算経路をバイパスさせるバイパス経路31と、演算の途中経過等を格納するためのRAM(Random access memory)172とを備える。言い換えると、演算資源171において、複数の演算素子PEでデータフローアーキテクチャーが形成されている。本開示において、「演算素子PE」とは、積和演算の組み合わせ回路を指す。
図4のブロック図では、後述する
図5に示すニューラルネットワークモデルが21~2x(xは正の整数)というx本のデータフローアーキテクチャーに変換された例を概念図として示している。
【0047】
なお、演算資源171の一部または全部が再構成回路で構成されていてもよい。すなわち、車両の制御時における演算資源171の回路構成と、グリッド演算時の演算資源171の回路構成とが互いに異なるように構成されていてもよい。再構成回路は、プログラマブルにハードウェアの再構成ができるように構成された回路である。具体的に、再構成回路は、粒度の細かい多種多様の演算素子(この例では演算素子PE)と、1または複数のメモリ(この例ではRAM172)を内蔵し、それらの内部接続を切り替えることができるプログラマブルなハードウェアデバイスである。そして、再構成回路としては、例えば、FPGA(Field Programmable Gate Array)やDRP(Dynamically Reconfigurable Processor)が例示される。
【0048】
-演算制御部-
演算制御部19は、記憶部16に記憶された設定パラメータに基づいて、バイパス経路31の一部または全部を有効化させてジョブデータD1を演算部17に演算させる。演算制御部19の具体的な動作については、後ほど説明する。
【0049】
〔管理サーバ〕
管理サーバ50は、グリッドコンピューティングの運営を管理する。言い換えると、システム1は、管理サーバ50を備える。管理サーバ50は、システム1を運営する事業者により所有される。
【0050】
図3に示すように、管理サーバ50は、通信部51と、記憶部53と、制御部55とを備える。
【0051】
-通信部-
通信部51は、車両10と双方向通信が可能に構成され、グローバルネットワークを経由して接続された車両10との間で情報やデータを送受信する。また、通信部51は、クライアント端末(図示省略)と双方向通信が可能に接続され、相互間でジョブに関する情報、ジョブデータD1、演算結果データD2等を送受信する。通信部51により受信された情報やデータは、制御部55に送られる。通信部51は、第2通信部の一例である。
【0052】
-記憶部-
記憶部53は、情報やデータを記憶する。記憶部53の具体的な構成は、特に限定されない。例えば、チップに内蔵されたメモリで実現されてもよいし、HDD(Hard disk drive)、SSD(Solid State Drive)で実現されてもよいし、DVDやBDのような光ディスクで実現されてもよい。
【0053】
この例では、記憶部53には、車両情報テーブルD51と、ジョブテーブルD53と、複数の演算パラメータD55と、ジョブデータD1と、演算結果データD2などの各種テーブル及び各種データが格納される。
【0054】
〈車両情報テーブル〉
車両情報テーブルD51は、車両情報を管理するためのテーブルである。車両情報テーブルD51には、各車両10の車両情報D10がリスト化されて格納されている。
【0055】
〈ジョブテーブル〉
ジョブテーブルD53は、クライアントから依頼されたジョブを管理するためのテーブルである。ジョブテーブルD53には、ジョブ毎に、そのジョブに設定された受付番号、そのジョブを依頼したクライアントに設定されたクライアントID、そのジョブの名称および内容などのジョブ情報が登録される。また、ジョブテーブルD53には、ジョブ毎に、そのジョブに対応するジョブデータの演算タイプおよび処理条件、そのジョブデータの演算に必要となる演算能力である必要演算能力、そのジョブに設定された納期などが登録される。
【0056】
〈ジョブデータ〉
記憶部53に記憶されるジョブデータD1は、クライアント端末から受け付けられたジョブのデータであり、ジョブの実施のために処理されるデータである。
【0057】
なお、ジョブデータD1は、演算タイプにより分類可能である。演算タイプの例としては、CPU系の演算タイプ、GPU系の演算タイプなどが挙げられる。CPU系の演算タイプのジョブデータD1では、シミュレーション演算など、条件分岐の多い複雑な演算が要求される傾向にある。GPU系の演算タイプのジョブデータD1では、画像処理や機械学習など、膨大な量の単純演算が要求される傾向にある。この例では、ジョブデータD1は、ニューラルネットワークの分散処理に用いるデータであるものとする。
【0058】
〈演算結果データ〉
記憶部53に記憶される演算結果データD2は、後述するグリッドコンピューティング処理によりそれぞれのニューラルネットワークで演算されたジョブの演算結果のデータである。
【0059】
〈演算パラメータ〉
記憶部53には、グリッド演算の処理に用いられる複数の演算パラメータD55が格納されている。
図4に示すように、この例では、第1~第3演算パラメータの3つが用意されている。演算パラメータD55とは、ニューラルネットワークにおけるネットワーク構造情報を指す。
【0060】
図5には、演算パラメータD55で示されているネットワークモデルの構成の一例を示している。
図5において、実線は処理を実行するネットワークであり、破線は処理をバイパスするネットワークとなっている。
【0061】
図5の左図は、オリジナルのネットワークモデルの一例を示しており、ここでは説明の便宜上「第1演算パラメータ」と称する。第1演算パラメータは、3つの演算パラメータD55の中で、演算回数が最も多い、すなわち演算負荷が最も高くなるように設定されており、演算精度が最も高いという特徴がある。言い換えると、第1演算パラメータは、ネットワークが最も密になるパラメータである。
【0062】
図5の右図は、第1演算パラメータに対して、演算が間引かれてスパース化されたネットワークモデルになっている。この例では、説明の便宜上「第3演算パラメータ」と称する。スパースなネットワークモデルは、演算回数が減る、演算精度が少し劣化するなど、オリジナルなネットワークに対しての特徴変化がある。すなわち、第3演算パラメータは、3つの演算パラメータD55の中で、演算回数が最も少ない、すなわち演算負荷が最も軽くなるように設定されているが、演算精度がそれに応じて低くなるという特徴がある。言い換えると、第3演算パラメータは、ネットワークが最も疎になるパラメータである。
【0063】
なお、図示しないが、第2演算パラメータは、スパース化の程度(
図5における破線の割合)が、第1演算パラメータと第3演算パラメータの中間程度に設定される。
【0064】
演算パラメータD55のスパースの程度については、あらかじめ設定されたスパース度で用意された複数の演算パラメータD55から選択するようにしてもよい。また、ユーザが設定したスパース度に応じて内部で演算が実施されて、複数の演算パラメータD55が用意されるようにしてもよい。なお、演算パラメータD55は、機械学習を継続しながらその過程で随時更新されるようにしてもよい。
【0065】
本開示では、オリジナルのネットワークモデルをデータフロー型に構成した複数の演算素子PEで実現し、それぞれの演算素子PEにバイパス経路31を設けて、このバイパス経路31の有効/無効によって、このスパース化の程度を調整できるようにしている点に特徴がある。言い換えると、演算パラメータは、ジョブデータD1の演算を実行するのにあたって、データフロー型に構成された演算素子PEのうちのどの演算素子PEのバイパス経路31を有効化させるのかを示すパラメータである。
【0066】
ここで、バイパス経路31を有効化させるとは、バイパスされる処理を実行する演算素子PEに設けられたバイパス経路を導通させて、入力信号が演算素子PEを介さずに出力に流れるようにすることを指す。これにより、データフロー処理のうちの一部のネットワークの処理をバイパスさせることができるので、バイパスさせた演算素子PEの分の電力消費を抑制することができる。なお、バイパス経路31を有効化させた演算素子PEについて、クロックの供給を停止させるようにすることで、より消費電力の削減効果を高めることができる。
【0067】
すなわち、本開示では、演算負荷の許容度に応じた演算パラメータD55を設定パラメータとして選択して、それを演算資源171に適用することで、グリッド演算の演算負荷をその許容度に応じた負荷の重さに調整することができるという特徴がある。例えば、バッテリー残量が少なくなっている場合には、バッテリー残量が十分にある場合と比較して、演算負荷が軽くなるような設定パラメータが選択される。これにより、グリッド演算後の車両の走行距離に対する制限や支障をできるだけ少なくすることができる。具体的な動作例については、後ほど説明する。
【0068】
なお、バイパス経路31は、必ずしもすべての演算素子PEに設定されている必要はなく、バイパス経路31が設定されない演算素子PEが含まれていてもよい。また、データフローの列全体(例えば、
図4において22の枠で囲んだ演算素子PE)をバイパスするような設定パラメータが用意されてもよい。また、複数の演算素子PEをまとめてバイパスするようなバイパス経路31が設けられていてもよい。
【0069】
-制御部-
この例では、制御部55は、グリッドコンピューティングの運営や管理に関する一連の制御及び処理を実行する機能を有する。例えば、後述する
図6のフロー図内での制御や処理を実行する。なお、以下の説明では、説明の便宜上、管理サーバ50を主体をとして動作や処理についての記載をしているが、制御部55がその処理や制御に寄与することで実現される場合がある。
【0070】
制御部55は、クライアント端末から受信した情報やデータを記憶部53に記憶する。例えば、制御部55は、クライアント端末からジョブデータD1を受信すると、ジョブデータD1を記憶部53に保存する。
【0071】
制御部55は、それぞれの車両10から受信した情報やデータを記憶部53に記憶する。例えば、制御部55は、車両10から車両情報D10(車両走行情報、リソース情報を含む)を受信すると、記憶部53の車両情報テーブルD51に登録する。
【0072】
また、制御部55は、車両10から受信した許容度パラメータに基づいて、複数の演算パラメータの中からその車両10に用いる設定パラメータを選択する。そして、その車両に依頼するジョブのジョブデータ及び選択した設定パラメータを通信部51を介してその車両10に送信する。制御部55の具体的な動作の一例は、以下の「グリッドコンピューティングシステムの動作例」において説明する。
【0073】
〔グリッドコンピューティングシステムの動作例〕
以下において、システム1の動作例について、
図5のフローチャートを参照しつつ説明する。
図5の例では、管理サーバ50及び車両10の動作や相互間の情報のやり取りを中心に説明する。
【0074】
なお、この例では、クライアントから依頼されるジョブ(以下、「依頼ジョブ」ともいう)は、ニューラルネットワークの分散処理であるものとする。したがって、管理サーバ50の記憶部53は、ジョブデータD1として、ニューラルネットワークの分散処理に用いるデータが格納されているものとする。ここでは、ジョブの依頼先となる車両について、説明の便宜上「対象車両10」と称する。
【0075】
-ステップS21-
ステップS1において、管理サーバ50は、管理者による入力操作に応答して、記憶部53に複数の演算パラメータD55を登録する。
【0076】
演算パラメータD55の登録方法は特に限定されない。例えば、(1)管理者がクライアントからの要望に応じたスパースの度合い(例えば、スパース度5%,10%,20%)を入力する、(2)制御部55が、あらかじめ格納された複数の演算パラメータD55の中からそれぞれのスパースの度合いに応じた演算パラメータD55を選択して記憶部53に登録する、という方法が例示される。また、クライアント端末からそれぞれのジョブに対応した複数の演算パラメータD55をあらかじめ入手し、それを管理者が記憶部53にそのジョブ用の演算パラメータD55として登録するようにしてもよい。
【0077】
-ステップS11~S13,S22-
対象車両10においてグリッド演算の開始条件を充足したことが検知されると、計測部12は、通信部15を介して直近に計測された許容度パラメータを管理サーバ50に送信する(ステップS11~S13)。
【0078】
具体的に、ステップS11において、グリッド演算の開始条件は、例えば、対象車両10に設けられたセンサ等(図示省略)を用いて駐車が検知され、乗員が外からロックしたことが検知されたことを条件として充足されたと判定される。また、例えば、対象車両10が駐車かつロックされた状態において、対象車両10の所有者から発信されたグリッド演算の開始許可通知が受信されたことをもってグリッド演算の開始条件が充足されたと判定される。
【0079】
ステップS12において、対象車両10の計測部12は、許容度パラメータを計測する。この例では、バッテリー残量検出部121が許容度パラメータとしてバッテリー11の残量を計測する。なお、定期的にバッテリー残量を計測して、記憶部16に保存している場合、新たに計測せずに直近の計測データを用いてもよい。なお、許容度パラメータとして、バッテリー残量に加えてまたは代えて温度センサ122の測定データを用いてもよい。
【0080】
ステップS13では、対象車両10の通信部15から管理サーバ50の通信部51に許容度パラメータが送信される。管理サーバ50で受信された許容度パラメータは、制御部55の制御を受けて記憶部53に格納される(ステップS22)。
【0081】
-ステップS23-
ステップS23において、管理サーバ50の制御部55は、対象車両10から受信した許容度パラメータに基づいて、記憶部53に格納された複数の演算パラメータの中から対象車両10に用いる設定パラメータを選択する。
【0082】
例えば、許容度パラメータとしてバッテリー11の残量情報を受信している場合、バッテリー残量が大きいほど、設定パラメータとして選択可能な演算パラメータD55の演算負荷の上限が高く設定される。すなわち、制御部55は、より演算精度の高い演算パラメータD55を選択肢に含めて、その選択肢の範囲内で最適な演算パラメータD55を選択する。一方で、バッテリー11のバッテリー残量が少ない場合、演算負荷の上限が低く設定され、制御部55は、演算精度を多少犠牲にしてでも、演算負荷の小さい演算パラメータD55を選択する。
【0083】
例えば、許容度パラメータとして温度センサ122の測定データを受信している場合、その測定データに基づいて演算資源171を構成する半導体素子の温度と、最大定格ジャンクション温度との差分を推定し、その差分に応じた演算素子の駆動数に基づいて、設定パラメータとして選択可能な演算パラメータD55の演算負荷の上限が設定される。すなわち、制御部55は、最大定格ジャンクション温度と半導体素子の温度との温度差が大きいと推定される場合、より演算精度の高い演算パラメータD55を選択肢に含めて、その選択肢の範囲内で最適な演算パラメータD55を選択する。一方で、上記の温度差が小さいと推定される場合、演算負荷の上限が低く設定され、制御部55は、演算精度を多少犠牲にしてでも、演算素子の駆動数の上限の範囲内で演算負荷が相対的に小さい演算パラメータD55を選択する。
【0084】
-ステップS24,S14-
ステップS24において、制御部55は、対象車両10に依頼するジョブのジョブデータD1及びステップS23で設定された設定パラメータを通信部51を介して対象車両10に送信する。対象車両10において、管理サーバ50からジョブデータD1及び設定パラメータが受信されると、記憶部16に格納される(ステップS14)。
【0085】
-ステップS15-
ステップS15において、演算制御部19は、設定パラメータに基づいて、バイパス経路31を有効化させる。このバイパス経路31の有効化により、前述のとおり、一部のネットワークの処理がバイパスされる。具体的には、例えば、
図4の構成において、21aの演算素子PEの後に22bの演算素子PEが配置されている場合に、設定パラメータが21aの演算素子PEをバイパスすることを示す場合、演算制御部19は、バイパス経路31aを有効化する。そうすると、入力は21aの演算素子PEを介さずに、22bの演算素子PEに入力されて処理される。このとき、21aの演算素子PEのクロックを停止させれば、より消費電力を抑制することができ、バッテリの減りを抑制できる。
【0086】
-ステップS16、S17,S25-
ステップS15において、演算制御部19は、設定パラメータに基づくバイパス経路31を有効化した状態で、演算部17にジョブデータD1を用いたグリッド演算を実行させる。そして、演算部17は、ジョブデータD1を用いたグリッド演算が終わると、演算結果データD2を管理サーバ50に送信する。そして、管理サーバ50で演算結果データD2が受信され、記憶部53に格納されて処理は終了となる。
【0087】
〔実施形態の効果〕
以上で説明したように、上記実施形態のシステム1では、(1)対象車両10において、演算負荷の許容度の指標となる許容度パラメータ(例えば、バッテリーの残量や演算資源171付近の温度)を計測する、(2)管理サーバ50において、許容度パラメータに基づいて複数の演算パラメータの中から対象車両10に用いる設定パラメータを選択する、(3)対象車両10において、設定パラメータに基づいて選択された演算素子PEのバイパス経路31を有効化させ、その状態で演算資源171にグリッド演算を実行させる、という一連の処理を実行する。これにより、対象車両10では、許容度パラメータに応じた演算負荷になるように設定された演算資源171を用いてグリッド演算が実行されるので、グリッド演算後の車両の走行距離に対する制限や支障をできるだけ少なくすることができる。
【0088】
以上の実施形態は、本質的に好ましい例示であって、ここに開示する技術、その適用物、あるいはその用途の範囲を制限することを意図するものではない。すなわち、前述の実施形態は単なる例示に過ぎず、本開示の範囲を限定的に解釈してはならない。本開示の範囲は請求の範囲によって定義され、請求の範囲の均等範囲に属する変形や変更は、全て本開示の範囲内のものである。
【0089】
例えば、
図8に示すように、計測部12は、演算素子PEの許容駆動数を推定する推定部123を有し、その推定部123で推定された許容駆動数を許容度パラメータとしてもよい。
【0090】
以下において、許容駆動数の決定方法について2つ例示する。
【0091】
〈許容駆動数の決定方法(1)〉
まず、あらかじめMPU自体の特性として、演算素子PEを構成する半導体素子のジャンクション温度(以下、単に「ジャンクション温度」という)の上昇幅と、演算素子PEの駆動数との関係を示したテーブルや関数等を記憶部16に格納しておく。
図7は、ジャンクション温度上昇幅と演算素子の駆動数との関係の一例を示すグラフである。
【0092】
計測部12では、例えば、
図7のグラフを用いて、グリッド演算を開始しようとする際における電源の起動後に、温度センサ122を用いて演算素子PEの非駆動状態における半導体素子のジャンクション温度を測定する。
【0093】
そして、推定部123において、最大定格ジャンクション温度と、測定された半導体素子のジャンクション温度との差分から、駆動することが可能な演算素子数の規格値を算出する。
【0094】
例えば、上記の電源の起動後における演算素子PEの非駆動状態におけるジャンクション温度が60℃であり、MPU(演算資源171)の最大定格ジャンクション温度が105℃の場合、その差分は45℃になる。そうすると、
図7のグラフから、演算素子PEの許容駆動数(許容演算素子数)が50個と判定される。
【0095】
この場合、
図6のステップS13において、対象車両10から管理サーバ50に許容度パラメータとして演算素子PEの許容駆動数の情報が送信される。そして、ステップS23において、管理サーバ50の制御部55では、演算素子PEの許容駆動数に基づいて、その許容駆動数に応じた設定パラメータが選択される。言い換えると、制御部55では、演算素子PEの許容駆動数(駆動可能数)に基づいて、設定パラメータとして選択可能な演算パラメータの演算負荷の上限を設定し、その上限に応じた設定パラメータが選択される。
【0096】
〈許容駆動数の決定方法(2)〉
まず、車両の所有者は、所有する車両において、「バッテリー11の残量が何%までならば、グリッド演算を実施してよい」という残量スレッシュ規格値を設定する。バッテリーの利用状況は、車両10の使い方に依存するため、車両の所有者等が事前に残量スレッシュ規格値を設定できるようにすることで、利便性を高めることができ、グリッド演算後の車両の走行距離に対する制限や支障をより少なくすることができる。
【0097】
車両では、演算資源171の単位時間当たりの演算駆動数と、駆動させる演算素子数に応じて単位時間あたりのバッテリー消費量との関係についての特性を事前に記憶部16にデータとして登録しておく。
【0098】
そして、推定部123において、バッテリー残量検出部121で計測されたバッテリー残量に基づいて、グリッド演算の終了後に、バッテリー11の残量が残量スレッシュ規格値以下にならないような許容駆動数と実行可能時間を算出する。なお、実行可能時間は、例えば、グリッド演算として利用可能な時間帯をあらかじめユーザーが設定できるようにしてもよい。
【0099】
この場合、
図6のステップS13において、対象車両10から管理サーバ50に許容度パラメータとして演算素子PEの許容駆動数と実行可能時間の情報が送信される。そして、ステップS23において、管理サーバ50の制御部55では、演算素子PEの許容駆動数および実行可能時間に基づいて、その許容駆動数に応じた設定パラメータが選択される。
【産業上の利用可能性】
【0100】
以上説明したように、ここに開示するグリッドコンピューティングシステムは、グリッド演算後の車両の走行距離に対する制限や支障をできるだけ少なくすることができるので極めて有用である。
【符号の説明】
【0101】
1 グリッドコンピューティングシステム
10 車両(移動体)
12 計測部
15 通信部(第1通信部)
16 記憶部
17 演算部
19 演算制御部
31 バイパス経路
50 管理サーバ(管理装置)
51 通信部(第2通信部)
53 記憶部
55 制御部
D1 ジョブデータ
D17 設定パラメータ
PE 演算素子