IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

特開2023-91269アクセラレータ装置を利用した情報処理装置及び情報処理方法
<>
  • 特開-アクセラレータ装置を利用した情報処理装置及び情報処理方法 図1
  • 特開-アクセラレータ装置を利用した情報処理装置及び情報処理方法 図2
  • 特開-アクセラレータ装置を利用した情報処理装置及び情報処理方法 図3
  • 特開-アクセラレータ装置を利用した情報処理装置及び情報処理方法 図4
  • 特開-アクセラレータ装置を利用した情報処理装置及び情報処理方法 図5
  • 特開-アクセラレータ装置を利用した情報処理装置及び情報処理方法 図6
  • 特開-アクセラレータ装置を利用した情報処理装置及び情報処理方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023091269
(43)【公開日】2023-06-30
(54)【発明の名称】アクセラレータ装置を利用した情報処理装置及び情報処理方法
(51)【国際特許分類】
   G06F 11/00 20060101AFI20230623BHJP
   G06F 9/50 20060101ALI20230623BHJP
   G06F 11/07 20060101ALI20230623BHJP
   G06F 9/38 20180101ALI20230623BHJP
   G06F 15/80 20060101ALI20230623BHJP
   G06N 3/063 20230101ALI20230623BHJP
   G06N 3/10 20060101ALI20230623BHJP
【FI】
G06F11/00 608
G06F9/50 150C
G06F9/50 150A
G06F11/07 140A
G06F11/07 193
G06F9/38 370C
G06F9/38 380X
G06F15/80
G06N3/063
G06N3/10
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2021205929
(22)【出願日】2021-12-20
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】上薗 巧
(72)【発明者】
【氏名】井辻 宏章
(72)【発明者】
【氏名】新保 健一
(72)【発明者】
【氏名】高橋 昌義
(72)【発明者】
【氏名】植松 裕
【テーマコード(参考)】
5B013
5B042
【Fターム(参考)】
5B013DD03
5B013DD05
5B013EE09
5B042KK01
5B042KK04
5B042KK17
5B042KK20
(57)【要約】
【課題】アクセラレータ装置が大型にならないように情報処理装置の信頼性と動作継続性とを両立する。
【解決手段】演算対象を用いた演算をアクセラレータ装置により行う情報処理装置が、演算対象が使用される情報が入力される都度に、下記を行う。
・演算対象における複数の演算要素の各々について、当該演算要素の演算結果の正確性が演算対象の出力情報の正確性に影響する度合である故障影響度を基に、当該演算要素に、アクセラレータ装置における複数の処理回路から、演算のための使用可能な処理回路である演算回路の他に、演算の正確性診断のための使用可能な処理回路である一つ以上の診断回路を割り当てるかを決定する。
・演算対象における演算要素の数と、少なくとも一つの診断回路が割り当てられた演算要素の数と、演算要素の故障影響度とに基づき、情報処理装置の動作を継続するか否かの判断に用いられる情報処理装置の信頼性を算出する。
【選択図】 図1
【特許請求の範囲】
【請求項1】
入力された情報の演算に使用されて情報が出力される演算対象を用いた演算をアクセラレータ装置により行う情報処理装置において、
割り当て決定部と、
信頼性判定部と
を備え、
前記アクセラレータ装置は、複数の処理回路を有する一つ又は複数のハードウェアアクセラレータを有し、
前記演算対象が使用される情報が入力される都度に、
前記割り当て決定部が、前記演算対象における複数の演算要素の各々について、当該演算要素の演算結果の正確性が前記演算対象の出力情報の正確性に影響する度合である故障影響度を基に、当該演算要素に、前記複数の処理回路から、演算のための使用可能な処理回路である演算回路の他に、演算の正確性診断のための使用可能な処理回路である一つ以上の診断回路を割り当てるかを決定し、
前記信頼性判定部が、前記演算対象における演算要素の数と、少なくとも一つの診断回路が割り当てられた演算要素の数と、演算要素の故障影響度とに基づき、前記情報処理装置の動作を継続するか否かの判断に用いられる前記情報処理装置の信頼性を算出する、
情報処理装置。
【請求項2】
前記割り当て決定部は、演算要素の故障影響度の高さに基づく演算要素順に、少なくとも演算回路を含む一つ以上の使用可能な処理回路を演算要素に割り当てる、
請求項1に記載の情報処理装置。
【請求項3】
前記情報処理装置の動作継続が決定された場合、
前記複数の演算要素の各々について、当該演算要素に割り当てられた一つ以上の処理回路の各々による、当該演算要素の処理と、
一つ以上の診断回路が割り当てられた演算要素毎に、演算回路と一つ以上の診断回路の処理結果から、当該演算回路及び一つ以上の診断回路の少なくとも一つに故障が発生しているか否かを判断することと
が行われ、
使用可能な処理回路とは、故障が発生したと判断されていない処理回路である、
請求項1に記載の情報処理装置。
【請求項4】
書き換え制御部を更に備え、
前記一つ又は複数のハードウェアアクセラレータの少なくとも一つは、回路書き換え可能なハードウェアアクセラレータであり、
前記回路書き換え可能なハードウェアアクセラレータの現在の回路構成が、前記割り当て決定部による割り当ての結果としての回路構成と異なっている場合、前記書き換え制御部が、当該回路構成の差分についての回路書き換えを前記回路書き換え可能なハードウェアアクセラレータに指示する、
請求項1に記載の情報処理装置。
【請求項5】
前記回路書き換え可能なハードウェアアクセラレータの現在の回路構成が、前記割り当て決定部による割り当ての結果としての回路構成と異なっている場合、前記書き換え制御部は、
演算回路に故障が発生していれば、いずれかの診断回路を演算回路に書き換えることと、処理回路間の配線を書き換えることとを、前記回路書き換え可能なハードウェアアクセラレータに指示し、
診断回路に故障が発生していれば、処理回路間の配線を書き換えることを、前記回路書き換え可能なハードウェアアクセラレータに指示し、処理回路の書き換えを、前記回路書き換え可能なハードウェアアクセラレータに指示しない、
請求項4に記載の情報処理装置。
【請求項6】
前記演算対象は、複数のノードを有するグラフ構造の機械学習モデルであり、
前記複数の演算要素は、前記複数のノードである、
請求項1に記載の情報処理装置。
【請求項7】
前記グラフ構造の機械学習モデルは、ニューラルネットワークである、
請求項6に記載の情報処理装置。
【請求項8】
入力された情報の演算に使用されて情報が出力される演算対象を用いた演算をアクセラレータ装置により行う情報処理方法において、
演算対象が使用される情報が入力される都度に、
(A)コンピュータが、前記演算対象における複数の演算要素の各々について、当該演算要素の演算結果の正確性が前記演算対象の出力情報の正確性に影響する度合である故障影響度を基に、当該演算要素に、前記アクセラレータ装置が有する一つ又は複数のハードウェアアクセラレータの複数の処理回路から、演算のための使用可能な処理回路である演算回路の他に、演算の正確性診断のための使用可能な処理回路である一つ以上の診断回路を割り当てるかを決定し、
(B)コンピュータが、前記演算対象における演算要素の数と、少なくとも一つの診断回路が割り当てられた演算要素の数と、演算要素の故障影響度とに基づき、情報処理を継続するか否かの判断に用いられる情報処理の信頼性を算出する、
情報処理方法。
【請求項9】
(A)では、コンピュータが、演算要素の故障影響度の高さに基づく演算要素順に、少なくとも演算回路を含む一つ以上の使用可能な処理回路を演算要素に割り当てる、
請求項8に記載の情報処理方法。
【請求項10】
(B)で算出された信頼性が一定値以上の場合、
前記複数の演算要素の各々について、当該演算要素に割り当てられた一つ以上の処理回路の各々による、当該演算要素の処理が行われ、
コンピュータが、一つ以上の診断回路が割り当てられた演算要素毎に、演算回路と一つ以上の診断回路の処理結果から、当該演算回路及び一つ以上の診断回路の少なくとも一つに故障が発生しているか否かを判断し、
使用可能な処理回路とは、故障が発生したと判断されていない処理回路である、
請求項8に記載の情報処理方法。
【請求項11】
前記一つ又は複数のハードウェアアクセラレータの少なくとも一つは、回路書き換え可能なハードウェアアクセラレータであり、
前記回路書き換え可能なハードウェアアクセラレータの現在の回路構成が、(A)の割り当ての結果としての回路構成と異なっている場合、コンピュータが、当該回路構成の差分についての回路書き換えを前記回路書き換え可能なハードウェアアクセラレータに指示する、
請求項8に記載の情報処理方法。
【請求項12】
前記演算対象は、複数のノードを有するグラフ構造の機械学習モデルであり、
前記複数の演算要素は、前記複数のノードである、
請求項8に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、アクセラレータ装置による演算を含んだ情報処理技術に関する。
【背景技術】
【0002】
機械学習又は深層学習の市場が形成され、自動運転や産業インフラ装置等のエッジ機器へのAI(Artificial Intelligence)活用が進展しており、GPU(Graphics Processing Unit)や専用LSI(Large Scale Integration)などのハードウェアアクセラレータの使用が進んでいる。これらエッジ機器では、環境や経年変化の影響でハードウェアの異常が発生する可能性がある。システムの安定的な動作継続のためには、ハードウェアの異常検出だけでなく、復旧技術が必須である。
【0003】
復旧方法としては、例えば、
(*)システムを再起動する、
(*)主系(現用系)に異常が発生した場合に主系から待機系へ切り替える、
(*)異常が発生した部位を除いた動作である縮退動作を行う、
などが知られている。
【0004】
また、特許文献1には、自己修復機能付き情報処理装置が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平8-44581号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
近年、信頼性と動作継続性との両立がエッジ機器に求められてきている。また、エッジ機器は、情報処理装置の一例である。信頼性と動作継続性との両立は、エッジ機器以外の情報処理装置についても求められ得る。
【0007】
アクセラレータ装置を備えた情報処理装置がある。情報処理のうちの所定種類の演算をアクセラレータ装置が実行する。これにより、処理の高速化が期待できる。所定種類の演算としては、例えば、機械学習モデルを用いた演算がある。機械学習モデルとして、グラフ構造の機械学習モデル(複数のノードとそれぞれノード間を結ぶ複数のエッジとを有する機械学習モデル)がある。グラフ構造の機械学習モデルとしては、例えば、ニューラルネットワークがあるが、ニューラルネットワークに代えて決定木などのグラフ構造モデルが採用されてもよい。
【0008】
アクセラレータ装置は、一つ以上のハードウェアアクセラレータを有する。ハードウェアアクセラレータは、複数の処理回路を有する。アクセラレータ装置における処理回路の故障を検出するための診断として、演算対象における同一の演算要素の演算を複数の処理回路が行い当該複数の処理回路の演算結果を比較することが考えられる。例えば、「演算対象」としては、グラフ構造の機械学習モデルがあり、「演算要素」としては、グラフ構造の機械学習モデルにおけるノードがある。「演算対象」に情報を入力することで複数の演算要素のうちの少なくとも一部の演算要素を経て(当該情報を用いた演算が行われて)「演算対象」から情報が出力される。
【0009】
アクセラレータ装置における処理回路に故障が検出されたた場合、上述した従来の復旧方法では、動作継続は可能であるが、故障発生後の信頼性が低下する可能性がある。
【0010】
例えば、グラフ構造の機械学習モデルにおけるノード毎に主系としての処理回路と待機系としての処理回路とが割り当てられたアクセラレータ装置が考えられる。このアクセラレータ装置では、主系に故障が発生した場合には、待機系への切り替えを経て動作継続がされる。しかし、この場合、切り替え先の待機系に故障が発生すると、次の切り替え先が無く、故に、信頼性が低下する。また、ノード毎に主系と待機系の2系統が維持される必要があるため、アクセラレータ装置が大型になり、情報処理装置(例えば、エッジ機器)の要求スペックを満たせない可能性がある。
【0011】
このような問題は、所定種類の演算が、グラフ構造の機械学習モデルを用いた演算以外の演算でもあり得る。
【0012】
本発明の目的は、アクセラレータ装置が大型にならないように情報処理装置の信頼性と動作継続性とを両立することである。
【課題を解決するための手段】
【0013】
入力された情報の演算に使用されて情報が出力される演算対象を用いた演算をアクセラレータ装置により行う情報処理装置が、割り当て決定部と、信頼性判定部とを備える。演算対象が使用される情報が入力される都度に、下記が行われる。
・割り当て決定部が、演算対象における複数の演算要素の各々について、当該演算要素の演算結果の正確性が演算対象の出力情報の正確性に影響する度合である故障影響度を基に、当該演算要素に、アクセラレータ装置における複数の処理回路から、演算のための使用可能な処理回路である演算回路の他に、演算の正確性診断のための使用可能な処理回路である一つ以上の診断回路を割り当てるかを決定する。
・信頼性判定部が、演算対象における演算要素の数と、少なくとも一つの診断回路が割り当てられた演算要素の数と、演算要素の故障影響度とに基づき、情報処理装置の動作を継続するか否かの判断に用いられる、情報処理装置の信頼性を算出する。
【発明の効果】
【0014】
本発明によれば、アクセラレータ装置が大型にならないように情報処理装置の信頼性と動作継続性とを両立することができる。
【図面の簡単な説明】
【0015】
図1】第1の実施形態に係る情報処理装置の構成図。
図2】第1の実施形態に係る情報処理装置の動作フローチャート。
図3】第2の実施形態に係る情報処理装置の構成図。
図4】第2の実施形態に係る情報処理装置の動作フローチャート。
図5】第3の実施形態に係る情報処理装置の構成図。
図6】第3の実施形態に係る情報処理装置の構成図。
図7】情報処理装置のハードウェア構成図。
【発明を実施するための形態】
【0016】
以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちの少なくとも一つでよい。
・一つ以上のI/O(Input/Output)インターフェースデバイス。I/O(Input/Output)インターフェースデバイスは、I/Oデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するI/Oインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのI/Oデバイスは、ユーザインターフェースデバイス、例えば、キーボード及びポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
【0017】
また、以下の説明では、「メモリ」は、一つ以上の記憶デバイスの一例である一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
【0018】
また、以下の説明では、「永続記憶装置」は、一つ以上の記憶デバイスの一例である一つ以上の永続記憶デバイスでよい。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよく、具体的には、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、NVME(Non-Volatile Memory Express)ドライブ、又は、SCM(Storage Class Memory)でよい。
【0019】
また、以下の説明では、「記憶装置」は、メモリと永続記憶装置の少なくともメモリでよい。
【0020】
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサデバイスでよい。少なくとも一つのプロセッサデバイスは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスでよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。
【0021】
また、以下の説明では、「yyy部」の表現にて機能を説明することがあるが、機能は、一つ以上のコンピュータプログラムがプロセッサによって実行されることで実現されてもよいし、一つ以上のハードウェア回路(例えばFPGA又はASIC)によって実現されてもよいし、それらの組合せによって実現されてもよい。プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置及び/又はインターフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
【0022】
以下、本発明の実施形態について図面を参照して説明する。
[第1の実施形態]
【0023】
図1は、第1の実施形態に係る情報処理装置の構成例を示す図である。また、図2は、当該情報処理装置の動作フローチャートである。
【0024】
情報処理装置12Aは、影響度計算部2と、優先度決定部4と、割り当て決定部5と、アクセラレータ装置6Aと、診断情報収集部7と、使用可能リソース特定部9と、信頼性判定部10とを有する。アクセラレータ装置6Aは、複数のGPU(Graphics Processing Unit)17Gと、複数のGPU17Gを制御するコントローラ30と、各コア21の演算結果が格納されるメモリ22とを有する。GPU17Gは、ハードウェアアクセラレータの一例であり、具体的には、並列処理デバイスの一例である。GPU17Gは、複数のコア(GPUコア)21を有する。
【0025】
影響度計算部2は、影響度計算を行う(S201)。具体的には、影響度計算部2は、学習済みニューラルネットワーク1(ニューラルネットワークを表すデータ)に対して、各ノードで故障が発生し演算を誤った場合にその故障の影響が出力に影響するか否かを定量的に解析する。解析方法は、各ノードに対して故障を仮定して行ったシミュレーション結果と、通常時のシミュレーション結果を比較し、影響の有無を調べる、エラーインジェクションが考えられる。影響度の定量化の方法としては、例えば、AVF(Architectural Vulnerability Factor)を活用する。AVFは、ノードで発生する全故障モードに対する、故障影響がニューラルネットワーク演算結果の誤りとなる割合で定義する。影響度計算部3による解析の結果としての情報が、故障影響度3として出力される。故障影響度3は、学習済みニューラルネットワーク1におけるノード毎の影響度を表す情報を含む。
【0026】
優先度決定部4は、優先度決定を行う(S202)。具体的には、優先度決定部4は、故障影響度3を用いて学習済ニューラルネットワーク1内の各ノードに対して、診断優先度を設定する。診断優先度の定義としては、故障影響度の大きいノードから順位付けを行い、その順位を優先度とする方法や、故障影響度の大きさを用いてノード群を2つ以上作成し、ノード群に対して優先度をつける方法などが考えられる。
【0027】
割り当て決定部5は、機能割り当て決定を行う(S203)。具体的には、割り当て決定部5は、使用可能リソース特定部9から取得された情報が一つ以上の使用可能なハードウェアリソース(本実施形態ではコア21)を表している場合、少なくとも一つの使用可能なコア21に、ニューラルネットワーク内の特定のノードについての演算を行う演算機能、又は、ニューラルネットワーク内の特定のノードについて診断を行う診断機能を割り当てる。使用可能なコア21に限りがあるため、割り当て決定部5は、最初に演算機能の割り当てを行い、残ったコア21に対して診断機能を割り当てていく。残ったコア21に対して診断機能を割り当てていく際、割り当て決定部5は、診断優先度の高いノードから先に、診断機能を割り当てていき、使用可能なコア21がなくなったら終了とする。割り当て決定部5は、診断ノード(演算結果の診断がされるノード)の情報を診断ノード情報として信頼性判定部10に送る。診断ノード情報は、例えば、診断ノードのIDのリストを含んでよい。また、割り当て決定部5は、使用可能リソース特定部9から取得された情報が表す使用不可能なコア21(ハードウェアリソース)に対しては、有効な演算を実行させないよう、NOP(No Operation)を割り当てる。例えば、割り当て決定部5は、ノード1~10までの演算はGPU17Ga、ノード11~20までの演算はGPU17Gbなどのように割り当てを行う。割り当て結果を表す割当結果情報は、実行するGPU17Gを表す情報(例えば、一意のGPU番号など)と、そのGPU17Gで実行する演算情報(例えば、オペランド、使用データ)とを少なくとも含む。すなわち、割り当て結果情報は、ノードについて演算機能及び診断機能の各々の割当て先のGPU17Gを表す情報が含まれる。いずれのノードについて演算機能又は診断機能が割り当てられるかは、割り当て結果情報において定められていてもよいし、割り当て結果情報を基にアクセラレータ装置6Aのコントローラ30によって決定されてもよい。割り当て決定部5は、割り当て結果情報をアクセラレータ装置6に送る。
【0028】
信頼性判定部10は、信頼性計算を行う(S204)。具体的には、信頼性判定部10は、診断ノード情報と故障影響度3とを用いて、情報処理装置12Aの信頼性を定量的に導出する。信頼性判定部10は、導出された信頼性が要求された信頼性を満たすか否か(つまり、動作を継続するか否か)を判定する(S205)。
【0029】
システム(情報処理装置12A)の信頼性の定量的指標としては、例えば診断カバー率が考えられる。診断カバー率Cは以下のような数式で計算することが可能である。
【数1】
【0030】
ここで、Nは診断対象ノードの集合、AVFは、診断対象ノードaに対する定量的影響度、AVFallはニューラルネットワークに含まれる全てのノードのAVFの和を表す。診断カバー率Cは、コアの多重化が維持されるノード(後述の演算コアの他に診断コアが割り当てられるノード)の故障影響度の高さと、多重化が維持されるノードの数に依存する。例えば、コアの多重化が維持されるノードが減ってもそのノードの故障影響度が小さければ、診断カバー率の低下は小さい。言い換えれば、コアの多重化が維持されるノードが減りそのノードの故障影響度が大きいと、診断カバー率の低下は大きい。
【0031】
信頼性判定部10は、導出された信頼性を表す情報である信頼性情報11を外部に送る(例えば、信頼性情報11を表示装置に表示するか、信頼性情報11を監視などの用途に用いる上位のコンピュータシステムに信頼性情報11を送信する)。また、信頼性判定部10は、導出されたシステム信頼性が一定値未満であれば(S205:No)、不安全であると判断して、アクセラレータ装置6の演算を中止させ、システム停止(情報処理装置12Aの動作継続の停止)を行う(S209)。システム停止に代えて、信頼性判定部10は、システム停止の決定を外部(例えば、ユーザ、又は、外部のコンピュータシステム)に通知してもよい。
【0032】
信頼性が一定値以上であれば(S205:Yes)、演算及び診断が実行される(S206)。すなわち、アクセラレータ装置6Aのコントローラ30が、割り当て決定部5からの割り当て結果情報を基に、演算を実行するGPU17Gを特定し、特定されたGPU17Gについて、演算制御情報(例えば、オペランドやデータ)を決定して、決定した演算制御情報を当該GPU17Gに送る。GPU17Gは、演算制御情報に基づいて演算及び診断を実行する。例えば、一つのノードについて、演算機能が割り当てられるコア21である演算コア(例えば主系)と、診断機能がそれぞれ割り当てられる二つ以上のコア21である二つ以上の診断コア(例えば冗長系)とがある。演算コアと二つ以上の診断コアが同一の演算を行い、それぞれの演算結果がメモリ22に格納される。
【0033】
診断情報収集部7は、診断機能が割り当てられたGPU17Gから診断情報を収集する(S207)。診断情報は、同一のノードについて、演算コアと二つ以上の診断コアの各々の演算結果を含んでもよいし、それらの演算結果の比較の結果(例えば、異なる演算結果を出力したコア)を表す情報を含んでもよい。収集は、GPU17Gとの間に結ばれたパス(直接診断情報収集部7へ診断情報を送付するためのパス)を通じて行われてもよいし、メモリ22に格納されている診断情報を診断情報収集部7が読み出す方法により行われてもよい。診断情報収集部7は、収取した診断情報から、故障が発生したコアである故障コアを特定し、故障コアを表す故障コア情報を使用可能リソース特定部9へ送付する。
【0034】
使用可能リソース特定部9は、故障コアがあるか否かを判定する(S208)。例えば、使用可能リソース特定部9は、故障コア有を表す故障コア情報を診断情報収集部7から受けたか否かを判定する。
【0035】
S208の判定結果が偽の場合(S208:No)、処理がS203に戻る。
【0036】
S208の判定結果が真の場合(S208:Yes)、使用可能リソース特定部9は、使用可能コア(ハードウェアリソース)を特定する(S210)。具体的には、使用可能リソース特定部9は、ハードウェアリソース情報8を参照する。ハードウェアリソース情報8は、例えば、外部から入力された情報であり、アクセラレータ装置6Aにおける全コアを表す情報(例えば、いずれのGPU17Gにいずれのコア21が存在するかを表す情報)を含む。使用可能リソース特定部9は、ハードウェアリソース情報8が表すコアのうち、故障コア情報が表す故障コア以外(すなわち、故障が発生していないコア)を、使用可能コアとして特定し、使用可能コアを表す情報を割り当て決定部5に送る。そして、S203が行われる。
【0037】
学習済ニューラルネットワーク1には適宜に情報が入力される。学習済ニューラルネットワーク1に情報が入力される都度に、S203以降が行われる。
【0038】
本実施形態によれば、学習済ニューラルネットワーク1の処理中にコアに故障が発生しても、学習済ニューラルネットワーク1を基に計算されたノード毎の故障影響度を基に、システム信頼性の低下を最小限に抑え、高信頼に情報処理装置12Aの継続動作を実現できる。
[第2の実施形態]
【0039】
第2の実施形態を説明する。その際、第1の実施形態との相違点を主に説明し、第1の実施形態との共通点については説明を省略又は簡略する。
【0040】
本実施形態では、複数種類のハードウェアアクセラレータを用いてニューラルネットワーク演算が行われる。
【0041】
図3は、第2の実施形態に係る情報処理装置の構成例を示す図である。また、図4は、当該情報処理装置の動作フローチャートである。
【0042】
情報処理装置12Bは、アクセラレータ装置6Aに代えてアクセラレータ装置6Bを有する。アクセラレータ装置6Bは、複数種類のハードウェアアクセラレータ17を有する。具体的には、アクセラレータ装置6Bは、GPU17Gの他に、FPGA(Field-Programmable Gate Array)17Fを有する。FPGA17は、回路書き換え部40と、複数の処理回路41を有する。処理回路41として、演算機能が割り当てられる処理回路である演算回路41Pと、診断機能が割り当てられる処理回路である診断回路41Dとがある。FPGA17Fに代えて、他種の機能書き換え可能デバイスがハードウェアアクセラレータ17として備えられてもよいし、ASIC(Application Specific Integrated Circuit)がハードウェアアクセラレータ17として備えられてもよい。
【0043】
情報処理装置12Bは、演算制御部14及び書き換え制御部15を有する。
【0044】
FPGA17Fに書き込まれる回路を表す回路情報13が情報処理装置12Bに入力され記憶される。書き換え制御部15が、回路情報13をFPGA17の回路書き換え部40に入力し、回路書き換え部40が、入力された回路情報13が表す回路をFPGA17に構築するようになっている。回路情報13は、処理回路41毎に演算回路41Pであるか診断回路41Dであるかを表す情報を含んでよい。また、書き換え制御部15は、FPGA17Fに書き込まれる回路を表す回路情報13を割り当て決定部5に入力するようになっている。これにより、書き換え制御部15は、FPGA17Fに書き込まれている回路構成を把握できる。
【0045】
割り当て決定部5は、S205:Yesの後、S203の割り当て後の回路(例えば、処理回路41毎に演算回路41Pであるか診断回路41Dであるか)が、FPGA17Fの最新の回路(例えば、入力された回路情報13が表す回路)と一致しているか否かを判定する(S406)。
【0046】
S406の判定結果が真の場合(S406:Yes)、図2のS206以降が行われる。すなわち、割り当て決定部5は、割り当て結果情報を、演算制御部14に送る。演算制御部14は、割り当て決定部5からの割り当て結果情報を基に、演算を実行するハードウェアアクセラレータ17を特定し、特定されたハードウェアアクセラレータ17について、演算制御情報(例えば、オペランドやデータ)を決定して、決定した演算制御情報を当該ハードウェアアクセラレータ17に送る。ハードウェアアクセラレータ17は、演算制御情報に基づいて演算及び診断を実行する。例えば、一つのノードについて、演算機能が割り当てられる処理回路として演算コア又は演算回路41Pと、診断機能がそれぞれ割り当てられる二つ以上の処理回路である二つ以上の診断コア又は二つ以上の診断回路41Dとがある。このように、演算制御部14は、コントローラ30と同様の処理を行うようになっている。
【0047】
S406の判定結果が偽の異なる場合(S406:No)、回路書き換えが行われる(S411)。すなわち、割り当て決定部5は、割り当ての結果に従う回路変更情報(例えば、割り当てが変更された処理回路と変更後の割り当てとを表す情報)を書き換え制御部15に送る。書き換え制御部15は、回路情報13を読み出し、読み出した回路情報13に、入力された回路変更情報を適用し、割り当て決定後の回路を表す回路情報を、FPGA17Fの回路書き換え部40に入力する。この回路情報に従う書き換えが完了したら、書き換え制御部15は、割り当て決定部5に、FPGA17に入力した回路情報を送る。割り当て決定部5は、その回路情報を保持する。この回路情報が回路情報13に上書きされてもよい。S411の後、S206以降の処理が行われる。
【0048】
本実施形態によれば、複数種類のハードウェアアクセラレータ17を有する情報処理装置12Bにおいてもシステム信頼性の低下を最小限に抑え、高信頼に情報処理装置12Bの継続動作を実現できる。また、複数種類のハードウェアアクセラレータ17が使用されることで、共通原因故障を排除することができ(例えば、GPU17G及びFPGA17Fの一方のハードウェアアクセラレータに共通の故障原因が生じても他方のハードウェアアクセラレータが継続動作することが期待され)、より高い信頼性が期待できる。
【0049】
なお、S411の回路書き換えは、FPGA17全体の回路書き換えでもよいが、本実施形態では、部分書き換え(具体的には、例えば、機能割り当てが変更される処理回路を含んだ回路部分の書き換え)がされてもよい。FPGA1Fの一部を書き換える機能は、パーシャルリコンフィギュレーション(部分再構成)と呼ばれ、FPGAベンダより提供されている機能である。
【0050】
すなわち、GPU17Gが使用される場合、コアに割り当てる機能の変更はプログラムにより可能であり、故に、切り替え時間が短い。一方、FPGA17Fが使用される場合、処理回路に割り当てる機能の変更には実装回路の書き換えが必要であり、切り替え時間がGPU17Gと比較して長い。なお、FPGA17Fに汎用回路を実装してGPU17Gと同様な使い方をすることも可能であるが、アプリケーションに特化した回路を構成して所望の性能を実現できるというFPGA17Fの利点を生かせない。
【0051】
そこで、本実施形態では、書き換え制御部15が、FPGA17Fについて、書き換えが必要な場所を特定し、必要最低限の場所のみを書き換えることで、書き換え時間を最小化する。特に、ニューラルネットワークの演算においては、入力データ(例えばカメラの撮影画像)が異なるだけで同じ演算を毎サイクル行うという特徴がある。したがって、演算回路の数は基本的に変わらない。
【0052】
これにより、FPGA17Fの書き換え時間を短縮し、FPGA17Fの故障発生から復旧までの時間を短縮することができる。
[第3の実施形態]
【0053】
第3の実施形態を説明する。その際、第1及び第2の実施形態との相違点を主に説明し、第1及び第2の実施形態との共通点については説明を省略又は簡略する。
【0054】
本実施形態では、FPGA17Fを用いてニューラルネットワーク演算が行われる。
【0055】
図5は、第3の実施形態に係る情報処理装置の構成例を示す図である。また、図6は、当該情報処理装置の動作フローチャートである。
【0056】
情報処理装置12Cは、アクセラレータ装置6A又は6Bに代えてアクセラレータ装置6Cを有する。アクセラレータ装置6Cは、一つ以上のFPGA17Fである。FPGA17Fは、演算回路41P間の連携のためのスイッチ50と、演算回路41Pと診断回路41D間の連携のためのスイッチ51とを有する。
【0057】
本実施形態では、一部書き換えは、回路の書き換えに代えて又は加えて、配線書き換えを含み、書き換え時間の一層の短縮が期待される。
【0058】
具体的には、割り当て決定部5は、S205:Yesの後、S203の割り当て後の回路が、FPGA17Fの最新の回路と一致しているか否かを判定する(S610)。
【0059】
S610の判定結果が偽の場合(S610:No)、割り当て決定部5は、使用可能リソース特定部9からの情報(例えば、使用可能リソースを表す情報と、故障リソースを表す情報とを含んだ情報)を基に、故障が生じたリソースが診断回路41Dであるか否かを判定する(S611)。
【0060】
S611の判定結果が偽の場合(S611:No)、割り当て決定部5は、書き換え制御部15に、処理回路の書き換えを実行させ(S612)、その後に、配線の書き換えを実行させる(S613)。このS612及びS613は、例えば、処理回路の書き換えの内容と配線の書き換えの内容とを含む回路情報がFPGA17Fの回路書き換え部40に入力されてもよい。また、S611:Noの後のS613は、スイッチ50及び51の配線の書き換えでよい。
【0061】
S611の判定結果が真の場合(S611:Yes)、割り当て決定部5は、書き換え制御部15に、配線の書き換えを実行させる(S613)。S611:Yesの後のS613は、スイッチ51の配線の書き換えでよい。
【0062】
回路書き換え及び配線書き換えの具体例として、一つの演算回路41Paに対して二つの診断回路41Da及び41Dbが存在するケース、つまり、一つのノードにつき処理回路の三重化がされているケースを例に取る。本ケースでは、故障個所は、演算回路41Pa、診断回路41Da又は診断回路41Dbの3通りある。
【0063】
演算回路41Paに故障が発生している場合、演算回路41Paが実行していた演算を診断回路41Da及び41Dbのどれかに割り当てる必要がある。このため、いずれかの診断回路41Dが演算回路41Pに書き換えられる必要がある。この場合、診断回路を演算回路に書き換えることが必要である。
【0064】
一方、診断回路41Da又は41Dbに故障が発生している場合、故障が生じている診断回路41Dの診断機能を別の診断回路41Dに移す必要がある。但し、機能それ自体は変わらないため、診断回路41Dに対する入出力のみの変更で対応が可能である。具体的には、例えば、診断回路41Daで故障が発生している場合、診断回路41Daの入出力につながっていた配線が、別の診断回路41Dの入出力に接続されればよい。
【0065】
以上のように、診断回路41Dで故障が発生しているか否かが判定され、診断回路41Dで故障が発生している場合、配線のみが書き換えられればよい。なお、図5に例示のFPGA17Fの構成や、図6に例示の動作フローチャートは、第2の実施形態に適用されてもよい。
【0066】
上述した第1乃至第3の実施形態の説明を、例えば以下のように総括することができる。以下の総括は、少なくとも一つの実施形態の補足説明又は変形例の説明を含んでもよい。
【0067】
情報処理装置12が、入力された情報の演算に使用されて情報が出力される演算対象を用いた演算をアクセラレータ装置6により行うようになっている。情報処理装置12は、例えば、図7に示すように、インターフェース装置701と、記憶装置702と、アクセラレータ装置6と、それらに接続されたプロセッサ703とを備える。インターフェース装置701を介して、ハードウェアリソース情報8(例えば、アクセラレータ装置6が有する複数の処理回路を表す情報)及び学習済ニューラルネットワーク1(グラフ構造の機械学習モデルの一例)が入力されてよい。また、インターフェース装置701を介して、学習済ニューラルネットワーク1の入力情報(例えば、カメラによる撮影画像)が入力されてよい。また、インターフェース装置701を介して、信頼性情報11(例えば、算出された信頼性を表す情報)が出力されてもよい。情報処理装置12は、いわゆるエッジ機器でもよいし、エッジ機器のようなクライアントと通信するサーバでもよい。情報処理装置12がサーバの場合、物理的な計算機システムとしてのサーバでもよいし、物理的な計算機システム(例えば、複数種類の物理的な計算リソースを含んだクラウド基盤)に基づく論理的な計算機システム(例えば、クラウドコンピューティングサービス)としてのサーバでもよい。また、アクセラレータ装置6は、情報処理装置12に搭載されていてもよいし、情報処理装置12に通信可能に接続されていてもよい。また、アクセラレータ装置6は、一つ又は複数のハードウェアアクセラレータ17でもよいし、一つ又は複数のハードウェアアクセラレータ17が搭載されたパッケージとしての装置でもよい。また、記憶装置702に、上述のハードウェアリソース情報8、学習済ニューラルネットワーク1、故障影響度3、信頼性情報11、割り当て結果情報、診断情報及び診断ノード情報の少なくとも一部が格納されてもよい。プロセッサ703がコンピュータプログラムを実行することにより、影響度計算部2、優先度決定部4、割り当て決定部5、信頼性判定部10、診断情報収集部7、使用可能リソース特定部9、演算制御部14及び書き換え制御部15の少なくとも一つの機能が実現されてよい。
【0068】
情報処理装置12が、割り当て決定部5と、信頼性判定部10とを備える。演算対象(上述の例では学習済ニューラルネットワーク1)が使用される情報が入力される都度に、下記が行われる。
・割り当て決定部5が、演算対象における複数の演算要素(例えば、複数のノード)の各々について、当該演算要素の演算結果の正確性が演算対象の出力情報の正確性に影響する度合である故障影響度を基に、当該演算要素に、アクセラレータ装置6の複数の処理回路から、演算のための使用可能な処理回路である演算回路の他に、演算の正確性診断のための使用可能な処理回路である一つ以上の診断回路を割り当てるかを決定する。なお、「処理回路」は、例えば、コア21や処理回路41である。「演算回路」は、演算機能が割り当てられた処理回路である。「診断回路」は、診断機能が割り当てられた回路である。
・信頼性判定部10が、演算対象における演算要素の数と、少なくとも一つの診断回路が割り当てられた演算要素の数と、演算要素の故障影響度とに基づき、情報処理装置12の動作を継続するか否かの判断に用いられる情報処理装置12の信頼性(例えば、上述の診断カバー率C)を算出する。
【0069】
割り当て決定部5が行う処理の別の表現は、各演算要素の故障影響度を基に、当該演算要素の演算冗長性“n”(nは整数)を制御することでよい。n=0であれば、診断回路は割り当てられない。言い換えれば、nと同数の診断回路が割り当てられる。故障が発生している処理回路は、演算要素について(n+1)の演算結果を比較することにより特定することが可能である。例えば、いずれか一つの演算結果が他の二つ以上の演算結果と異なる場合、当該一つの演算結果を算出した処理回路に故障が発生していると判断することができる。
【0070】
このように、演算要素の故障影響度によって当該演算要素の演算冗長性が制御されるので、故障影響度の小さい演算要素については診断回路が割り当てられなくても信頼性を一定値以上に維持できる可能性があり、故に、アクセラレータ装置6が大型にならないように情報処理装置12の信頼性と動作継続性とを両立することができる。
【0071】
なお、上述の実施形態では、信頼性判定部10が、算出した信頼性が一定値以上か否かを判定し、当該判定の結果に応じて動作継続か動作停止かを制御するが、算出した信頼性が一定値以上か否かの判定、及び、当該判定の結果に応じて動作継続か動作停止かを制御することは、情報処理装置12の外部(例えば、ユーザによる手動操作、又は、上位システム)により行われてもよい。例えば、情報処理装置12は、車両の自動運転制御を行う装置でもよいし、自動運転制御を行う上位システムに接続された装置でもよい。例えば、信頼性判定部10は、信頼性が第1の値(上述の一定値の一例)以上であるが第2の値未満の場合、信頼性が第2の値以上の場合に行っていた自動操作の対象の一部の対象を手動操作の対象に変更してもよい。インターフェース装置701には、表示装置が接続されていてもよく、信頼性判定部10は、信頼性情報11が表す信頼性を表示装置に表示してもよいし、或いは、算出した信頼性に応じた自動操作の内容を表示装置に表示してもよい。
【0072】
割り当て決定部5は、演算要素の故障影響度の高さに基づく演算要素順に、少なくとも演算回路を含む一つ以上の使用可能な処理回路を演算要素に割り当ててよい。これにより、数に限りがある使用可能な処理回路を、演算要素の故障影響度の高さに基づき効率的に割り当てることができる。
【0073】
情報処理装置12の動作継続が決定された場合、複数の演算要素の各々について、下記が行われてよい。これにより、アクセラレータ装置6の最新の状態(いずれの処理回路に故障が発生しているか)に応じて処理回路を演算要素に割り当てることができる。
・複数の演算要素の各々について、当該演算要素に割り当てられた一つ以上の処理回路の各々による、当該演算要素の処理。
・一つ以上の診断回路が割り当てられた演算要素毎に、演算回路と一つ以上の診断回路の処理結果から、当該演算回路及び一つ以上の診断回路の少なくとも一つに故障が発生しているか否かを判断すること。
【0074】
情報処理装置12が、書き換え制御部15を更に備えてよく、一つ又は複数のハードウェアアクセラレータの少なくとも一つは、FPGA17F(回路書き換え可能なハードウェアアクセラレータ(例えばPGA(Programmable Gate Array))の一例)でよい。FPGA17Fの現在の回路構成(例えば、診断回路の数)が、割り当て決定部5による割り当ての結果としての回路構成(例えば、診断回路の数)と異なっている場合、書き換え制御部15が、当該回路構成の差分についての回路書き換え(処理回路それ自体の書き換えと処理回路間の配線の書き換えとの少なくとも一方)をFPGA17Fに指示してよい。この指示に応答して、FPGA17による回路書き換えが実行される。その後に、動作継続(例えばS206以降)が可能となる。これにより、回路書き換えに要する時間を最小限にし、以って、回路書き換え完了待ちによる情報処理の遅延を低減することができる。
【0075】
具体的には、例えば、下記の少なくとも一つが行われてよい。これにより、故障が発生している処理回路が演算回路であるか診断回路であるかに応じて、回路書き換えに要する時間を最適にすることが期待できる。
・書き換え制御部15は、演算回路に故障が発生していれば、いずれかの診断回路を演算回路に書き換えることと(FPGA17Fの現在の回路構成では演算回路が減っているが割り当ての結果としては演算回路の数が維持されているため)、処理回路間の配線を書き換えることとを、FPGA17Fに指示する。
・書き換え制御部15は、診断回路に故障が発生していれば、処理回路間の配線を書き換えることを、回路書き換え可能なハードウェアアクセラレータに指示し、処理回路の書き換えを、前記回路書き換え可能なハードウェアアクセラレータに指示しない。
【0076】
演算対象の一例は、学習済ニューラルネットワーク1でよい。ニューラルネットワーク1は、例えば、入力層(複数の入力ノード)と、中間層(複数の中間ノード)と、出力層(複数の出力ノード)と、複数の重みパラメータ、複数のバイアスパラメータと、を含んでよい。影響度計算部2が、重みパラメータ又はバイアスパラメータに基づいて、各中間ノードから各出力ノードへの影響度を計算してよい。その計算結果を表す情報が故障影響度3でよい。
【0077】
また、ニューラルネットワーク1に代えて、複数のノードを有するグラフ構造の他種の機械学習モデル(例えば、決定木)が採用されてもよい。また、演算要素毎の故障影響度を表す故障影響度3は、影響度計算部2により生成されることに代えて、外部から入力された情報でもよい。
【符号の説明】
【0078】
1…学習済ニューラルネットワーク、2…影響度計算部、3…故障影響度、4…優先度決定部、5…割り当て決定部、6…アクセラレータ装置、7…診断情報収集部、8…ハードウェアリソース情報、9…使用可能リソース特定部、10…信頼性判定部、11…信頼性情報、12…情報処理装置、17…ハードウェアアクセラレータ
図1
図2
図3
図4
図5
図6
図7