JP6617844B6 - 情報処理システム、情報処理装置及びプログラム - Google Patents

情報処理システム、情報処理装置及びプログラム Download PDF

Info

Publication number
JP6617844B6
JP6617844B6 JP2019023894A JP2019023894A JP6617844B6 JP 6617844 B6 JP6617844 B6 JP 6617844B6 JP 2019023894 A JP2019023894 A JP 2019023894A JP 2019023894 A JP2019023894 A JP 2019023894A JP 6617844 B6 JP6617844 B6 JP 6617844B6
Authority
JP
Japan
Prior art keywords
inference
processing device
inference processing
failure
occurred
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.)
Expired - Fee Related
Application number
JP2019023894A
Other languages
English (en)
Other versions
JP2020135060A (ja
JP6617844B1 (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.)
Fujitsu Client Computing Ltd
Original Assignee
Fujitsu Client Computing 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 Fujitsu Client Computing Ltd filed Critical Fujitsu Client Computing Ltd
Priority to JP2019023894A priority Critical patent/JP6617844B6/ja
Application granted granted Critical
Publication of JP6617844B1 publication Critical patent/JP6617844B1/ja
Priority to GB2000383.6A priority patent/GB2584516A/en
Publication of JP6617844B6 publication Critical patent/JP6617844B6/ja
Priority to US16/750,438 priority patent/US20200257993A1/en
Priority to CN202010076708.0A priority patent/CN111563594A/zh
Publication of JP2020135060A publication Critical patent/JP2020135060A/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control functionality
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0208Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
    • G05B23/0213Modular or universal configuration of the monitoring system, e.g. monitoring system having modules that may be combined to build monitoring program; monitoring system that can be applied to legacy systems; adaptable monitoring system; using different communication protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/041Abduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • 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
    • G06N3/045Combinations of networks
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Abstract

【課題】推論処理に係る可用性を向上させることが可能な情報処理システム、情報処理装置及びプログラムを提供する。
【解決手段】情報処理装置は、複数の推論処理装置と、処理内容が異なる推論処理を推論処理装置の各々に実行させ、前段の推論処理装置で行われた推論処理の推論結果を用いて、後段の推論処理装置が推論処理を行うよう推論処理装置の入出力を制御する制御部と、障害が発生した推論処理装置を検出する障害検出部と、障害検出部で障害の発生が検出された場合に、障害が発生した推論処理装置で実行されていた推論処理を、推論処理装置以外の他の推論処理装置に実行させる第1障害対応部と、障害が発生した推論処理装置の前段の推論処理で導出された推論結果を他の推論処理装置に入力し、推論結果に基づく他の推論処理装置の推論結果を、障害が発生した推論処理装置の後段の推論処理装置に出力する第2障害対応部と、を備える。
【選択図】図2

Description

本発明は、情報処理システム、情報処理装置及びプログラムに関する。
予め機械学習により生成された学習済みモデルを有する推論処理装置では、その学習済みモデルを用いて様々な推論処理を行うことがある。
また、上記の推論処理に関し、例えば、複数の推論処理装置を並列接続し、前段の推論処理装置で行われた推論処理の結果を用いて後段の推論処理装置が推論処理を行う、パイプライン処理型の装置構成が存在する。
特開2018−120547号公報
しかしながら、上記したパイプライン処理型の装置構成では、複数段に亘る推論処理のうち何れかの段階で障害が発生すると、一連する推論処理が途中で中断されてしまうことになる。そのため、最終結果となる推論結果を出力することができず、可用性に欠けるという問題がある。
開示の技術は、上記に鑑みてなされたものであって、推論処理に係る可用性を向上させることが可能な情報処理システム、情報処理装置及びプログラムを提供することを目的とする。
本発明の第1態様に係る情報処理システムは、複数の推論処理装置と、制御部と、第1障害対応部と、第2障害対応部とを備える。制御部は、処理内容が異なる推論処理を前記推論処理装置の各々に実行させ、前段の推論処理装置で行われた推論処理の推論結果を用いて、後段の推論処理装置が推論処理を行うよう前記推論処理装置の入出力を制御する。障害検出部は、障害が発生した前記推論処理装置を検出する。第1障害対応部は、前記障害検出部で障害の発生が検出された場合に、障害が発生した前記推論処理装置で実行されていた推論処理を、当該推論処理装置以外の他の推論処理装置に実行させる。第2障害対応部は、障害が発生した前記推論処理装置の前段の推論処理で導出された推論結果を前記他の推論処理装置に入力し、当該推論結果に基づく前記他の推論処理装置の推論結果を、障害が発生した前記推論処理装置の後段の前記推論処理装置に出力する。また、第2障害対応部は、前記他の推論処理装置の推論結果が出力された後、障害が発生した前記推論処理装置の前段の前記推論処理装置の出力先を、前記他の推論処理装置に設定する。
本発明の第2態様に係る情報処理装置は、複数の推論処理装置と接続可能な情報処理装置であって、制御部と、障害検出部と、第1障害対応部と、第2障害対応部とを備える。制御部は、処理内容が異なる推論処理を前記推論処理装置の各々に実行させ、前段の推論処理装置で行われた推論処理の推論結果を用いて、後段の推論処理装置が推論処理を行うよう前記推論処理装置の入出力を制御する。障害検出部は、障害が発生した前記推論処理装置を検出する。第1障害対応部は、前記障害検出部で障害の発生が検出された場合に、障害が発生した前記推論処理装置で実行されていた推論処理を、当該推論処理装置以外の他の推論処理装置に実行させる。第2障害対応部は、障害が発生した前記推論処理装置の前段の推論処理で導出された推論結果を前記他の推論処理装置に入力し、当該推論結果に基づく前記他の推論処理装置の推論結果を、障害が発生した前記推論処理装置の後段の前記推論処理装置に出力する。また、第2障害対応部は、前記他の推論処理装置の推論結果が出力された後、障害が発生した前記推論処理装置の前段の前記推論処理装置の出力先を、前記他の推論処理装置に設定する。
本発明の第3態様に係るプログラムは、複数の推論処理装置と接続可能な情報処理装置のコンピュータを、処理内容が異なる推論処理を前記推論処理装置の各々に実行させ、前段の推論処理装置で行われた推論処理の推論結果を用いて、後段の推論処理装置が推論処理を行うよう前記推論処理装置の入出力を制御する制御部と、障害が発生した前記推論処理装置を検出する障害検出部と、前記障害検出部で障害の発生が検出された場合に、障害が発生した前記推論処理装置で実行されていた推論処理を、当該推論処理装置以外の他の推論処理装置に実行させる第1障害対応部と、障害が発生した前記推論処理装置の前段の推論処理で導出された推論結果を前記他の推論処理装置に入力し、当該推論結果に基づく前記他の推論処理装置の推論結果を、障害が発生した前記推論処理装置の後段の前記推論処理装置に出力する第2障害対応部と、して機能させる。また、第2障害対応部は、前記他の推論処理装置の推論結果が出力された後、障害が発生した前記推論処理装置の前段の前記推論処理装置の出力先を、前記他の推論処理装置に設定する。
図1は、実施形態に係る情報処理システムのハードウェア構成の一例を示す図である。 図2は、実施形態に係る情報処理装置及び推論処理装置の機能構成の一例を示す図である。 図3は、実施形態に係る途中結果のデータフォーマットの一例を示す図である。 図4は、実施形態の障害対応処理部によって実行される障害対応処理の一例を示すフローチャートである。 図5は、実施形態に係る情報処理システムの正常動作時の入出力状態の一例を模式的に示す図である。 図6は、実施形態に係る情報処理システムの障害発生時の入出力状態の一例を模式的に示す図である。 図7は、変形例1に係る情報処理システムの正常動作時の入出力状態の一例を模式的に示す図である。 図8は、変形例1に係る情報処理システムの障害発生時の入出力状態の一例を模式的に示す図である。 図9は、変形例2に係る情報処理システムの正常動作時の入出力状態の一例を模式的に示す図である。 図10は、変形例2に係る情報処理システムの障害発生時の入出力状態の一例を模式的に示す図である。
以下に、本願の開示する情報処理システム、情報処理装置及びプログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により開示技術が限定されるものではない。また、実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略される。
図1は、実施形態に係る情報処理システム1のハードウェア構成の一例を示す図である。図1に示すように、情報処理システム1は、情報処理装置100、中継装置200、推論処理装置300−1〜300−4を有する。ここで、推論処理装置300−1〜300−3は、通常時に使用される稼働系の推論処理装置であり、後述する推論処理等を実行する。一方、推論処理装置300−4は、通常時には使用されない待機系の推論処理装置である。以下では、稼働系の推論処理装置300−1〜300−3を、総称して推論処理装置300と表記する場合がある。また、後述する変換ボード301−1〜301−4、コプロセッサ302−1〜302−4、モデルファイル304−1〜304−3等についても同様に総称して表記する場合がある。
情報処理装置100は、マザーボード101、メインプロセッサ102、ディスプレイ(Display)103、USB(Universal Serial Bus)インタフェース104、イーサネット(登録商標)(Ethernet)インタフェース105、DIMM(Dual Inline Memory Module)106、SSD(Solid State Drive)107、HDD(Hard Disk Drive)108、及びTPM(Trusted Platform Module)109を有する。
マザーボード101は、情報処理装置100の主機能を担う部品が装着された基板である。メインプロセッサ102は、情報処理装置100の主機能を担うプロセッサであり。メインプロセッサ102は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等の電子回路を採用できる。ディスプレイ103は、各種の情報を表示する表示部として機能する。
USBインタフェース104は、USBデバイスが接続可能であり、USBデバイスとメインプロセッサ102との通信を媒介可能である。本実施形態の情報処理システム1では、USBデバイスの一例であるカメラ400が、USBインタフェース104に接続される。カメラ400で撮像された画像データ(以下、カメラ画像)が、USBインタフェース104を介して、情報処理装置100に入力される。
イーサネットインタフェース105は、イーサネットケーブルが接続可能であり、イーサネットケーブルを介した外部機器とメインプロセッサ102との通信を媒介可能である。DIMM107は、各種の情報を一時記憶可能なRAM(Random Access Memory)などの揮発性の記憶媒体である。SSD107及びHDD108は、各種の情報を電源断後も記憶可能な不揮発性の記憶媒体である。SSD107及びHDD108は、メインプロセッサ102が実行する各種のプログラムや、後述するモデルファイル304及び推論処理接続設定情報D1等、各種の情報を記憶する。TPM109は、システムのセキュリティ機能を実現するモジュールである。
中継装置200は、ブリッジボード201及びブリッジコントローラ202を有する。ブリッジボード201は、例えばPCIe(PCI Express:ピーシーアイエクスプレス)等のバス(例えば、拡張バス)又はI/Oインタフェースを含み、ブリッジコントローラ202が搭載されるための基板である。ブリッジコントローラ202は、情報処理装置100に対して複数の推論処理装置300をブリッジ接続しており、情報処理装置100及び複数の推論処理装置300の間の通信を媒介(中継)する。
推論処理装置300−1〜300−4は、互いに並列して中継装置200に接続されている。各推論処理装置300−1〜300−4は、変換ボード(conv.ボード)301−1〜301−4及びコプロセッサ302−1〜302−4を有する。変換ボード301は、アクセラレータボードとも呼ばれ、情報処理システム1の処理能力を高めるために、追加して利用するハードウェアが搭載された基板である。
コプロセッサ302は、AI(Artificial Intelligence)推論処理や画像処理等の演算処理に適したプロセッサである。コプロセッサ302は、GPU(Graphics Processing Unit)や専用チップなどのアクセラレータ等を採用できる。また、コプロセッサ302は、CPU及びGPUの組み合わせであってもよい。
AI推論処理は、人工知能(AI)を用いた推論処理であり、多層構造のニューラルネットワーク(階層ニューラルネットワーク)を用いた推論モデルによる推論処理を含む。推論処理装置300は、階層ニューラルネットワークを用いた推論モデルに対して機械学習を行うことで生成された学習済み推論モデルとして、モデルファイル304−1〜303−3をSSD107等の不揮発性の記憶媒体に保持する。コプロセッサ302は、モデルファイル304をロードすることで、ロードしたモデルファイル304に基づく推論処理を実行する。
次に、図2を参照して、上述した情報処理装置100及び推論処理装置300の機能構成について説明する。ここで、図2は、情報処理装置100及び推論処理装置300の機能構成の一例を示す図である。
情報処理装置100は、機能構成として、カメラ画像取得部110及びシステム制御部120を有する。情報処理装置100の各機能構成は、例えばメインプロセッサ102内で機能的に構成され得る。
カメラ画像取得部110は、カメラ400で撮像されたカメラ画像を取得する。また、カメラ画像取得部110は、取得したカメラ画像をDIMM106等の記憶媒体に一時記憶させる。
システム制御部120は、推論処理装置300の動作を統括的に制御する。具体的には、システム制御部120は、推論処理制御部121と、入出力制御部122と、途中結果取得部123と、障害検出部124と、障害対応処理部125とを備える。ここで、推論処理制御部121及び入出力制御部122は、制御部の一例である。また、障害検出部124また、障害検出部の一例である。また、障害対応処理部125は、第1障害対応部及び第2障害対応部の一例である。なお、これらの機的構成は、メインプロセッサ102がSSD107又はHDD108に記憶されたプログラムを実行した結果として実現されるソフトウェア構成であってもよいし、メインプロセッサ102等が備える専用回路等によって実現されるハードウェア構成であってもよい。
推論処理制御部121は、推論処理装置300の各々で実行される推論処理を制御する。具体的には、推論処理制御部121は、例えば情報処理システム1の起動時等において、SSD107等の記憶媒体からモデルファイル304−1〜304−3を読み出し、ブリッジコントローラ202経由で所定の推論処理装置300にロードさせる。
ここで、モデルファイル304の各々と、当該モデルファイル304のロード先となる推論処理装置300との関係は、推論処理接続設定情報D1に設定されている。例えば、本実施形態の場合、推論処理接続設定情報D1には、モデルファイル304−1のロード先が推論処理装置300−1であり、モデルファイル304−2のロード先が推論処理装置300−2であり、モデルファイル304−3のロード先が推論処理装置300−3であることが設定されている。
推論処理制御部121は、推論処理接続設定情報D1の設定内容に基づき、モデルファイル304の各々を対応する推論処理装置300にロードさせる。なお、システム制御部120は、モデルファイル304とともに、ミドルウェア305も推論処理装置300にロードさせる構成としてもよい。
一方、推論処理装置300は、図2に示すように、推論アプリケーション303、モデルファイル304、ミドルウェア305、ドライバ306、ホストOS(Operating System)307を有する。
推論アプリケーション303は、仮想環境技術等を用いることで、システム制御部120からロードが指示されたモデルファイル304をロードする。また、推論アプリケーション303は、推論処理装置300の起動時に、モデルファイル304の初期化を行う。推論処理装置300(コプロセッサ302)は、推論アプリケーション303及びミドルウェア305等と協働し、ロードされたモデルファイル304を用いることで、所定の推論処理を実行することが可能となる。
ここで、モデルファイル304−1〜304−3は、処理内容が互いに異なる推論処理に対応している。具体的には、モデルファイル304−1〜304−3のロードにより実行可能となる推論処理は、シーケンシャルに実行され、前段の推論処理で出力される推論結果を用いて、後段の推論処理が推論結果を出力するよう構成されている。なお、処理内容は、全てが異なっている必要はなく、少なくとも一部の推論処理が異なっていればよい。
例えば、カメラ画像から人物を検出し、当該人物の年齢及び性別を判別するシステムの場合、モデルファイル304−1〜304−3の各々は、以下の推論処理に対応する。まず、モデルファイル304−1は、カメラ画像から人物が存在する領域を抽出(推論)する推論処理(以下、人物抽出推論処理)に対応する。モデルファイル304−2は、推論された人物の外観的特徴から当該人物の年齢を推論する推論処理(以下、年齢推論処理)に対応する。モデルファイル304−3は、推論された人物の外観的特徴及び年齢から当該人物の性別を推論する推論処理(性別推論処理)に対応する。
より詳細には、人物抽出推論処理では、カメラ画像及び当該カメラ画像を識別する画像識別子を入力とし、カメラ画像に表された人物を認識(推論)すると、その人物の存在位置を表す位置情報(例えば、カメラ画像上での座標等)を抽出する。そして、人物抽出推論処理では、抽出した人物毎に、その人物を識別する人物識別子、当該人物の位置情報、及び推論結果の信頼度等を対応付けた推論結果を、画像識別子とともに第1推論結果として出力する。なお、人物抽出推論処理では、入力されたカメラ画像を第1推論結果とともに出力する構成としてもよい。
また、年齢推論処理では、カメラ画像、第1推論結果を入力とし、第1推論結果で指示された各人物の位置情報に基づき、カメラ画像に表された人物の外観的な特徴等から当該人物の年齢を推論する。そして、年齢推論処理では、人物(人物識別子)毎に、推論した年齢、及び推論結果の信頼度等を対応付けた推論結果を、画像識別子及び第1推論結果とともに第2推論結果として出力する。なお、年齢推論処理では、入力されたカメラ画像を第2推論結果とともに出力する構成としてもよい。
また、性別推論処理では、カメラ画像、第2推論結果を入力とし、第2推論結果で指示された各人物の位置情報及び年齢に基づき、カメラ画像に表された人物の外観的な特徴等から当該人物の性別を推論する。そして、性別推論処理では、人物(人物識別子)毎に、推論した性別、及び推論結果の信頼度等を対応付けた推論結果を、画像識別子及び第2推論結果とともに出力する。この場合、性別推論処理が出力する第3推論結果が、一連する推論処理の最終的な推論結果となる。なお、性別推論処理は、入力されたカメラ画像を第3推論結果とともに出力する構成としてもよい。
入出力制御部122は、各推論処理装置300の入出力を制御する。具体的には、入出力制御部122は、推論処理接続設定情報D1に基づき、推論処理装置300の各々で実行される推論処理の入出力を制御する。
例えば、上述したカメラ画像から抽出した人物の年齢及び性別を推論するような場合、入出力制御部122は、カメラ画像の入力先を、モデルファイル304−1のロード先の推論処理装置300−1(人物抽出推論処理)に設定する。また、入出力制御部122は、推論処理装置300−1(人物抽出推論処理)の出力先を、モデルファイル304−2のロード先の推論処理装置300−2(年齢推論処理)に設定する。また、入出力制御部122は、推論処理装置300−2(年齢推論処理)の出力先を、モデルファイル304−3のロード先の推論処理装置300−3(性別推論処理)に設定する。そして、入出力制御部122は、推論処理装置300−3(性別推論処理)の出力先をシステム制御部120に設定する。
これにより、推論処理装置300−1〜300−3では、前段の推論処理で出力された推論結果を用いて、後段の推論処理が推論結果を出力する、パイプライン処理型の推論処理システムが実現されることになる。
ところで、上述したパイプライン処理型の構成では、複数段に亘る推論処理のうち、何れか一の段階の推論処理(推論処理装置300)で障害が発生すると、一連する推論処理が途中で中断されてしまうため、最終結果となる第3推論結果を出力することができず、可用性に欠けるという問題がある。
そこで、本実施形態のシステム制御部120では、推論処理装置300−1〜300−3の何れか一つに障害が発生した場合に、障害発生により中断した推論処理装置300の推論処理を、待機系の推論処理装置300−4に引き継がせる。
具体的には、システム制御部120は、途中結果取得部123、障害検出部124及び障害対応処理部125の機能により、中断した推論処理を待機系の推論処理装置300−4に引き継がせるための処理を実現する。以下、途中結果取得部123、障害検出部124及び障害対応処理部125について説明する。
途中結果取得部123は、各段階の推論処理で出力される推論結果を取得し、途中結果としてSSD107等の記憶装置に一時記憶する。具体的には、途中結果取得部123は、推論処理装置300−1(人物抽出推論処理)から出力される第1推論結果と、推論処理装置300−2(年齢推論処理)から出力される第2推論結果とをそれぞれ取得し、途中結果として記憶装置に保存する。
ここで、途中結果には、各段階の推論処理で導出された推論結果が含まれる。例えば、第1推論結果には、人物抽出推論処理で推論(抽出)された各人物を識別する人物識別子、当該人物のカメラ画像内での位置情報、推論結果の信頼度等が含まれる。第2推論結果には、第1推論結果の内容に加え、年齢推論処理で推論された各人物の年齢、推論結果の信頼度等が含まれる。これらの第1推論結果及び第2推論結果は、処理対象となった共通のカメラ画像を識別する画像識別子に対応付けて出力される。
図3は、途中結果のデータフォーマットの一例を示す図である。なお、図3は、第2推論結果の一例である。
図3において、途中結果は、先頭と末尾の角括弧“[]”で規定される領域A1内に記録される。領域A1は、波括弧“{}”で規定される領域A2を一又は複数含み、カメラ画像毎の途中結果が領域A2内に記録される。
領域A2には、カメラ画像を識別するための画像識別子A21(#001、#002)が含まれる。また、領域A2は、角括弧“[]”で規定された領域A3を含む。また、領域A2には、推論処理装置300での推論処理が完了した処理日時A22と、途中結果取得部123がこの途中結果を取得した受信日時A23とが記録される。本例の場合、処理日時A22は、推論処理装置300−2で年齢推論処理が完了した日時となる。
領域A3は、波括弧“{}”で規定された領域A4を一又は複数含む。領域A4は、画像識別子A21のカメラ画像から抽出(推論)された人物毎に生成され、人物毎の途中結果(推論結果)が記録される。
領域A4には、抽出された各人物を識別するための人物識別子A41(#01、#02等)が記録される。また、領域A4内には、人物識別子A41について推論された第1推論結果及び第2推論結果の内容が記録される。具体的には、領域A4内には、人物抽出推論処理の推論結果(第1推論結果)に対応する、人物の位置情報A42と、その信頼度A43とが含まれる。また、領域A4内には、年齢推論処理の推論結果に対応する、人物の年齢A44と、その信頼度A45とが含まれる。
このように、図3に示すデータフォーマットの途中結果では、カメラ画像や人物に係る項目は入れ子状に記録され、第2推論結果が第1推論結果を包含する形態となる。
なお、途中結果が第1推論結果の場合には、領域A4内の項目は、人物識別子A41、位置情報A42及び信頼度A43となり、年齢A44及び信頼度A45はヌルとなる。また、この場合、処理日時A22は、推論処理装置300−1で人物抽出推論処理が完了した日時となる。
また、推論処理装置300−3の推論処理(性別推論処理)で出力される最終的な推論結果(第3推論結果)についても、上記と同様のフォーマットで出力する構成としてもよい。この場合、第3推論結果は、第1推論結果及び第2推論結果を包含した状態で、該当する人物(人物識別子)の領域A4内に記録されることになる。
また、図3のデータフォーマットでは、複数のカメラ画像の途中結果とまとめて記録可能な例を説明したが、カメラ画像毎に途中結果を記録する形態としてもよい。この場合、例えば、領域A1に含まれる領域A2は単一となる。
また、図3のデータフォーマットでは、第1推論結果は第2推論結果に包含される形態としたが、これに限らず、第1推論結果と第2推論結果とを独立したデータとして出力してもよい。また、第3推論結果についても、第1推論結果及び第2推論結果と独立したデータとして出力してもよい。この場合、第1推論結果〜第3推論結果の各々は、画像識別子及び人物識別子を共通要素として含み、各々の推論処理で得られた推論結果を含むものになる。
図2に戻り、障害検出部124は、推論処理装置300−1〜300−3を監視し、障害が発生した推論処理装置300を検出する。ここで、障害の検出方法は特に問わず、種々の方法を採用することが可能である。
例えば、障害検出部124は、推論処理装置300−1〜300−3の各々から障害発生の通知を受けることで、障害が発生した推論処理装置300を検出してもよい。また、例えば、障害検出部124は、途中結果に記録された処理日時に基づき、障害が発生した推論処理装置300を検出してもよい。この場合、障害検出部124は、途中結果に記録された処理日時から、所定時間(例えば1分)以上経過しても、次段の推論処理装置300から推論結果が出力されないことを検出した場合に、次段の推論処理装置300に障害が発生したと判断してもよい。
障害対応処理部125は、障害検出部124で障害が検出された場合に、障害が発生した推論処理装置300で実行されていた推論処理を、害が発生した推論処理装置300以外の他の推論処理装置に引き継がせるための障害対応処理を実行する。
具体的には、障害対応処理部125は、障害検出部124で障害の発生が検出されると、入出力制御部122と協働し、全体の推論処理を停止させる。例えば、障害対応処理部125は、システム制御部120からのカメラ画像の出力先や、推論処理装置300の出力先をヌルに設定することで、推論処理装置300の入出力を停止させる。
また、障害対応処理部125は、推論処理接続設定情報D1に基づき、障害が発生した推論処理装置300の前段の推論処理装置300を特定する。例えば、推論処理装置300−3で障害の発生が検出された場合、障害対応処理部125は、モデルファイル304のロードによって実現される推論処理の順序に基づき、前段の推論処理装置300が推論処理装置300−2であると特定する。
次いで、障害対応処理部125は、推論処理制御部121と協働し、待機系の推論処理装置300−4を新規推論処理装置として起動させると、新規推論処理装置に対し、障害が発生した推論処理装置300でロードされていたモデルファイル304をロードさせる。これにより、新規推論処理装置では、ロードされたモデルファイル304に対応する推論処理が設定される。なお、「新規推論処理装置」は、障害が発生した推論処理装置300以外の「他の推論処理装置」に対応する概念である。
次いで、障害対応処理部125は、障害が発生した推論処理装置300の前段の推論処理装置300の途中結果が保存されているか否かを確認する。ここで、途中結果が保存されている場合、障害対応処理部125は、入出力制御部122と協働することで、システム制御部120からの入力先を新規推論処理装置に設定するとともに、新規推論処理装置の出力先を、障害が発生した推論処理装置300の後段の推論処理装置300に設定する。
なお、障害が発生した推論処理装置300が、最後段の推論処理装置300(本実施形態では、推論処理装置300−3)の場合には、新規推論処理装置の出力先を、システム制御部120に設定する。
次いで、障害対応処理部125は、カメラ画像(画像識別子)と、該当する途中結果とを新規推論処理装置に送信(入力)する。新規推論処理装置では、カメラ画像及び途中結果の入力に伴い推論処理を実行し、その推論結果を後段の推論処理装置300又はシステム制御部120に出力する。また、障害対応処理部125は、新規推論処理装置より後段の推論処理装置300の入出力を再開させる。これにより、システム制御部120は、障害の発生により中断されていた推論処理の最終結果(第3推論結果)を取得することができる。
次いで、障害対応処理部125は、次以降のカメラ画像を処理するため、新規推論処理装置を含めた推論処理装置300の全体で、一連する推論処理が実行できるよう入出力設定を更新する。具体的には、障害対応処理部125は、障害が発生した推論処理装置300の前段の推論処理装置300の出力先を新規推論処理装置に設定する。また、新規推論処理装置の出力先を、障害が発生した推論処理装置300の後段の推論処理装置300に設定する。また、障害対応処理部125は、カメラ画像(画像識別子)の入力先を、モデルファイル304−1のロード先に設定する。そして、障害対応処理部125は、更新後の状態を推論処理接続情報に反映する。
なお、障害が発生した推論処理装置300が、推論処理装置300−1の場合には、障害対応処理部125は、カメラ画像(画像識別子)の入力先を新規推論処理装置に設定する。
次いで、障害対応処理部125は、入出力制御部122と協働し、更新後の推論処理接続情報に基づいた入出力経路で、全体の推論処理を再開させる。
このように、障害対応処理部125は、推論処理装置300の何れかで障害が発生すると、障害が発生した推論処理装置300で行われていた推論処理を、新規推論処理装置に設定する。また、障害対応処理部125は、障害が発生した推論処理装置300の前段の推論処理装置300で導出された推論結果(途中結果)を、新規推論処理装置に入力することで、中段されていた推論処理を継続して実行させる。そして、障害対応処理部125は、中段されていた推論処理が完了すると、全体の推論処理の入出力を更新することで、新規推論処理装置を稼働系の推論処理装置300とする。
なお、障害対応処理部125は、新規推論処理装置による推論処理の完了に伴い、処理されたカメラ画像(画像識別子)に係る途中結果を削除する形態としてもよい。
次いで、図4を参照して、上述した障害対応処理部125の動作について説明する。図4は、障害対応処理部125によって実行される障害対応処理の一例を示すフローチャートである。
まず、障害対応処理部125は、障害検出部124により障害の発生が検出されたか否かを判定する(ステップS11)。ここで、障害の発生が検出されない場合は(ステップS11;No)、稼働系の推論処理装置300による通常の推論処理(カメラ画像取得部110によるカメラ画像の保存、及び途中結果取得部123による途中経過の保存)が行われるものとする。
ステップS11で、障害の発生が検出されると(ステップS11;Yes)、障害対応処理部125は、入出力制御部122と協働し、全体の推論処理を停止させる(ステップS13)。
続いて、障害対応処理部125は、推論処理接続設定情報D1に基づき、障害が発生した推論処理装置300の前段の推論処理装置300を特定する(ステップS14)。次いで、障害対応処理部125は、新規推論処理装置(推論処理装置300−4)を起動させると(ステップS15)、推論処理制御部121と協働することで、障害が発生した推論処理装置300で実行されていた推論処理を新規推論処理装置に設定する(ステップS16)。
続いて、障害対応処理部125は、障害が発生した推論処理装置300の前段の推論処理装置300の途中結果が保存されているか否かを確認する(ステップS17)。途中結果が保存されている場合(ステップS17;Yes)、障害対応処理部125は、入出力制御部122と協働することで、新規推論処理装置の入出力を設定する(ステップS18)。
続いて、障害対応処理部125は、新規推論処理装置に対し、カメラ画像(画像識別子)及び途中結果を送信(入力)する(ステップS19)。そして、障害対応処理部125は、中断されていた推論処理の最終結果を取得し(ステップS20)、ステップS21に移行する。なお、ステップS17で途中結果が保存されていないと判定した場合には(ステップS17;No)、ステップS21に移行する。
続く、ステップS21では、障害対応処理部125は、新規推論処理装置を含めた推論処理装置300の全体で、一連する推論処理が実行できるよう入出力設定を更新し、新規推論処理装置に反映する(ステップS21)。
そして、障害対応処理部125は、入出力制御部122と協働し、更新後の推論処理接続情報に基づいた入出力経路で、全体の推論処理を再開させ(ステップS22)、本処理を終了する。
このように、障害対応処理部125は、推論処理装置300−1〜300−3の何れかに障害が発生すると、障害発生までに得られた途中結果を用いて、一連する推論処理を新規推論処理装置に引き継がせる。これにより、障害発生により推論処理が途中で中断された場合であっても、途中結果を破棄することなく、最終結果となる推論結果を出力することができるため、推論処理に係る可用性の向上を図ることができる。
以下、図5及び図6を参照し、情報処理システム1でのデータの入出力について説明する。ここで、図5は、情報処理システム1の正常動作時の入出力状態の一例を模式的に示す図である。なお、推論処理装置300−1〜300−3の各々には、予めロードされたモデルファイル304−1〜304−3により、人物抽出推論処理310、年齢推論処理320、性別推論処理330を実行可能な環境がそれぞれ設定されているものとする。
まず、カメラ400によって撮像が行われると、カメラ画像取得部110は、撮像によって得られたカメラ画像G1を取得し(符号P1)、SSD107等の記憶媒体M11に保存する(符号P2)。次いで、システム制御部120は、記憶媒体M11に保存されたカメラ画像G1を読み出し、画像識別子とともに推論処理装置300−1に出力する(符号P3)。
推論処理装置300−1では、カメラ画像及びカメラ画像識別子が入力されると、人物抽出推論処理310によって、カメラ画像に表された人物が抽出(推論)される。推論処理装置300−1は、人物抽出推論処理310の推論結果と、カメラ画像識別子とを第1推論結果とし、カメラ画像とともに推論処理装置300−2に出力する(符号P4)。また、途中結果取得部123は、第1推論結果を取得し、途中結果としてSSD107等の記憶媒体M12に保存する(符号P5)。
また、推論処理装置300−2では、推論処理装置300−1から、カメラ画像、及び第1推論結果が入力されると、年齢推論処理320によって、カメラ画像に表された人物の年齢が推論される。推論処理装置300−2は、年齢推論処理320の推論結果と、第1推論結果とを第2推論結果とし、カメラ画像とともに推論処理装置300−3に出力する(符号P6)。また、途中結果取得部123は、年齢推論処理320の第2推論結果を取得し、途中結果としてSSD107等の記憶媒体M13に保存する(符号P7)。なお、記憶媒体M11、M12、M13は、同一の記憶装置であってもよいし、異なる記憶装置であってもよい。また、記憶媒体M12、M13は、保持部の一例である。
また、推論処理装置300−3では、推論処理装置300−2から、カメラ画像、カメラ画像識別子、第1推論結果及び第2推論結果が入力されると、性別推論処理330によって、カメラ画像に表された人物の性別が推論される。推論処理装置300−3は、性別推論処理330の推論結果と、カメラ画像識別子と、第2推論結果とを第3推論結果R1とし、情報処理装置100(システム制御部120)に出力する(符号P8)。
第3推論結果R1は、一連する推論処理の最終結果となる。例えば、システム制御部120は、取得した第3推論結果R1に基づき、対応するカメラ画像とともに各人物の年齢及び性別を表示したり、年齢及び性別毎に人数を計数したりする。なお、推論処理装置300−1〜300−3による推論処理は、カメラ画像G1毎に行われるものとする。
ここで、例えば、推論処理装置300−3で障害が発生すると、図6に示すように、障害検出部124は、推論処理装置300−3で発生した障害を検出する(符号P11)。図6は、情報処理システム1の障害発生時の入出力状態の一例を模式的に示す図である。この場合、障害対応処理部125は、障害発生の検出に伴い、以下の処理を実行する。
まず、障害対応処理部125は、全体の推論処理を停止する。これにより、図5に示した推論処理装置300の入出力が一旦停止することになる。次いで、障害対応処理部125は、推論処理装置300−3にロードされていたモデルファイル304−3を、新規推論処理装となる推論処理装置300−4にロードさせることで、推論処理装置300−4に性別推論処理340を設定する。
続いて、障害対応処理部125は、記憶媒体M11に記憶されたカメラ画像の出力先を推論処理装置300−4に設定するとともに(符号P12)、推論処理装置300−3の前段にあたる推論処理装置300−2の途中結果(第2推論結果)の出力先を推論処理装置300−4に設定する(符号P13)。また、推論処理装置300−4の出力先を情報処理装置100(システム制御部120)に設定する(符号P14)。
次いで、障害対応処理部125は、カメラ画像及び途中結果(第2推論結果)の出力(送信)を開始することで、これらのデータが推論処理装置300−2に入力される。これにより、推論処理装置300−4の性別推論処理340によって導出された第3推論結果R1が、情報処理装置100に出力されることになる。
そして、障害対応処理部125は、新規推論処理装置を含めた推論処理装置300の全体で、一連する推論処理が実行できるよう入出力設定を更新する。図6では、カメラ画像取得部110で取得されたカメラ画像が、記憶媒体M11を経由して、推論処理装置300−1に入力されるよう設定した例を示している(符号P15、P16)。また、推論処理装置300−1の出力先を推論処理装置300−2とし、推論処理装置300−2の出力先を推論処理装置300−4とした例を示している(符号P17、P18)。なお、入出力設定の更新後、破線で示した符号P12、符号P13の経路は、使用されなくなる。
以上のように、本実施形態では、稼働系の推論処理装置300−1〜300−3の何れかに障害が発生した場合であっても、障害発生までに得られた途中結果を用いて、推論処理装置300−4に一連する推論処理を引き継がせることができる。これにより、障害発生により推論処理が途中で中断された場合であっても、途中結果を破棄することなく、最終結果となる推論結果を出力することができるため、推論処理に係る可用性の向上を図ることができる。
また、本実施形態によれば、情報処理システム1は、待機系の推論処理装置300−4を含み、障害対応処理部125は、障害が発生した推論処理装置300以外の他の推論処理装置として、待機系の推論処理装置300−4を選択する。これにより、稼働系の推論処理装置300−1〜300−3の何れかに障害が発生した場合であっても、待機系の推論処理装置300−4を用いて推論処理を引き継がせることが可能となる。
また、本実施形態によれば、障害対応処理部125は、他の推論処理装置として、障害が発生した推論処理装置300以外の推論処理装置として、推論処理の負荷が低い待機系の推論処理装置300−4を選択する。これにより、推論処理の効率化やスループットの向上を図ることができる。
また、本実施形態によれば、情報処理装置100(システム制御部120)は、推論処理装置300の各々から出力された推論結果を保持する記憶媒体M12、M13等の保持部を備え、障害対応処理部125は、保持部が保持する推論結果のうち、障害が発生した推論処理装置300の前段の推論処理装置300で実行されていた推論処理の推論結果を、他の推論処理装置(推論処理装置300−4)に入力する。これにより、障害が発生した推論処理装置300の前段の推論処理装置300で実行された推論結果を、推論処理装置300−4に引き継がせることができるため、途中結果を破棄することなく、最終結果となる推論結果を出力させることが可能となる。
また、本実施形態によれば、障害対応処理部125は、他の推論処理装置(推論処理装置300−4)の推論結果が出力された後、障害が発生した推論処理装置300の前段の推論処理装置300の出力先を、他の推論処理装置(推論処理装置300−4)に設定する。これにより、推論処理装置300−4を含めた推論処理装置300の全体で、一連する推論処理を継続して実行することが可能となる。
なお、上述した実施形態は、情報処理システム1の構成又は機能の一部を変更することで、適宜に変形して実施することも可能である。そこで、以下では、上述した実施形態に係るいくつかの変形例を他の実施形態として説明する。なお、以下では、上述した実施形態と異なる点を主に説明することとし、既に説明した内容と共通する点については詳細な説明を省略する。また、以下で説明する変形例は、個別に実施されてもよいし、適宜組み合わせて実施されてもよい。
(変形例1)
上述した実施形態では、推論処理装置300の各々から出力される途中結果を情報処理装置100側で保持する形態を説明したが、これに限らず、推論処理装置300の各々が保持する形態としてもよい。以下、変形例1として、推論処理装置300の各々が途中結果を保持する形態について説明する。
図7は、本変形例に係る情報処理システム1の正常動作時の入出力状態の一例を模式的に示す図である。図7に示すように、本変形例の構成では、推論処理装置300−1及び推論処理装置300−2の各々が、自己の推論処理装置300での推論結果を保持する点が、上述した実施形態と相違する。
具体的には、推論処理装置300−1は、人物抽出推論処理310による第1推論結果を途中結果として、自己の推論処理装置300−1が備える記憶媒体M21に保持する(符号P21)。また、推論処理装置300−2は、年齢推論処理320による第2推論結果を途中結果として、自己の推論処理装置300−2が備える記憶媒体M22に保持する(符号P22)。なお、記憶媒体M21、M22は、保持部の一例である。また、本実実施形態では、推論処理装置300−3は保持部を具備しない構成としたが、保持部を具備する構成としてもよい。
ここで、例えば、推論処理装置300−3で障害が発生すると、図8に示すように、障害検出部124は、推論処理装置300−3で発生した障害を検出する(符号P31)。図8は、本変形例に係る情報処理システム1の障害発生時の入出力状態の一例を模式的に示す図である。この場合、障害対応処理部125は、障害発生の検出に伴い、以下の処理を実行する。
まず、障害対応処理部125は、全体の推論処理を停止する。これにより、図7に示した推論処理装置300の入出力が一旦停止することになる。次いで、障害対応処理部125は、推論処理装置300−3にロードされていたモデルファイル304−3を、新規推論処理装となる推論処理装置300−4にロードさせることで、推論処理装置300−4に性別推論処理340を設定する。
続いて、障害対応処理部125は、記憶媒体M11に記憶されたカメラ画像の出力先を推論処理装置300−4に設定するとともに(符号P32)、推論処理装置300−3の前段にあたる推論処理装置300−2の途中結果(第2推論結果)の出力先を推論処理装置300−4に設定する(符号P33)。また、推論処理装置300−4の出力先を情報処理装置100(システム制御部120)に設定する(符号P34)。
続いて、障害対応処理部125は、カメラ画像及び途中結果(第2推論結果)の出力(送信)を開始することで、これらのデータが推論処理装置300−4に入力される。これにより、推論処理装置300−4の性別推論処理340によって導出された第3推論結果R1が、情報処理装置100に出力されることになる。
そして、障害対応処理部125は、新規推論処理装置を含めた推論処理装置300の全体で、一連する推論処理が実行できるよう入出力設定を更新する。図8では、カメラ画像取得部110で取得されたカメラ画像が、記憶媒体M11を経由して、推論処理装置300−1に入力されるよう設定した例を示している(符号P35、P36)。また、推論処理装置300−1の出力先を推論処理装置300−2とし、推論処理装置300−2の出力先を推論処理装置300−4とした例を示している(符号P37、P38)。
以上のように、本変形例によれば、上述した実施形態と同様に、推論処理に係る可用性の向上を図ることができる。なお、本変形例の場合、途中結果取得部123は不要となるため、情報処理装置100のシステム制御部120から途中結果取得部123を取り除いた構成としてもよい。
また、本変形例によれば、推論処理装置300の各々は、自己の推論処理の推論結果を保持する記憶媒体M21、M22等の保持部を備え、障害対応処理部125は、障害が発生した推論処理装置300の前段の推論処理装置300が保持する推論結果を、障害が発生した推論処理装置300以外の他の推論処理装置(推論処理装置300−4)に入力する。これにより、障害が発生した推論処理装置300の前段の推論処理装置300で実行された推論結果を、推論処理装置300−4に引き継がせることができるため、途中結果を破棄することなく、最終結果となる推論結果を出力させることが可能となる。
(変形例2)
上述した実施形態では、新規推論処理装置として、待機系の推論処理装置300を用いて推論処理を引き継ぐ形態を説明したが、これに限らず、稼働系の推論処理装置300を用いて推論処理を引き継がせてもよい。以下、変形例2として、稼働系の推論処理装置300に推論処理を引き継がせる形態について説明する。
図9は、本変形例に係る情報処理システム1の正常動作時の入出力状態の一例を模式的に示す図である。図9に示すように、本変形例の構成では、上述した実施形態の構成から、待機系の推論処理装置300−4を取り除いた構成となっている。なお、推論処理装置300−1〜300−3は、何れも稼働系の推論処理装置300である。
図9の構成において、例えば、推論処理装置300−3で障害が発生すると、図10に示すように、障害検出部124は、推論処理装置300−3で発生した障害を検出する(符号P41)。図10は、本変形例に係る情報処理システム1の障害発生時の入出力状態の一例を模式的に示す図である。この場合、障害対応処理部125は、障害発生の検出に伴い、以下の処理を実行する。
まず、障害対応処理部125は、全体の推論処理を停止する。これにより、図9に示した推論処理装置300の入出力が一旦停止することになる。次いで、障害対応処理部125は、推論処理装置300−3にロードされていたモデルファイル304−3を、新規推論処理装置となる正常稼働中の推論処理装置300の何れか一つにロードさせることで、新規推論処理装に性別推論処理340を設定する。
ここで、新規推論処理装置は、正常稼働中の推論処理装置300であれば特に問わないものとするが、障害が発生した推論処理装置300の前段又は後段の推論処理装置300を選択することが、データの入出力の関係から効率的である。また、新規推論処理装置は、既存の推論処理の負荷が低い推論処理装置300を選択することで、推論処理の効率化やスループットの向上を図ることができる。
図10では、障害が発生した推論処理装置300−3の前段の、推論処理装置300−2を新規推論処理装置に選定した例を示している。具体的には、障害対応処理部125は、推論処理装置300−3にロードされていたモデルファイル304−3を、推論処理装置300−2にロードさせることで、推論処理装置300−2に性別推論処理340を設定する。これにより、推論処理装置300−2では、既存の年齢推論処理320と、新たに設定された性別推論処理340とを実行することが可能となる。
続いて、障害対応処理部125は、記憶媒体M11に記憶されたカメラ画像の出力先を推論処理装置300−2(性別推論処理340)に設定するとともに(符号P42)、推論処理装置300−3の前段にあたる推論処理装置300−2の途中結果(第2推論結果)の出力先を推論処理装置300−2(性別推論処理340)に設定する(符号P43)。また、障害対応処理部125は、推論処理装置300−2(性別推論処理340)の出力先を情報処理装置100(システム制御部120)に設定する(符号P44)。
続いて、障害対応処理部125は、カメラ画像及び途中結果(第2推論結果)の出力(送信)を開始することで、これらのデータが推論処理装置300−2の性別推論処理340に入力される。これにより、推論処理装置300−2の性別推論処理340によって導出された第3推論結果R1が、情報処理装置100に出力されることになる。
そして、障害対応処理部125は、新規推論処理装置を含めた推論処理装置300の全体で、一連する推論処理が実行できるよう入出力設定を更新する。図10では、カメラ画像取得部110で取得されたカメラ画像が、記憶媒体M11を経由して、推論処理装置300−1に入力されるよう設定した例を示している(符号P45、P46)。また、推論処理装置300−1の出力先を推論処理装置300−2の年齢推論処理320とし、年齢推論処理320の出力先を推論処理装置300−2の性別推論処理340とした例を示している(符号P47、P48)。
以上のように、本変形例によれば、上述した実施形態と同様、推論処理に係る可用性の向上を図ることができる。
また、本変形例によれば、障害対応処理部125は、障害が発生した推論処理装置300以外の他の推論処理装置として、障害が発生した推論処理装置300の前段又は後段の推論処理装置300を選択し、障害が発生した推論処理装置300で実行されていた推論処理を、選択した他の推論処理装置に実行させる。これにより、障害発生時に実行する入出力設定の更新を効率的に行うことができる。
また、本変形例によれば、障害対応処理部125は、他の推論処理装置として、推論処理の負荷が低い推論処理装置300を選択する。これにより、推論処理の効率化やスループットの向上を図ることができる。
(変形例3)
上述した実施形態では、稼働系の推論処理装置300の段数、つまり一連する推論処理の段数を3としたが、複数段であればその段数は特に問わないものとする。また、上述した実施形態では、待機系の推論処理装置300を一としたが、これに限らず、待機系の推論処理装置300を複数個用意してもよい。
(変形例4)
上述した実施形態では、複数の推論処理装置300がシーケンシャルに推論処理を行う例を説明したが、これに限らず、一部の推論処理装置300が並列で推論処理を行う構成であってもよい。例えば、上述した実施形態での推論処理装置300の構成において、推論処理装置300−2及び推論処理装置300−3が、推論処理装置300−1の第1推論結果を受けて、年齢及び性別の推論を並列で行ってもよい。この場合において、上述した実施形態又は変形例の手法を用いることで、障害の発生により推論処理が中断したような場合であっても、中断した推論処理を継続して実行することができる。
(変形例5)
上述した実施形態では、推論処理装置300の各々を単体の装置とすることで、情報処理システム1の全体をシステムとして定義する形態を説明した。しかしながら、推論処理装置300の各々を情報処理装置100の周辺機器や拡張カード等として情報処理システム1を捉えた場合、情報処理システム1全体を、一の情報処理装置として定義することも可能である。
上述の実施形態では、各部のバス(例えば、拡張バス)又はI/OインタフェースとしてPCIeを例に挙げて説明したが、バスまたはI/OインタフェースはPCIeに限定されない。例えば、各部のバスまたはI/Oインタフェースは、データ転送バスによって、デバイス(周辺制御コントローラ)とプロセッサとの間でデータ転送を行える技術であればよい。データ転送バスは、1個の筐体等に設けられたローカルな環境(例えば、1つのシステム又は1つの装置)で高速にデータを転送できる汎用のバスであってもよい。I/Oインタフェースは、パラレルインタフェース及びシリアルインタフェースの何れであってもよい。
I/Oインタフェースは、シリアル転送の場合、ポイント・ツー・ポイント接続ができ、データをパケットベースで転送可能な構成でよい。なお、I/Oインタフェースは、シリアル転送の場合、複数のレーンを有してよい。I/Oインタフェースのレイヤー構造は、パケットの生成及び復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層とを有してよい。また、I/Oインタフェースは、階層の最上位であり1又は複数のポートを有するルート・コンプレックス、I/Oデバイスであるエンド・ポイント、ポートを増やすためのスイッチ、及び、プロトコルを変換するブリッジ等を含んでよい。I/Oインタフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信してもよい。この場合、受信側は、デマルチプレクサでデータとクロック信号を分離してよい。
1 情報処理システム
100 情報処理装置
110 カメラ画像取得部
120 システム制御部
121 推論処理制御部
122 入出力制御部
123 途中結果取得部
124 障害検出部
125 障害対応処理部
300 推論処理装置
302 コプロセッサ
303 推論アプリケーション
304 モデルファイル
305 ミドルウェア

Claims (11)

  1. 複数の推論処理装置と、
    処理内容が異なる推論処理を前記推論処理装置の各々に実行させ、前段の推論処理装置で行われた推論処理の推論結果を用いて、後段の推論処理装置が推論処理を行うよう前記推論処理装置の入出力を制御する制御部と、
    障害が発生した前記推論処理装置を検出する障害検出部と、
    前記障害検出部で障害の発生が検出された場合に、障害が発生した前記推論処理装置で実行されていた推論処理を、当該推論処理装置以外の他の推論処理装置に実行させる第1障害対応部と、
    障害が発生した前記推論処理装置の前段の推論処理で導出された推論結果を前記他の推論処理装置に入力し、当該推論結果に基づく前記他の推論処理装置の推論結果を、障害が発生した前記推論処理装置の後段の前記推論処理装置に出力する第2障害対応部と、
    を備え
    前記第2障害対応部は、前記他の推論処理装置の推論結果が出力された後、障害が発生した前記推論処理装置の前段の前記推論処理装置の出力先を、前記他の推論処理装置に設定する情報処理システム。
  2. 前記複数の推論処理装置は、待機系の推論処理装置を含み、
    前記第1障害対応部は、前記他の推論処理装置として、前記待機系の前記推論処理装置を選択する、請求項1に記載の情報処理システム。
  3. 前記第1障害対応部は、前記他の推論処理装置として、障害が発生した前記推論処理装置の前段又は後段の推論処理装置を選択する、請求項1に記載の情報処理システム。
  4. 前記第1障害対応部は、前記他の推論処理装置として、障害が発生した前記推論処理装置以外の前記推論処理装置のうち、前記推論処理の負荷が低い推論処理装置を選択する、請求項1に記載の情報処理システム。
  5. 前記推論処理装置の各々から出力された前記推論結果を保持する保持部を更に備え、
    前記第2障害対応部は、前記保持部が保持する前記推論結果のうち、障害が発生した前記推論処理装置の前段の前記推論処理装置で実行されていた推論処理の推論結果を、前記他の推論処理装置に入力する、請求項1〜4の何れか一項に記載の情報処理システム。
  6. 前記推論処理装置の各々は、自己の推論処理の推論結果を保持する保持部を更に備え、
    前記第2障害対応部は、障害が発生した前記推論処理装置の前段の推論処理装置が保持する推論結果を、前記他の推論処理装置に入力する、請求項1〜4の何れか一項に記載の情報処理システム。
  7. 複数の推論処理装置と接続可能な情報処理装置であって、
    処理内容が異なる推論処理を前記推論処理装置の各々に実行させ、前段の推論処理装置で行われた推論処理の推論結果を用いて、後段の推論処理装置が推論処理を行うよう前記推論処理装置の入出力を制御する制御部と、
    障害が発生した前記推論処理装置を検出する障害検出部と、
    前記障害検出部で障害の発生が検出された場合に、障害が発生した前記推論処理装置で実行されていた推論処理を、当該推論処理装置以外の他の推論処理装置に実行させる第1障害対応部と、
    障害が発生した前記推論処理装置の前段の推論処理で導出された推論結果を前記他の推論処理装置に入力し、当該推論結果に基づく前記他の推論処理装置の推論結果を、障害が発生した前記推論処理装置の後段の前記推論処理装置に出力する第2障害対応部と、
    を備え
    前記第2障害対応部は、前記他の推論処理装置の推論結果が出力された後、障害が発生した前記推論処理装置の前段の前記推論処理装置の出力先を、前記他の推論処理装置に設定する情報処理装置。
  8. 複数の推論処理装置と接続可能な情報処理装置のコンピュータを、
    処理内容が異なる推論処理を前記推論処理装置の各々に実行させ、前段の推論処理装置で行われた推論処理の推論結果を用いて、後段の推論処理装置が推論処理を行うよう前記推論処理装置の入出力を制御する制御部と、
    障害が発生した前記推論処理装置を検出する障害検出部と、
    前記障害検出部で障害の発生が検出された場合に、障害が発生した前記推論処理装置で実行されていた推論処理を、当該推論処理装置以外の他の推論処理装置に実行させる第1障害対応部と、
    障害が発生した前記推論処理装置の前段の推論処理で導出された推論結果を前記他の推論処理装置に入力し、当該推論結果に基づく前記他の推論処理装置の推論結果を、障害が発生した前記推論処理装置の後段の前記推論処理装置に出力する第2障害対応部と、
    して機能させ
    前記第2障害対応部は、前記他の推論処理装置の推論結果が出力された後、障害が発生した前記推論処理装置の前段の前記推論処理装置の出力先を、前記他の推論処理装置に設定するプログラム。
  9. 複数の推論処理装置と、
    処理内容が異なる推論処理を前記推論処理装置の各々に実行させ、前段の推論処理装置で行われた推論処理の推論結果を用いて、後段の推論処理装置が推論処理を行うよう前記推論処理装置の入出力を制御する制御部と、
    障害が発生した前記推論処理装置を検出する障害検出部と、
    前記障害検出部で障害の発生が検出された場合に、障害が発生した前記推論処理装置で実行されていた推論処理を、当該推論処理装置以外の他の推論処理装置に実行させる第1障害対応部と、
    障害が発生した前記推論処理装置の前段の推論処理で導出された推論結果を前記他の推論処理装置に入力し、当該推論結果に基づく前記他の推論処理装置の推論結果を、障害が発生した前記推論処理装置の後段の前記推論処理装置に出力する第2障害対応部と、
    を備え
    前記第1障害対応部は、前記他の推論処理装置として、障害が発生した前記推論処理装置以外の前記推論処理装置のうち、前記推論処理の負荷が低い推論処理装置を選択する情報処理システム。
  10. 複数の推論処理装置と接続可能な情報処理装置であって、
    処理内容が異なる推論処理を前記推論処理装置の各々に実行させ、前段の推論処理装置で行われた推論処理の推論結果を用いて、後段の推論処理装置が推論処理を行うよう前記推論処理装置の入出力を制御する制御部と、
    障害が発生した前記推論処理装置を検出する障害検出部と、
    前記障害検出部で障害の発生が検出された場合に、障害が発生した前記推論処理装置で実行されていた推論処理を、当該推論処理装置以外の他の推論処理装置に実行させる第1障害対応部と、
    障害が発生した前記推論処理装置の前段の推論処理で導出された推論結果を前記他の推論処理装置に入力し、当該推論結果に基づく前記他の推論処理装置の推論結果を、障害が発生した前記推論処理装置の後段の前記推論処理装置に出力する第2障害対応部と、
    を備え
    前記第1障害対応部は、前記他の推論処理装置として、障害が発生した前記推論処理装置以外の前記推論処理装置のうち、前記推論処理の負荷が低い推論処理装置を選択する情報処理装置。
  11. 複数の推論処理装置と接続可能な情報処理装置のコンピュータを、
    処理内容が異なる推論処理を前記推論処理装置の各々に実行させ、前段の推論処理装置で行われた推論処理の推論結果を用いて、後段の推論処理装置が推論処理を行うよう前記推論処理装置の入出力を制御する制御部と、
    障害が発生した前記推論処理装置を検出する障害検出部と、
    前記障害検出部で障害の発生が検出された場合に、障害が発生した前記推論処理装置で実行されていた推論処理を、当該推論処理装置以外の他の推論処理装置に実行させる第1障害対応部と、
    障害が発生した前記推論処理装置の前段の推論処理で導出された推論結果を前記他の推論処理装置に入力し、当該推論結果に基づく前記他の推論処理装置の推論結果を、障害が発生した前記推論処理装置の後段の前記推論処理装置に出力する第2障害対応部と、
    して機能させ
    前記第1障害対応部は、前記他の推論処理装置として、障害が発生した前記推論処理装置以外の前記推論処理装置のうち、前記推論処理の負荷が低い推論処理装置を選択するプログラム。
JP2019023894A 2019-02-13 2019-02-13 情報処理システム、情報処理装置及びプログラム Expired - Fee Related JP6617844B6 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019023894A JP6617844B6 (ja) 2019-02-13 2019-02-13 情報処理システム、情報処理装置及びプログラム
GB2000383.6A GB2584516A (en) 2019-02-13 2020-01-10 Information processing system, information processing apparatus, and non-transitory computer-readable medium
US16/750,438 US20200257993A1 (en) 2019-02-13 2020-01-23 Information processing system, information processing apparatus, and non-transitory computer-readable medium
CN202010076708.0A CN111563594A (zh) 2019-02-13 2020-01-23 信息处理系统、信息处理设备和非暂时性计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019023894A JP6617844B6 (ja) 2019-02-13 2019-02-13 情報処理システム、情報処理装置及びプログラム

Publications (3)

Publication Number Publication Date
JP6617844B1 JP6617844B1 (ja) 2019-12-11
JP6617844B6 true JP6617844B6 (ja) 2020-01-22
JP2020135060A JP2020135060A (ja) 2020-08-31

Family

ID=68836000

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019023894A Expired - Fee Related JP6617844B6 (ja) 2019-02-13 2019-02-13 情報処理システム、情報処理装置及びプログラム

Country Status (4)

Country Link
US (1) US20200257993A1 (ja)
JP (1) JP6617844B6 (ja)
CN (1) CN111563594A (ja)
GB (1) GB2584516A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112787840B (zh) * 2019-11-11 2022-07-22 华为技术有限公司 一种实现业务功能部署的方法、装置和系统
CN112834168A (zh) * 2020-12-30 2021-05-25 中国科学院长春光学精密机械与物理研究所 一种航空相机故障检测系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107226091B (zh) * 2016-03-24 2021-11-26 松下电器(美国)知识产权公司 物体检测装置、物体检测方法以及记录介质

Also Published As

Publication number Publication date
GB202000383D0 (en) 2020-02-26
GB2584516A (en) 2020-12-09
JP2020135060A (ja) 2020-08-31
JP6617844B1 (ja) 2019-12-11
CN111563594A (zh) 2020-08-21
US20200257993A1 (en) 2020-08-13

Similar Documents

Publication Publication Date Title
JP6140303B2 (ja) 仮想マシンのライブマイグレーション方法、仮想マシンのメモリデータ処理方法、サーバ及び仮想マシンシステム
JP5874879B2 (ja) I/oデバイスの制御方法及び仮想計算機システム
US11327918B2 (en) CPU hot-swapping
TWI331299B (en) Command parsers, methods therefor, and graphic processing units using the same
US7925817B2 (en) Computer system and method for monitoring an access path
CN108139924B (zh) 热插拔硬件及软件实施方案
JP6617844B6 (ja) 情報処理システム、情報処理装置及びプログラム
WO2021175226A1 (zh) 环形网络的故障恢复方法及物理节点
JP2006195821A (ja) 情報処理システムの制御方法、情報処理システム、ダイレクトメモリアクセス制御装置、プログラム
JPS60100254A (ja) マルチプロセツサシステム
EP1622324A1 (en) Fault tolerant data transfer in multi-node system via internodal crossbar switch
JP2012527023A (ja) ファイバ・チャネル・ファブリックへのアクセスの変更
US20180321964A1 (en) Computer, device allocation management method, and program recording medium
JP6418255B2 (ja) 障害監視装置、仮想ネットワークシステム、障害監視方法およびプログラム
US9430399B2 (en) Multi-core online patching method and apparatus
JP6614373B1 (ja) 推論処理システム、推論処理装置及びプログラム
US9658861B2 (en) Boot strap processor assignment for a multi-core processing unit
CN116257276B (zh) 支持虚拟化硬件加速的虚拟宿主机用户后端升级方法
WO2017139116A1 (en) Distributed input/output virtualization
US10437754B1 (en) Diagnostic fault management controller for distributed computing
JP2021028757A (ja) 情報処理システム、中継装置、及びプログラム
JP4131263B2 (ja) マルチノードシステム、ノード装置、ノード間クロスバスイッチ及び障害処理方法
JP5470884B2 (ja) マルチノードシステム、異常処理方法、スイッチ、ノード及びプログラム
JP4791792B2 (ja) デジタルシグナルプロセッサシステムおよびそのブート方法。
JP6256087B2 (ja) ダンプシステムおよびダンプ処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190313

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190322

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190403

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190813

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191001

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191028

R150 Certificate of patent or registration of utility model

Ref document number: 6617844

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees