(57)【要約】  情報処理システムは、処理対象のデータ及び処理対象のデータに対する処理内容を記述した制御コマンドを転送する制御装置と、制御装置の外部に設けられ、制御装置から制御コマンドが転送されると、制御コマンドに応じた処理を行う処理装置と、分割データを制御装置から処理装置へ転送する転送時間と、分割データを処理装置で処理する処理時間との差が予め定められた範囲内となる処理対象のデータの分割サイズを、処理対象のデータの量、転送時間及び処理時間に基づいて決定する計画装置と、を備え、計画装置により決定された分割サイズに従って処理対象のデータを分割して得られた分割データを処理装置に転送する。
2017043284.tif 000002
【特許請求の範囲】
【請求項１】
処理対象のデータ及び前記データに対する処理内容を記述した制御コマンドを転送する制御装置と、
前記制御装置の外部に設けられ、前記制御装置から前記制御コマンドが転送されると、前記データに対して前記制御コマンドに応じた処理を行う処理装置と、
前記データを分割した分割データを前記制御装置から前記処理装置へ転送する転送時間と、前記分割データを前記処理装置で処理する処理時間との差が予め定められた範囲内となる前記データの分割サイズを、前記データの量、前記転送時間及び前記処理時間に基づいて決定する計画装置と、
を備え、
前記制御装置は、前記計画装置により決定された分割サイズに従って前記データを分割して得られた分割データを前記処理装置に順次転送し、
前記処理装置は、前記制御装置から前記制御コマンドが転送された場合、前記制御装置から前記処理装置への前記分割データの転送と並列で、前回転送された前記分割データに対して、対応する前記制御コマンドに応じた処理を行う、
情報処理システム。
【請求項２】
前記転送時間及び前記処理時間が予め定められた前記処理装置を複数備え、
前記計画装置は、前記処理装置の各々毎に、前記分割サイズを決定し、決定した前記分割サイズに基づいて前記制御装置から前記処理装置へ前記分割データの転送を開始してから、前記処理装置から前記制御装置へ前記分割データを処理して得られた全てのデータの転送を終了するまでの処理完了時間を算出し、前記処理完了時間が最短の前記処理装置を前記制御装置による前記分割データの転送先として決定する、
請求項１に記載の情報処理システム。
【請求項３】
前記計画装置は、決定した分割サイズが予め定められた最小値未満の場合は、前記分割サイズを前記最小値に決定する、
請求項１に記載の情報処理システム。
【請求項４】
前記計画装置は、前記処理装置の各々毎に、決定した分割サイズが予め定められた最小値未満の場合は、前記分割サイズを前記最小値に決定する、
請求項２に記載の情報処理システム。
【請求項５】
前記処理装置は、前記処理によって得られた処理済データを前記制御装置に転送し、
前記計画装置は、前記処理装置から前記制御装置への前記処理済データの転送時間の方が、前記分割データを前記制御装置から前記処理装置に転送する転送時間より長い場合は、前記処理済データの転送時間と、前記処理時間との差が予め定められた範囲内となる前記データの分割サイズを決定する、
請求項１から請求項４のいずれか１項に記載の情報処理システム。
【請求項６】
前記制御装置はＣＰＵ（Central Processing Unit）であり、前記処理装置はＧＰＵ（Graphics Processing Unit）である、
請求項１から請求項５のいずれか１項に記載の情報処理システム。
【請求項７】
前記分割データは、ＤＭＡ（Direct Memory Access）により前記制御装置から前記処理装置に転送される、
請求項１から請求項６のいずれか１項に記載の情報処理システム。
【請求項８】
前記計画装置は、前記制御装置に含まれる、
請求項１から請求項７のいずれか１項に記載の情報処理システム。
【請求項９】
計画装置が、処理対象のデータを分割した分割データを制御装置から前記制御装置の外部に設けられた処理装置へ転送する転送時間と、前記分割データを前記処理装置で処理する処理時間との差が予め定められた範囲内となる前記データの分割サイズを、前記データの量、前記転送時間及び前記処理時間に基づいて決定し、
前記制御装置が、前記計画装置により決定された分割サイズに従って前記データを分割して得られた分割データと、前記データに対する処理内容を記述した制御コマンドと、を前記処理装置に順次転送し、
前記処理装置が、前記制御装置から前記制御コマンドが転送された場合、前記制御装置から前記処理装置への前記分割データの転送と並列で、前回転送された前記分割データに対して、対応する前記制御コマンドに応じた処理を行う
ことを含む情報処理方法。
【請求項１０】
コンピュータを、請求項１から請求項８のいずれか１項記載の情報処理システムの計画装置として機能させるための情報処理プログラム。
【請求項１１】
コンピュータに情報処理を実行させるプログラムを記憶したコンピュータ可読持続性記憶媒体であって、前記情報処理が、
制御装置から、処理対象のデータの量と、前記データに対する処理内容と、を受信し、
前記データの量を前記制御装置から前記制御装置の外部に設けられた処理装置へ転送する転送時間と、前記データの量に対して前記処理内容を実行する処理時間と、に基づいて、前記データを分割した分割データの分割サイズを決定し、前記分割サイズが、前記分割データを前記制御装置から前記処理装置へ転送する転送時間と、前記分割データを前記処理装置で処理する処理時間との差が予め定められた範囲内となるサイズであり、
前記分割サイズを、前記制御装置に出力すること、
を含む、記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は２０１５年９月１０日出願の日本出願第２０１５−１７８７１５号の優先権を主張すると共に、その全文を参照により本明細書に援用する。
本開示は、情報処理システム、情報処理方法、情報処理プログラム、及び記憶媒体に関する。
【背景技術】
【０００２】
制御装置における処理の負荷を低減するために、制御装置で行うデータの処理を外部の処理装置に代わりに実行させる技術が一般に知られている。このような処理装置として、例えば、ＧＰＵ（Graphics Processing Unit）やＤＳＰ（Digital Signal Processor）等により処理を行う装置が知られている。【０００３】
ＧＰＵは、本来は画像処理のためのものであるが、近年になって、汎用計算に使用するための開発環境が提供されている。ＧＰＵは、ＣＰＵ（Central Processing Unit）に比べて、数値演算を高速に実行することができる。【０００４】
ＧＰＵは、制御装置によって制御される、外部のディスクリートなデバイスとされている場合が多い。そのため、ＧＰＵに処理対象のデータに対する処理を行わせるには、外部バスを通して処理対象のデータを制御装置からＧＰＵへ転送し、処理によって得られた処理済データを制御装置へ転送する形態とされている場合が多い。【０００５】
例えば、特開２０１０−２４４０９６号公報には、処理対象のデータを所定の分割数で分割した分割データをＣＰＵからＧＰＵへ転送し、分割データをＧＰＵで処理する技術が記載されている。特開２０１０−２４４０９６号公報に記載の技術では、ＣＰＵからＧＰＵへの分割データの転送と、ＧＰＵでの分割データに対する処理とを並列に実行することにより、処理対象のデータに対する処理に費やされる全体の時間が短縮される。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、制御装置の外部の処理装置にデータの処理を行わせる場合、単純に、制御装置から処理装置に所定の分割数で分割された分割データを転送し、処理装置が分割データを処理する動作を繰り返すと、転送時間が妨げ（いわゆるボトルネック）となり、処理対象のデータに対する処理開始から完了までの時間（以下、「全体的な処理時間」という）が長くなる場合がある。【０００７】
上記文献に記載の技術においても、所定の分割数で処理対象のデータを分割するため、上述のように全体的な処理時間が長くなる場合がある。なお、これは、処理装置がＧＰＵを用いたものである場合に限らず、処理装置としてＤＳＰおよびインテル社製商品名Ｘｅｏｎ  Ｐｈｉ（登録商標）等の画像処理及び演算処理等を実行する他のディスクリートなデバイスを用いた装置を適用した場合にも生じ得る。【０００８】
本開示は、上記事実を考慮して成されたもので、処理を制御装置の外部で実行する場合に必要とされる時間を効果的に短縮することができる情報処理システム、情報処理方法、情報処理プログラム、及び記憶媒体を提供する。
【課題を解決するための手段】
【０００９】
本開示の第１の態様は、情報処理システムであって、処理対象のデータ及びデータに対する処理内容を記述した制御コマンドを転送する制御装置と、制御装置の外部に設けられ、制御装置から制御コマンドが転送されると、データに対して制御コマンドに応じた処理を行う処理装置と、データを分割した分割データを制御装置から処理装置へ転送する転送時間と、分割データを処理装置で処理する処理時間との差が予め定められた範囲内となるデータの分割サイズを、データの量、転送時間及び処理時間に基づいて決定する計画装置と、を備え、制御装置は、計画装置により決定された分割サイズに従ってデータを分割して得られた分割データを処理装置に順次転送し、処理装置は、制御装置から制御コマンドが転送された場合、制御装置から処理装置への分割データの転送と並列で、前回転送された分割データに対して、対応する制御コマンドに応じた処理を行う。【００１０】
本態様の情報処理システムの計画装置は、決定した分割サイズが予め定められた最小値未満の場合は、分割サイズを最小値に決定してもよい。【００１１】
本態様の情報処理システムは、転送時間及び処理時間が予め定められた処理装置を複数備え、計画装置は、処理装置の各々毎に、分割サイズを決定し、決定した分割サイズに基づいて制御装置から処理装置へ分割データの転送を開始してから、処理装置から制御装置へ分割データを処理して得られた全てのデータの転送を終了するまでの処理完了時間を算出し、処理完了時間が最短の処理装置を制御装置による分割データの転送先として決定してもよい。【００１２】
本態様の情報処理システムの計画装置は、処理装置の各々毎に、決定した分割サイズが予め定められた最小値未満の場合は、分割サイズを最小値に決定してもよい。【００１３】
本態様の情報処理システムの処理装置は、処理によって得られた処理済データを制御装置に転送し、計画装置は、処理装置から制御装置への処理済データの転送時間の方が、分割データを制御装置から処理装置に転送する転送時間より長い場合は、処理済データの転送時間と、処理時間との差が予め定められた範囲内となるデータの分割サイズを決定してもよい。【００１４】
本態様の情報処理システムの制御装置はＣＰＵ（Central Processing Unit）であり、処理装置はＧＰＵ（Graphics Processing Unit）であってもよい。【００１５】
本態様の情報処理システムの分割データは、ＤＭＡ（Direct Memory Access）により制御装置から処理装置に転送されてもよい。【００１６】
本態様の情報処理システムの計画装置は、制御装置に含まれてもよい。【００１７】
本開示の第２の態様は、情報処理方法であって、制御装置により、処理対象のデータ及びデータに対する処理内容を記述した制御コマンドを転送し、前記制御装置の外部に設けられた処理装置により、制御装置から制御コマンドが転送されると、データに対して制御コマンドに応じた処理を行い、計画装置により、データを分割した分割データを制御装置から処理装置へ転送する転送時間と、分割データを処理装置で処理する処理時間との差が予め定められた範囲内となるデータの分割サイズを、データの量、転送時間及び処理時間に基づいて決定する、ことを含み、制御装置により、計画装置により決定された分割サイズに従ってデータを分割して得られた分割データを処理装置に順次転送し、処理装置により、制御装置から制御コマンドが転送された場合、制御装置から処理装置への分割データの転送と並列で、前回転送された分割データに対して、対応する制御コマンドに応じた処理を行う、ことを含む。【００１８】
本開示の第３の態様は、情報処理方法であって、計画装置が、処理対象のデータを分割した分割データを制御装置から前記制御装置の外部に設けられた処理装置へ転送する転送時間と、前記分割データを前記処理装置で処理する処理時間との差が予め定められた範囲内となる前記データの分割サイズを、前記データの量、前記転送時間及び前記処理時間に基づいて決定し、前記制御装置が、前記計画装置により決定された分割サイズに従って前記データを分割して得られた分割データと、前記データに対する処理内容を記述した制御コマンドと、を前記処理装置に順次転送し、前記処理装置が、前記制御装置から前記制御コマンドが転送された場合、前記制御装置から前記処理装置への前記分割データの転送と並列で、前回転送された前記分割データに対して、対応する前記制御コマンドに応じた処理を行うことを含む。【００１９】
本開示の第４の態様は、情報処理プログラムであって、コンピュータを、第１の態様の情報処理システムの計画装置として機能させるものである。【００２０】
本開示の第５の態様は、コンピュータに情報処理を実行させるプログラムを記憶したコンピュータ可読持続性記憶媒体であって、前記情報処理が、制御装置から、処理対象のデータの量と、前記データに対する処理内容と、を受信し、前記データの量を前記制御装置から前記制御装置の外部に設けられた処理装置へ転送する転送時間と、前記データの量に対して前記処理内容を実行する処理時間と、に基づいて、前記データを分割した分割データの分割サイズを決定し、前記分割サイズが、前記分割データを前記制御装置から前記処理装置へ転送する転送時間と、前記分割データを前記処理装置で処理する処理時間との差が予め定められた範囲内となるサイズであり、前記分割サイズを、前記制御装置に出力すること、を含む。
【発明の効果】
【００２１】
本開示の技術では、制御装置の外部で処理を実行する場合に必要とされる時間を効果的に短縮することができる情報処理システム、情報処理方法、情報処理プログラム、及び記憶媒体を提供することができる。
【図面の簡単な説明】
【００２２】
【図１】第１実施形態に係る情報処理システムの構成例を示すブロック図である。
【図２】第１実施形態に係る計画装置の構成例を示すブロック図である。
【図３】第１実施形態に係る設計情報の一例を示す模式図である。
【図４】第１実施形態に係る処理装置（ＧＰＵ）における１処理単位当たりの処理時間と分割サイズとの対応関係の一例を表すグラフである。
【図５】計画装置をソフトウエアとして構成した場合の情報処理システムの構成例を示すブロック図である。
【図６】第１実施形態に係る情報処理システムの全体的な動作の流れの一例を示すフローチャートである。
【図７】処理対象のデータの分割手順の説明に供する図である。
【図８】処理対象のデータを分割して転送する場合における、分割データの転送期間と、分割データに対する処理の実行期間と、処理済データの転送期間との一例を示したタイミングチャートである。
【図９】第１実施形態に係る計画装置の計算部で実行される分割サイズ計算処理の流れの一例を示すフローチャートである。
【図１０】処理対象のデータを分割しない場合における、処理対象のデータの転送期間と、処理対象のデータに対する処理の実行期間と、処理済データの転送期間との一例を示したタイミングチャートである。
【図１１】処理対象のデータを分割して転送する場合における、分割データの転送期間と、分割データに対する処理の実行期間と、処理済データの転送期間との一例を示したタイミングチャートである。
【図１２】第２実施形態に係る情報処理システムの構成例を示すブロック図である。
【図１３】第２実施形態に係る計画装置の計算部で実行される分割サイズ計算処理の流れの一例を示すフローチャートである。
【図１４】他の情報処理システムの構成例を示すブロック図である。
【発明を実施するための形態】
【００２３】
以下、図面を参照して実施形態を詳細に説明する。なお、本実施形態は本開示を限定するものではない。
【００２４】
［第１実施形態］
まず、本実施形態の情報処理システムについて説明する。図１に示すように、本実施形態の情報処理システム１０は、制御装置２０、処理装置３０、及び計画装置４０を備えている。
【００２５】
制御装置２０は、ＣＰＵ２２、システムメモリ２４、及び各種情報を記憶するＨＤＤ（Hard Disk Drive）２６を備えている。
【００２６】
ＣＰＵ２２は、予め定められたデータを用いた各種処理を実行すること等により、制御装置２０の全体を統括的に制御する。また、本実施形態のＣＰＵ２２は、計画装置４０から入力された、後述する分割サイズに応じたサイズに処理対象のデータを分割して分割データを生成する。また、本実施形態のＣＰＵ２２は、処理装置３０の後述するＧＰＵ（Graphics Processing Unit）３２に、生成した分割データと、分割データに対する処理内容を記述した制御コマンドとを転送する。
【００２７】
システムメモリ２４は、ＣＰＵ２２により各種処理を実行する場合に用いられるメモリであり、上記分割データや、処理装置３０のＧＰＵ３２により分割データに対する処理が行われて得られた処理装置３０から転送されたデータ（以下、「処理済データ」という）等が格納される。
【００２８】
一方、本実施形態の処理装置３０のＧＰＵ３２は、制御装置２０のＣＰＵ２２の代わりに処理対象のデータ（厳密には、分割データ）に対する処理を行う。本実施形態の処理装置３０は、ＧＰＵ３２及びビデオメモリ３４を備えている。
【００２９】
ＧＰＵ３２は、処理装置３０の全体を統括的に制御する。また、本実施形態のＧＰＵ３２は、ＣＰＵ２２から制御コマンドを受信すると、制御コマンドと共に受信された分割データに対して、制御コマンドにより示される処理をＣＰＵ２２と非同期に行う。なお、ＧＰＵ３２がＣＰＵ２２の代わりに実行する処理の種類は限定されないが、例えば、画像処理に関する処理（色空間変換処理および画像圧縮処理等）、数値演算処理、および音声処理等が挙げられる。このようなＧＰＵ３２としては、ＧＰＧＰＵ（General-purpose computing on graphics processing units）に対応したものであることが好ましい。
【００３０】
ビデオメモリ３４は、ＧＰＵ３２によりデータに対する処理を実行する場合に用いられるメモリであり、制御装置２０から受信した分割データや、上述した処理済データ等が格納される。なお、本実施形態に係る情報処理システムでは、制御装置２０のシステムメモリ２４と処理装置３０のビデオメモリ３４との間でのデータ転送を、ＤＭＡ（Direct Memory Access）により行う。
【００３１】
なお、本実施形態に係る処理装置３０は、ＧＰＵ３２による分割データに対する処理と、制御装置２０との間のデータ転送（制御装置２０からの分割データの受信および制御装置２０への処理済データの送信）とを並列（Parallel）で行うことができる。また、処理装置３０は、データ転送として、制御装置２０から分割データの受信と、制御装置２０への処理済データの送信とを並列で行うことができる。
【００３２】
本実施形態の計画装置４０は、分割データを制御装置２０から処理装置３０へ転送する転送時間と、分割データを処理装置３０で処理する処理時間との差が予め定められた範囲内となる分割サイズを、処理対象のデータの量、転送時間及び処理時間に基づいて決定する装置である。本実施形態の計画装置４０は、図２に示すように、設定情報記憶部４２、計算部４４、及び出力部４６を備えている。
【００３３】
本実施形態に係る情報処理システム１０では、処理装置３０に用いられるＧＰＵ３２として、情報処理システム１０の用途や要求される性能等に応じて、各々仕様が異なる複数の種類のＧＰＵから何れか１つのＧＰＵが選択的に採用される。そして、本実施形態に係る計画装置４０では、処理装置３０に採用されているＧＰＵ３２の種類に応じた最適な分割サイズを計算部４４によって演算により導出する。
【００３４】
このため、本実施形態に係る計画装置４０の設定情報記憶部４２は、処理装置３０に採用され得るＧＰＵ３２の種類毎に、計算部４４による分割サイズの演算に用いる各種データが含まれる設定情報が予め記憶されている。
【００３５】
本実施形態に係る情報処理システム１０では、処理装置３０に採用され得るＧＰＵ３２の種類として３種類のＧＰＵ３２（以下、各々「ＧＰＵＡ」、「ＧＰＵＢ」、及び「ＧＰＵＣ」という。）が想定されている。従って、本実施形態に係る情報処理システム１０では、一例として図３に示すように、各々対応するＧＰＵ３２に対応する設定情報４３Ａ、４３Ｂ、および４３Ｃが設定情報記憶部４２に予め記憶されている。なお、以下では、設定情報４３Ａ、４３Ｂ、および４３Ｃを特に区別して説明する必要がない場合は、「設定情報４３」と総称する。また、処理装置３０に採用され得るＧＰＵ３２の種類の数は３に限らない。
【００３６】
図３に示すように、本実施形態に係る設定情報４３は、データ転送時間Ｔｔ、各処理の処理時間Ｔｐ、転送１回ごとの定数時間Ｔｏ、及び最小分割サイズｍｉｎを含む。
【００３７】
データ転送時間Ｔｔは、制御装置２０（より具体的には、システムメモリ２４）と処理装置３０（より具体的には、ビデオメモリ３４）との間で所定量のデータの転送にかかる時間である。なお、本実施形態では、錯綜を回避するため、システムメモリ２４からビデオメモリ３４へのデータ転送時間と、ビデオメモリ３４からシステムメモリ２４へのデータ転送時間とが誤差の範囲を含み、同一である場合について説明する。
【００３８】
各処理の処理時間Ｔｐは、対応するＧＰＵ３２が実行する処理の内容毎に所定量のデータの処理に要する時間である。図３では、処理時間Ｔｐの具体例として、色空間変換処理時間Ｔｐ１及びフィルタの処理時間Ｔｐ２が示されている。色空間変換処理としては、例えば、ＲＧＢ色空間からＹＣｂＣｒ色空間への色空間変換処理及びＲＧＢ色空間からＨＳＶ色空間への色空間変換処理等が挙げられる。また、フィルタ処理としては、例えば、コンボリューションフィルタによるフィルタ処理及びメディアンフィルタによるフィルタ処理等が挙げられる。なお、ＧＰＵ３２が実行する処理の種類は、上記に限定されない。処理対象のデータが画像データの場合における他の処理の種類としては、例えば、画像サイズの変更処理（いわゆる拡大処理および縮小処理）、転置処理、回転処理、垂直方向の結合処理、水平方向の結合処理、ＬＵＴ（Look Up Table）を用いた色変換処理等の汎用的な処理が挙げられる、また、例えば、上記処理の種類としては、最大値の計算処理、最小値の計算処理、平均値の計算処理、及びヒストグラムの計算処理等のリダクション処理が挙げられる。
【００３９】
転送１回ごとの定数時間Ｔｏは、制御装置２０と処理装置３０との間でデータの転送を行うことに伴って生じる、いわゆるオーバーヘッドである。
【００４０】
最小分割サイズｍｉｎは、ＧＰＵ３２で処理を行う分割データのサイズの下限値である。一般に、ＧＰＵ３２で高速な並列処理機能を実現するためには、ある程度のサイズのデータが必要となることが知られている。図４には、処理装置３０（ＧＰＵ３２）における１処理単位あたりの処理時間と分割サイズとの対応関係の一例が示されている。なお、図４において「１処理単位」とは、上記設定情報の説明における「所定量のデータ」の「所定量」のことを言う。図４に示すように、分割サイズが最小分割サイズ未満の場合、分割サイズが小さくなっても、処理時間がほとんど（少なくとも、分割サイズが最小分割サイズ以上の場合に比べて）変化しない。すなわち、分割サイズが最小分割サイズ未満では、ＧＰＵ３２が高速な並列処理機能を発揮しきれていないことがわかる。そこで、本実施形態に係る情報処理システム１０では、最小分割サイズｍｉｎをＧＰＵ３２の性能に応じて予め定めている。
【００４１】
計算部４４は、設定情報記憶部４２に記憶されている設定情報４３に基づいて分割データを制御装置２０から処理装置３０へ転送する転送時間と、分割データを処理装置３０で処理する処理時間との差が予め定められた範囲内となる、処理対象のデータの分割サイズを計算する。ここで、「予め定められた範囲」とは、具体的には、情報処理システム１０に要求される処理速度等に応じて予め定められる範囲であり、上記転送時間と上記処理時間とが等しいとみなせる範囲であることが好ましい。
【００４２】
出力部４６は、計算部４４により計算された分割サイズを制御装置２０のＣＰＵ２２へ出力する。
【００４３】
なお、本実施形態では、計画装置４０をハードウェアにより構成しているが、これに限らず、計画装置４０をソフトウエア（プログラム）により構成してもよい。この場合、一例として図５に示すように、計画装置４０において実行される処理を、制御装置２０のＨＤＤ２６内にソフトウエアとして記憶する形態が考えられる。
【００４４】
次に、本実施形態の情報処理システム１０の作用について説明する。まず、図６を参照して、情報処理システム１０の全体的な動作の流れについて説明する。
【００４５】
まず、ステップＳ１００で制御装置２０が、処理対象のデータのサイズ及び処理内容（処理の種類）を計画装置４０に出力する。なお、本実施形態に係る情報処理システム１０では、制御装置２０は、処理を行う処理装置３０のＧＰＵ３２の種類を特定するための情報も計画装置４０に出力する。
【００４６】
計画装置４０に処理対象のデータのサイズ、処理内容、及びＧＰＵ３２の種類を特定するための情報が入力されると、次のステップＳ１０２で計画装置４０が、詳細を後述する分割サイズ計算処理を実行して、最適な分割サイズを演算によって決定する。
【００４７】
次のステップＳ１０４で計画装置４０が、決定した分割サイズを制御装置２０に出力する。
【００４８】
次のステップＳ１０６で制御装置２０が、計画装置４０から入力された分割サイズに基づいて処理対象のデータを分割し、これによって得られた分割データ毎に、分割データ及び制御コマンドを処理装置３０へ順次送信する。ここで、制御装置２０が処理対象のデータを分割する方法は特に限定されず、処理内容や、処理対象のデータの種類等に応じた方法で分割すればよい。例えば、処理対象のデータが２次元のラスター形式の画像の画像データである場合、一例として図７に示すように、矩形状で、かつ面積が等しい複数（図７では、４×４＝１６個）の領域の画像データに分割してもよい。なお、処理対象のデータの分割方法はこれに限定されない。例えば、所定の一方向に並んだ矩形状かつ同一面積の画像の画像データに処理対象のデータを分割してもよい。
【００４９】
次のステップＳ１０８で処理装置３０が、制御装置２０から順次受信した分割データに対して、対応する制御コマンドに応じた処理を行い、これによって得られた処理済データを制御装置２０に順次送信して、情報処理システム１０における一連の動作が終了する。
【００５０】
なお、本実施形態の情報処理システム１０では、処理装置３０における分割データに対する処理と、処理装置３０から制御装置２０への処理済データの転送と、が並列に行われる。
【００５１】
図８には、処理対象のデータを分割して転送する場合における、分割データの転送期間と、分割データに対する処理の実行期間と、処理済データの転送期間とのタイミングチャートの一例が示されている。なお、図８に示した例では、処理対象のデータを５つに分割して得られた分割データＤ１〜Ｄ５について分割データの転送、処理の実行、及び処理済データの転送を順次行う場合を示している。
【００５２】
図８に示したように、本実施形態の情報処理システム１０では、例えば、制御装置２０から処理装置３０への分割データＤ３の転送と、処理装置３０における分割データＤ２に対する処理と、処理装置３０から制御装置２０への処理済データＤ１（分割データＤ１を処理した処理済データ）の転送と、が並列に行われる。
【００５３】
次に、図９を参照して、上記情報処理システム１０の全体的な動作のステップＳ１０２の処理で計画装置４０により実行される分割サイズ計算処理について説明する。
【００５４】
図９のステップＳ２００で計算部４４は、処理対象のデータ全体に対するデータ転送予測時間Ｔｔｘ及びデータ処理予測時間Ｔｐｘを算出する。具体的には、計算部４４は、ＧＰＵ３２を特定する情報に応じた、設定情報記憶部４２に記憶されている設定情報４３を参照し、処理内容に応じた、データ転送時間Ｔｔ及び処理時間Ｔｐを読み出す。そして、読み出したデータ転送時間Ｔｔ及び処理時間Ｔｐと、処理対象のデータのサイズとに基づいてデータ転送予測時間Ｔｔｘ及びデータ処理予測時間Ｔｐｘを算出する。
【００５５】
一例として、処理対象のデータを分割しないで処理装置３０にデータを転送して処理装置３０で処理する場合、図１０に示すように、制御装置２０における処理対象のデータＤの転送開始から、処理装置３０における処理対象のデータＤに対する処理を完了するまでの全体的な処理時間は、データ転送予測時間Ｔｔｘと、定数時間Ｔｏと、データ処理予測時間Ｔｐｘとを加算（Ｔｔｘ＋Ｔｏ＋Ｔｐｘ）した時間となる。なお、処理対象のデータの全体的な処理時間は、厳密には、制御装置２０における処理対象のデータＤの転送開始から、処理対象のデータＤを処理装置３０が処理し、これによって得られた処理済データの制御装置２０への転送が完了するまでの間である。しかしながら、処理済データの転送は、制御装置２０から処理装置３０への分割データの転送及び処理装置３０における分割データに対する処理と並列に行わなくてもよい。そのため、本実施形態に係る情報処理システム１０では、処理が繁雑になるのを避けるため、処理対象のデータの処理装置３０への転送開始から処理装置３０における処理が完了するまでの期間を全体的な処理時間とみなして分割サイズの計算を行っている。同様に、分割データを処理装置３０が処理する場合においても、本実施形態の情報処理システム１０では、処理対象のデータの処理装置３０への転送開始から処理装置３０における処理が完了するまでの期間を全体的な処理時間とみなしてしている。
【００５６】
次のステップＳ２０２で、計算部４４はデータ処理予測時間Ｔｐｘがデータ転送予測時間Ｔｔｘよりも長い（Ｔｔｘ＜Ｔｐｘ）か否かを判定する。ここで否定判定となった場合（データ転送予測時間Ｔｔｘがデータ処理予測時間Ｔｐｘ以上、すなわち、Ｔｔｘ≧Ｔｐｘの場合）は、ステップＳ２０４へ進む。
【００５７】
なお、図８に示した例は、データ転送予測時間Ｔｔｘがデータ処理予測時間Ｔｐｘ以上となる場合である。図８に示した例の場合、制御装置２０における最初の分割データＤ１の転送開始から、処理装置３０における最後の分割データＤ５の処理を完了するまでの全体的な処理時間は、分割数をｎ（図８に示す例ではｎ＝５）とすると、次の（１）式で表される。
【００５８】
【数１】
2017043284.tif 000003
相加相乗平均に基づくと、（１）式から、最適な分割数ｎは次の（２）式により得られる。（２）式によれば、制御装置２０から処理装置３０への分割データの転送時間と分割データを処理装置３０で処理する処理時間とがより等しくなる。
【００５９】
【数２】
2017043284.tif 000004
そのため、ステップＳ２０４で、計算部４４は（２）式を用いて、分割数ｎを算出した後、ステップＳ２０８へ移行する。
【００６０】
一方、データ処理予測時間Ｔｐｘがデータ転送予測時間Ｔｔｘよりも長い（Ｔｔｘ＜Ｔｐｘ）場合は、ステップＳ２０２において肯定判定となりステップＳ２０６へ進む。
【００６１】
図１１に示す一例は、データ処理予測時間Ｔｐｘがデータ転送予測時間Ｔｔｘよりも長い場合である。図１１に示した場合では、制御装置２０における最初の分割データ（Ｄ１）の転送開始から、処理装置３０における最後の分割データ（Ｄ５）の処理を完了するまでの全体的な処理時間は、分割数をｎ（図１１ではｎ＝５）とすると、次の（３）式となる。
【００６２】
【数３】
2017043284.tif 000005
相加相乗平均に基づくと、（３）式から、最適な分割数ｎは次の（４）式により得られる。（４）式によれば、制御装置２０から処理装置３０への分割データの転送時間と分割データを処理装置３０で処理する処理時間とがより等しくなる。
【００６３】
【数４】
2017043284.tif 000006
そのため、ステップＳ２０６で、計算部４４は（４）式を用いて、分割数ｎを算出した後、ステップＳ２０８へ移行する。
【００６４】
ステップＳ２０８で、計算部４４は分割サイズを計算する。具体的には、処理対象データのデータ量を分割サイズで除することにより、分割サイズを計算する。なお、計算結果が割り切れない場合は、四捨五入、切り上げ、及び切り捨て等の所定の方法により計算結果を丸めて、整数の値とすればよい。
【００６５】
次のステップＳ２１０で計算部４４は、算出した分割サイズが最小分割サイズｍｉｎ未満であるか否かを判定する。分割サイズが最小分割サイズｍｉｎ以上である場合は否定判定となり、ステップＳ２１４へ移行する。
【００６６】
一方、分割サイズが最小分割サイズｍｉｎ未満の場合は肯定判定となり、ステップＳ２１２へ移行する。ステップＳ２１２では、分割サイズを、算出した分割サイズから最小分割サイズｍｉｎに変更した後、ステップＳ２１４へ移行する。このように、分割サイズが最小分割サイズｍｉｎ未満の場合は、分割サイズを最小分割サイズｍｉｎとすることにより、処理装置３０のＧＰＵ３２が高速な並列処理機能を十分に発揮できるため、全体的な処理時間を効果的に短縮することができる。
【００６７】
ステップＳ２１４で出力部４６は、以上の処理によって得られた分割サイズを制御装置２０に出力した後、本分割サイズ計算処理を終了する。
【００６８】
上述したように、制御装置２０は、情報処理システム１０の全体的な動作（図６参照）のステップＳ１０６の処理で、計画装置４０から入力された分割サイズに基づいて処理対象のデータを分割して、分割データ及び制御コマンドを処理装置３０に出力する。
【００６９】
［第２実施形態］
次に、第２実施形態について説明する。なお、第１実施形態に係る情報処理システム１０と同様の部分については同一符号を付して、詳細な説明を省略する。
【００７０】
まず、本実施形態の情報処理システムについて説明する。図１２に示すように、本実施形態の情報処理システム１０は、処理装置３０Ａ、３０Ｂ、及び３０Ｃを備えており、それぞれ制御装置２０に接続されている点で第１実施形態の情報処理システム１０（図１参照）と異なっている。処理装置３０Ａ、３０Ｂ、及び３０Ｃは、それぞれ異なる種類のＧＰＵ３２Ａ、３２Ｂ、及び３２Ｃを各々備えると共に、ビデオメモリ３４を各々備えている。なお、以下では、処理装置３０Ａ、３０Ｂ、及び３０Ｃを特に区別して説明する必要がない場合は、「処理装置３０」と総称する。同様にＧＰＵ３２Ａ、３２Ｂ、及び３２Ｃを特に区別して説明する必要がない場合は、「ＧＰＵ３２」と総称する。また、情報処理システム１０が備え得る処理装置３０の数は３に限らない。
【００７１】
また、制御装置２０及び計画装置４０の構成は、第１実施形態の計画装置４０と同様であるが、計画装置４０の設定情報記憶部４２には、情報処理システム１０が備える全ての処理装置３０のＧＰＵ３２に関する設定情報４３が記憶されている。
【００７２】
次に、本実施形態の情報処理システム１０の作用について説明する。情報処理システム１０の全体的な動作の流れには第１実施形態（図６参照）と同様であるため、ここでの説明は省略する。本実施形態では、計画装置４０で行われる分割サイズ計算処理の一部が第１実施形態とは異なるため、図１３を参照して、異なる処理について説明する。
【００７３】
図１３に示すように本実施形態の分割サイズ計算処理は、ステップＳ２１４の前にステップＳ２１３Ａ〜Ｓ２１３Ｃの処理が第１実施形態の分割サイズ計算処理に対して追加されている。
【００７４】
ステップＳ２１３Ａで、計算部４４は全体的な処理時間を計算する。ここで、データ転送予測時間Ｔｔｘがデータ処理予測時間Ｔｐｘ以上である場合、すなわち、Ｔｔｘ≧Ｔｐｘの場合は、上記（１）式を用いて全体的な処理時間を計算する。また、データ転送予測時間Ｔｔｘがデータ処理予測時間Ｔｐｘ以上である場合、すなわち、Ｔｔｘ＜Ｔｐｘの場合は、上記（３）式を用いて全体的な処理時間を計算する。
【００７５】
次のステップＳ２１３Ｂで、計算部４４は全体的な処理時間が未計算の処理装置３０が有るか否かを判定する。全体的な処理時間が未計算の処理装置３０が有る場合は肯定判定となり、ステップＳ２００に戻って本分割サイズ計算処理を繰り返す。
【００７６】
一方、全体的な処理時間が未計算の処理装置３０が無い場合は否定判定となり、ステップＳ２１３Ｃに移行する。
【００７７】
ステップＳ２１３Ｃで計算部４４は、全体的な処理時間が最短の処理装置３０を選出した後、ステップＳ２１４へ移行する。
【００７８】
このように本実施形態の情報処理システム１０では、処理装置３０を複数備えており、計算部４４が全体の処理速度が最短の処理装置３０を選出し、選出された処理装置３０のＧＰＵ３２が制御装置２０のＣＰＵ２２の代わりに処理を行うため、全体的な処理時間をより効果的に短縮することができる。
【００７９】
以上説明したように上記各実施形態の情報処理システム１０は、処理対象のデータ及び処理対象のデータに対する処理内容を記述した制御コマンドを転送する制御装置２０と、制御装置２０の外部に設けられ、制御装置２０から制御コマンドが転送されると、入力されたデータに対して制御コマンドに応じた処理を行う処理装置３０と、処理対象のデータを分割した分割データを制御装置２０から処理装置３０へ転送する転送時間と、分割データを処理装置３０で処理する処理時間との差が予め定められた範囲内となる処理対象のデータの分割サイズを、処理対象のデータの量、転送時間及び処理時間に基づいて決定する計画装置４０と、を備える。そして、情報処理システム１０の制御装置２０は、計画装置４０により決定された分割サイズに従って処理対象のデータを分割して得られた分割データを処理装置３０に転送し、処理装置３０は、制御装置２０から制御コマンドが転送された場合、制御装置２０から処理装置３０への分割データの転送と並行して、前回転送された分割データに対して、対応する制御コマンドに応じた処理を行う。
【００８０】
従って、上記各実施形態の情報処理システム１０では、処理を制御装置２０の外部の処理装置３０で実行する場合に必要とされる全体的な時間を効果的に短縮することができる。
【００８１】
なお、上記各実施形態では、制御装置２０がＣＰＵ２２を備え、処理装置３０がＧＰＵ３２を備える場合について説明したが、一例として図１４に示すように、制御装置２０としてＣＰＵ２２そのものを適用してもよいし、処理装置３０としてＧＰＵ３２そのものを適用してもよい。また、ＧＰＵ３２は、いわゆるディスクリートなデバイスであればよく、ＤＳＰや、ＣＰＵ、及びＸｅｏｎ  Ｐｈｉ（登録商標）等であってもよい。
【００８２】
また、上記各実施形態では、（２）式及び（４）式により、最適な分割数ｎを算出し、分割数ｎに基づいて最適な分割サイズを決定していたが、分割サイズの決定方法は、（２）式及び（４）式に限定されるものではない。分割データを制御装置２０から処理装置３０へ転送する転送時間と、分割データを処理装置３０で処理する処理時間との差が予め定められた範囲内となればよく、その決定方法は特に限定されるものではない。
【００８３】
また、情報処理システム１０が複数の処理装置３０を備えており、処理対象のデータが複数有る（例えば、複数ページ分の画像データ）場合は、処理対象のデータ毎に異なる処理装置３０で、並列して処理を実行させるようにしてもよい。
【００８４】
また、情報処理システム１０が複数の処理装置３０を備えており、１つの処理対象のデータ（分割データ）に対して、連続して種類が異なる処理を行う場合は、順次、異なる処理装置３０で異なる処理を行わせるようにしてもよい。この場合、計画装置４０は、異なる処理を行う処理装置３０のうち、処理時間が長く係る処理装置３０に基づいて、分割サイズを決定することが好ましい。
【００８５】
また、上記各実施形態では、処理装置３０のＧＰＵ３２が制御装置２０のＣＰＵ２２と非同期に処理を行う場合について説明したが、ＣＰＵ２２と同期して処理を行ってもよい。
【００８６】
また、上記各実施形態では、分割サイズを決定する場合に、転送時間については、制御装置２０から処理装置３０への転送速度に基づいているが、処理装置３０から制御装置２０への転送速度（処理済データを転送する速度）の方が、制御装置２０から処理装置３０への転送速度よりも遅い場合は、処理済データを転送する速度に基づいて分割サイズを決定してもよい。なお、この場合、設定情報記憶部４２に記憶しておく設定情報４３のデータ転送速度Ｔｔを処理済データを処理装置３０から制御装置２０に転送する転送速度としておいてもよい。
【００８７】
また、処理装置３０から制御装置２０へ送信する処理済データのデータ量が、分割データに比べて少なくなる場合、例えば、処理装置３０において画像データの圧縮処理を行う場合、より具体的には、データ量を４分の１に圧縮する場合には、圧縮された画像データの処理装置３０から制御装置２０への送信回数を１／４回（４分の１回）にして４回分をまとめて制御装置２０へ送信することにより最適化を行ってもよい。
【００８８】
その他、上記各実施形態で説明した情報処理システム１０、制御装置２０、処理装置３０、及び計画装置４０等の構成及び動作等は一例であり、本開示の主旨を逸脱しない範囲内において適宜変更可能である。
【００８９】
なお、本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
【図１】
2017043284.tif 000007
【図２】
2017043284.tif 000008
【図３】
2017043284.tif 000009
【図４】
2017043284.tif 000010
【図５】
2017043284.tif 000011
【図６】
2017043284.tif 000012
【図７】
2017043284.tif 000013
【図８】
2017043284.tif 000014
【図９】
2017043284.tif 000015
【図１０】
2017043284.tif 000016
【図１１】
2017043284.tif 000017
【図１２】
2017043284.tif 000018
【図１３】
2017043284.tif 000019
【図１４】
2017043284.tif 000020
【手続補正書】
【提出日】平成30年2月28日(2018.2.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
処理対象のデータ及び前記データに対する処理内容を記述した制御コマンドを転送する制御装置と、
前記制御装置の外部に設けられ、前記制御装置から前記制御コマンドが転送されると、前記データに対して前記制御コマンドに応じた処理を行う処理装置と、
前記データを分割した分割データを前記制御装置から前記処理装置へ転送する転送時間と、前記分割データを前記処理装置で処理する処理時間との差が予め定められた範囲内となる前記データの分割サイズを、前記データの量、前記転送時間及び前記処理時間に基づいて決定する計画装置と、
を備え、
前記制御装置は、前記計画装置により決定された分割サイズに従って前記データを分割して得られた分割データを前記処理装置に順次転送し、
前記処理装置は、前記制御装置から前記制御コマンドが転送された場合、前記制御装置から前記処理装置への前記分割データの転送と並列で、前回転送された前記分割データに対して、対応する前記制御コマンドに応じた処理を行い、
前記転送時間及び前記処理時間が予め定められた前記処理装置を複数備え、
前記計画装置は、前記処理装置の各々毎に、前記分割サイズを決定し、決定した前記分割サイズに基づいて前記制御装置から前記処理装置へ前記分割データの転送を開始してから、前記処理装置から前記制御装置へ前記分割データを処理して得られた全てのデータの転送を終了するまでの処理完了時間を算出し、前記処理完了時間が最短の前記処理装置を前記制御装置による前記分割データの転送先として決定する、
情報処理システム。
【請求項２】
処理対象のデータ及び前記データに対する処理内容を記述した制御コマンドを転送する制御装置と、
前記制御装置の外部に設けられ、前記制御装置から前記制御コマンドが転送されると、前記データに対して前記制御コマンドに応じた処理を行う処理装置と、
前記データを分割した分割データを前記制御装置から前記処理装置へ転送する転送時間と、前記分割データを前記処理装置で処理する処理時間との差が予め定められた範囲内となる前記データの分割サイズを、前記データの量、前記転送時間及び前記処理時間に基づいて決定する計画装置と、
を備え、
前記制御装置は、前記計画装置により決定された分割サイズに従って前記データを分割して得られた分割データを前記処理装置に順次転送し、
前記処理装置は、前記制御装置から前記制御コマンドが転送された場合、前記制御装置から前記処理装置への前記分割データの転送と並列で、前回転送された前記分割データに対して、対応する前記制御コマンドに応じた処理を行い、
前記計画装置は、決定した分割サイズが予め定められた最小値未満の場合は、前記分割サイズを前記最小値に決定する、
情報処理システム。
【請求項３】
前記計画装置は、前記処理装置の各々毎に、決定した分割サイズが予め定められた最小値未満の場合は、前記分割サイズを前記最小値に決定する、
請求項１に記載の情報処理システム。
【請求項４】
前記処理装置は、前記処理によって得られた処理済データを前記制御装置に転送し、
前記計画装置は、前記処理装置から前記制御装置への前記処理済データの転送時間の方が、前記分割データを前記制御装置から前記処理装置に転送する転送時間より長い場合は、前記処理済データの転送時間と、前記処理時間との差が予め定められた範囲内となる前記データの分割サイズを決定する、
請求項１から請求項３のいずれか１項に記載の情報処理システム。
【請求項５】
前記制御装置はＣＰＵ（Central Processing Unit）であり、前記処理装置はＧＰＵ（Graphics Processing Unit）である、
請求項１から請求項４のいずれか１項に記載の情報処理システム。
【請求項６】
前記分割データは、ＤＭＡ（Direct Memory Access）により前記制御装置から前記処理装置に転送される、
請求項１から請求項５のいずれか１項に記載の情報処理システム。
【請求項７】
前記計画装置は、前記制御装置に含まれる、
請求項１から請求項６のいずれか１項に記載の情報処理システム。
【請求項８】
計画装置が、処理対象のデータを分割した分割データを制御装置から前記制御装置の外部に設けられた処理装置へ転送する転送時間と、前記分割データを前記処理装置で処理する処理時間との差が予め定められた範囲内となる前記データの分割サイズを、前記データの量、前記転送時間及び前記処理時間に基づいて決定し、
前記制御装置が、前記計画装置により決定された分割サイズに従って前記データを分割して得られた分割データと、前記データに対する処理内容を記述した制御コマンドと、を前記処理装置に順次転送し、
前記処理装置が、前記制御装置から前記制御コマンドが転送された場合、前記制御装置から前記処理装置への前記分割データの転送と並列で、前回転送された前記分割データに対して、対応する前記制御コマンドに応じた処理を行う
ことを含み、
前記転送時間及び前記処理時間が予め定められた前記処理装置を複数備え、
前記計画装置は、前記処理装置の各々毎に、前記分割サイズを決定し、決定した前記分割サイズに基づいて前記制御装置から前記処理装置へ前記分割データの転送を開始してから、前記処理装置から前記制御装置へ前記分割データを処理して得られた全てのデータの転送を終了するまでの処理完了時間を算出し、前記処理完了時間が最短の前記処理装置を前記制御装置による前記分割データの転送先として決定する、
情報処理方法。
【請求項９】
コンピュータを、請求項１から請求項７のいずれか１項記載の情報処理システムの計画装置として機能させるための情報処理プログラム。
【請求項１０】
コンピュータに情報処理を実行させるプログラムを記憶したコンピュータ可読持続性記憶媒体であって、前記情報処理が、
制御装置から、処理対象のデータの量と、前記データに対する処理内容と、を受信し、
前記データの量を前記制御装置から前記制御装置の外部に設けられた処理装置へ転送する転送時間と、前記データの量に対して前記処理内容を実行する処理時間と、に基づいて、前記データを分割した分割データの分割サイズを決定し、前記分割サイズが、前記分割データを前記制御装置から前記処理装置へ転送する転送時間と、前記分割データを前記処理装置で処理する処理時間との差が予め定められた範囲内となるサイズであり、
前記分割サイズを、前記制御装置に出力すること、
を含み、
前記転送時間及び前記処理時間が予め定められた前記処理装置を複数備え、
前記処理装置の各々毎に、前記分割サイズを決定し、決定した前記分割サイズに基づいて前記制御装置から前記処理装置へ前記分割データの転送を開始してから、前記処理装置から前記制御装置へ前記分割データを処理して得られた全てのデータの転送を終了するまでの処理完了時間を算出し、前記処理完了時間が最短の前記処理装置を前記制御装置による前記分割データの転送先として決定する、
記憶媒体。
【国際調査報告】
2017043284.tif 000021
2017043284.tif 000022