(57)【要約】      （修正有）【課題】処理対象に対する演算がＦＰＧＡ化に向いているか否かの判断を容易に行うプログラム、方法及び情報処理装置を提供するする。【解決手段】ＦＰＧＡ化判断プログラムは、論理回路構成が固定の第１集積回路からプログラム可能な第２集積回路へオフロードするか否かの判断のために受け付けた演算情報から得られる対象画像の解像度が、オフロードの適否の閾値以上である場合、該オフロードが可能であると判定する第１判定処理と、演算情報が演算において第２集積回路に搭載するメモリへのアクセスが連続すると判断した場合、オフロードが可能であると判定する第２判定処理と、演算情報が演算を並列に処理できると判断した場合、オフロードが可能であると判定する第３判定処理と、第１乃至３判定処理のそれぞれによる肯定判定又は否定判定の組み合せにより、オフロードの可否を決定して記憶部に出力する決定処理と、を実行する。【選択図】図１２
2020109589.tif 000002
【特許請求の範囲】
【請求項１】
回路構成が固定の第１集積回路から回路構成がプログラム可能な第２集積回路へオフロードするか否かの判断を行うための演算情報を受け付け、
前記演算情報から得られる演算が行われる対象の画像の解像度が、前記オフロードの適否の閾値以上である場合、該オフロードが可能であると判定する第１判定処理と、
前記演算情報が前記演算において前記第２集積回路に搭載するメモリへのアクセスが連続すると判断した場合、前記オフロードが可能であると判定する第２判定処理と、
前記演算情報が前記演算を並列に処理できると判断した場合、前記オフロードが可能であると判定する第３判定処理と、
前記第１判定処理、前記第２判定処理、及び前記第３判定処理のそれぞれによる肯定判定又は否定判定の組み合せにより、前記オフロードの可否を決定して記憶部に出力する決定処理と
をコンピュータに実行させるＦＰＧＡ化判断プログラム。
【請求項２】
前記演算情報は、前記第１集積回路の第１の製品を特定する情報と、前記第２集積回路の第２の製品を特定する情報とを含み、
前記第１判定処理では、前記記憶部に記憶された、製品ごとに複数の解像度それぞれに対する性能を示すデータベースから、該複数の解像度それぞれに対する前記第１の製品の性能と前記第２の製品の性能とを比較して、該第２の製品の性能が該第１の製品の性能以上となる解像度のうち最小の解像度を特定し、前記閾値に設定する
ことを特徴とする請求項１記載のＦＰＧＡ化判断プログラム。
【請求項３】
前記第２判定処理では、前記演算情報が前記画像に対して描画が追加されていないことを示す場合、前記第２集積回路に搭載するメモリへのアクセスが連続すると判定する
ことを特徴とする請求項１又は２記載のＦＰＧＡ化判断プログラム。
【請求項４】
前記第３判定処理では、前記演算情報が前記画像の全データが前記メモリに存在せずとも前記演算が開始可能であることを示す場合、前記演算を並列に処理できると判断する
ことを特徴とする請求項１乃至３のいずれか一項記載のＦＰＧＡ化判断プログラム。
【請求項５】
回路構成が固定の第１集積回路から回路構成がプログラム可能な第２集積回路へオフロードするか否かの判断を行うための演算情報を受け付け、
前記演算情報から得られる演算が行われる対象の画像の解像度が、前記オフロードの適否の閾値以上である場合、該オフロードが可能であると判定する第１判定処理と、
前記演算情報が前記演算において前記第２集積回路に搭載するメモリへのアクセスが連続すると判断した場合、前記オフロードが可能であると判定する第２判定処理と、
前記演算情報が前記演算を並列に処理できると判断した場合、前記オフロードが可能であると判定する第３判定処理と、
前記第１判定処理、前記第２判定処理、及び前記第３判定処理のそれぞれによる肯定判定又は否定判定の組み合せにより、前記オフロードの可否を決定して記憶部に出力する決定処理と
をコンピュータが行うＦＰＧＡ化判断方法。
【請求項６】
回路構成が固定の第１集積回路から回路構成がプログラム可能な第２集積回路へオフロードするか否かの判断を行うための演算情報を受け付ける受付部と、
前記演算情報から得られる演算が行われる対象の画像の解像度が、前記オフロードの適否の閾値以上である場合、該オフロードが可能であると判定する第１判定部と、
前記演算情報が前記演算において前記第２集積回路に搭載するメモリへのアクセスが連続すると判断した場合、前記オフロードが可能であると判定する第２判定部と、
前記演算情報が前記演算を並列に処理できると判断した場合、前記オフロードが可能であると判定する第３判定部と、
前記第１判定部、前記第２判定部、及び前記第３判定部のそれぞれによる肯定判定又は否定判定の組み合せにより、前記オフロードの可否を決定して記憶部に出力する決定部と
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＰＧＡ化判断プログラム、ＦＰＧＡ化判断方法、及び情報処理装置に関する。
【背景技術】
【０００２】
集積回路の高密度化が長年行われてきたが、集積回路の物理的な限界を予測したムーアの法則が近年現実的なものとなってきている。この集積回路の物理的な限界に対して、ＣＰＵ（Computer  Processing  Unit）が行う処理の一部を、ＦＰＧＡ（Field-Programmable  Gate  Array）にハード化して、システム制御を向上させることが行われている。
【０００３】
ソースプログラムを解析し、ＦＰＧＡでハード化した場合に所望の性能を満たすかを判断することにより、ＦＰＧＡで行う機能を決定する技術等が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−６３１３６号公報
【特許文献２】特開２０１７−１１１５７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したＣＰＵが実行するソースプログラムを解析してＦＰＧＡでハード化（以下、「ＦＰＧＡオフロード化」という）するための機能を決定する技術では、処理対象となるデータの特性が考慮されていない。そのため、ＦＰＧＡオフロード化を行ったとしても、性能を向上させることができない場合がある。
【０００６】
これは、アプリケーション（処理内容）によりＦＰＧＡオフロード化への向き不向きがあること、また、向き不向き判断の指標がないためである。そのため、開発者により試行が繰り返され（例えば、２〜３ヶ月間）、長期試行した結果、ＦＰＧＡオフロード化に不向きであると判断せざるを得ない場合もある。
【０００７】
したがって、１つの側面では、処理対象に対する演算がＦＰＧＡオフロード化に向いているか否かの判断を容易とすることを目的とする。
【課題を解決するための手段】
【０００８】
一態様によれば、回路構成が固定の第１集積回路から回路構成がプログラム可能な第２集積回路へオフロードするか否かの判断を行うための演算情報を受け付け、前記演算情報から得られる演算が行われる対象の画像の解像度が、前記オフロードの適否の閾値以上である場合、該オフロードが可能であると判定する第１判定処理と、前記演算情報が前記演算において前記第２集積回路に搭載するメモリへのアクセスが連続すると判断した場合、前記オフロードが可能であると判定する第２判定処理と、前記演算情報が前記演算を並列に処理できると判断した場合、前記オフロードが可能であると判定する第３判定処理と、前記第１判定処理、前記第２判定処理、及び前記第３判定処理のそれぞれによる肯定判定又は否定判定の組み合せにより、前記オフロードの可否を決定して記憶部に出力する決定処理とをコンピュータに実行させるＦＰＧＡ化判断プログラムが提供される。
【発明の効果】
【０００９】
処理対象に対する演算がＦＰＧＡ化に向いているか否かの判断を容易とすることができる。
【図面の簡単な説明】
【００１０】
【図１】ＦＰＧＡオフロード前後の性能を説明するための図である。
【図２】ＦＰＧＡオフロードで性能を向上できない場合を説明するための図である。
【図３】解像度と性能との関係を説明するための図である。
【図４】ランダムアクセス有無と性能との関係を説明するための図である。
【図５】１画像に対する演算数と性能との関係を説明するための図である。
【図６】複数の演算の並列化又はパイプライン化が可能な場合を説明するための図である。
【図７】複数の演算の並列化又はパイプライン化が不可の場合を説明するための図である。
【図８】本実施例に係るネットワーク構成例を示す図である。
【図９】情報処理装置のハードウェア構成例を示す図である。
【図１０】端末のハードウェア構成例を示す図である。
【図１１】情報処理装置の機能構成例を示す図である。
【図１２】ＦＰＧＡ化判定部によるＦＰＧＡ化判定処理を説明するための図である。
【図１３】第１判定部による第１判定処理を説明するためのフローチャート図である。
【図１４】第２判定部による第２判定処理を説明するためのフローチャート図である。
【図１５】第３判定部による第３判定処理を説明するためのフローチャート図である。
【図１６】ＦＰＧＡ化判定用の入力画面の例を示す図である。
【図１７】性能ＤＢのデータ構成例を示す図である。
【図１８】対応テーブルのデータ構成例を示す図である。
【図１９】メッセージテーブルのデータ構成例を示す図である。
【図２０】応答作成部による応答作成処理を説明するための図である。
【図２１】判定結果画面の例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態を図面に基づいて説明する。先ず、ＣＰＵが実行する処理の一部をＦＰＧＡ（Field-Programmable  Gate  Array）によりハード化するＦＰＧＡオフロード化について説明する。以下の説明において、ＦＰＧＡオフロード化を、単に、「ＦＰＧＡ化」という場合がある。
【００１２】
図１は、ＦＰＧＡオフロード前後の性能を説明するための図である。図１（Ａ）は、ＦＰＧＡオフロード前のＣＰＵのみの構成例を示し、図１（Ｂ）は、ＦＰＧＡオフロード後のＣＰＵとＦＰＧＡによる構成例を示している。
【００１３】
図１（Ａ）では、ＦＰＧＡオフロード前であるため、１つのＣＰＵ８ａで全ての処理を実行する。従って、この場合、１つのＣＰＵ８ａによる処理時間が性能評価の対象となる。図１（Ｂ）では、ＣＰＵが処理の一部をＦＰＧＡ９ａに行わせるため、ＣＰＵ８ａとＦＰＧＡ間においてデータ転送が発生する。また、ＣＰＵ８ａでの処理負担は小さくなるもののＣＰＵ８ａの処理時間に加えて、ＦＰＧＡ９ａによる処理時間が発生する。従って、この場合、ＣＰＵ８ａの処理時間と、ＦＰＧＡ９ａの処理時間と、データ転送時間の合計時間が性能評価の対象となる。
【００１４】
上述より、
・構成がＦＰＧＡオフロード前の場合
評価対象処理時間  ＝  ＣＰＵ処理時間
である。このＦＰＧＡオフロード前の評価対象処理時間を、以下、「第１の処理時間」ということとする。
・構成がＦＰＧＡオフロード後の場合
評価対象処理時間  ＝  ＣＰＵ処理時間＋ＦＰＧＡ処理時間＋データ転送時間
である。このＦＰＧＡオフロード後の評価対象処理時間を、以下、「第２の処理時間」ということとする。
【００１５】
ＦＰＧＡオフロード後において、第１の処理時間より第２の処理時間が短縮されていなければ（第１の処理時間＞第２の処理時間）、ＦＰＧＡでハード化する意味がない。ＦＰＧＡで行う処理（以下、「ホットスポット処理」という）に要する時間について更に、図２で説明する。
【００１６】
図２は、ＦＰＧＡオフロードで性能を向上できない場合を説明するための図である。図２中、各処理時間は、以下を示す。
・処理時間Ｔａ１は、処理１のＣＰＵ８ａの処理時間を示す。
・処理時間Ｔａ２は、処理２のＣＰＵ８ａの処理時間を示す。また、処理２はＦＰＧＡオフロード対象と判断したホットスポット処理である。
・処理時間Ｔｃ１は、ＣＰＵ８ａのＨＤＤから、ＦＰＧＡ９ａで処理するデータを外部メモリに転送する時間を示す。
・処理時間Ｔｃ２は、ＦＰＧＡ９ａの内部メモリから、外部メモリを介してＣＰＵ８ａのＨＤＤへデータ（処理結果）を転送する時間を示す。
・処理時間Ｔｂ２は、ＦＰＧＡの処理２（ホットスポット処理）を行う処理時間を示す。
【００１７】
また、図２（Ａ）及び図２（Ｂ）のそれぞれにおいて、上段にＦＰＧＡオフロード前のＣＰＵで処理１及び処理２を行った場合の処理時間の長さを示し、下段にＦＰＧＡオフロード後のＣＰＵ８ａで処理１を行い、ＦＰＧＡ９ａで処理２を行った場合の処理時間の長さを示している。
【００１８】
図２（Ａ）では、処理１及び処理２をＣＰＵ８ａで全て行った方が、ＦＰＧＡオフロード後に比べて処理時間が短い（第１の処理時間＜第２の処理時間）。この場合、処理２（ホットスポット処理）のＦＰＧＡオフロード化は好ましくない。
【００１９】
図２（Ｂ）では、処理２をＦＰＧＡにオフロードした場合の方が、処理１及び処理２をＣＰＵで全て行った処理時間より短い（第１の処理時間＞第２の処理時間）。この場合、処理２（ホットスポット処理）のＦＰＧＡオフロード化は好ましい。
【００２０】
このように、処理２（ホットスポット処理）に掛かる処理時間が、ＣＰＵ８ａでの処理時間よりＦＰＧＡ９ａでの処理時間の方が短くても、データ転送の処理時間を含めた場合には、必ずしもＦＰＧＡオフロード化に向いているとは限らない。
【００２１】
発明者等は、一般的に、ＦＰＧＡオフロード化の対象として好ましいと考えられている画像処理について、更に、以下のような検証を行い、ＦＰＧＡオフロード化の適否を容易に判定する手法を見出した。
【００２２】
発明者等が行った検証は、
・解像度と性能との関係
・ランダムアクセス有無と性能との関係
・１画像に対する演算数と性能との関係
・並列化又はパイプライン化の可否と性能との関係
である。上記検証のそれぞれについて、以下に説明する。
【００２３】
図３は、解像度と性能との関係を説明するための図である。図３では、解像度毎の性能ＤＢ３１に基づいて、設計者が指定したＣＰＵの種別とＦＰＧＡの種別の解像度毎の性能を示したグラフ３ｇの例を示している。
【００２４】
グラフ３ｇでは、横軸に解像度を示し、縦軸に性能（ｆｐｓ：Frame  Per  Second）を示している。グラフ３ｇより、ＣＰＵの性能は、解像度が「160x120」、「320x240」、及び「640x480」の間は、安定して高性能の４０ｆｐｓを示すが、解像度が「640x480」を超えると、「1280x960」で性能は凡そ半減し、「1920x1080」で「640x480」の性能から８０％程も低下してしまう。一方、指定された種別のＦＰＧＡでは、どの解像度においても、３０ｆｐｓ以上の性能を示している。
【００２５】
２つの性能を比べると、解像度が「640x480」以下の場合は、ＣＰＵがＦＰＧＡより性能が高く、「640x480」で両者は一致し、「640x480」より大きい解像度ではＦＰＧＡがＣＰＵより性能が高くなることが分かる。従って、解像度「640x480」が両者の性能が逆転する解像度である。このＣＰＵとＦＰＧＡの組み合せの場合、解像度が「640x480」以下の場合、ＦＰＧＡオフロード化は不向きであり、解像度が「640x480」より大きいの場合、ＦＰＧＡオフロード化が向いている、と言える。このように解像度は、ＦＰＧＡオフロード化の判定に重要な要素である。
【００２６】
上述したような性能が逆転する解像度となる性能逆転ポイント３ｐは、ＣＰＵとＦＰＧＡの種別の組み合せにより異なっている。発明者等は、この性能逆転ポイント３ｐに着目し、指定された種別の性能を解像度毎に示す性能ＤＢ３１を参照し、性能逆転ポイント３ｐを求め、ＦＰＧＡオフロード化の適否判定の閾値とすることを見出した。
【００２７】
図４は、ランダムアクセス有無と性能との関係を説明するための図である。図４では、元画像４ａのデータ転送の場合と、元画像４ａに線、文字等の描画が追加された画像４ｂのデータ転送の場合とで、ＦＰＧＡ向き／不向きを説明する。
【００２８】
ＦＰＧＡが元画像４ａを読み込む場合には、リードコマンドを外部メモリに１度行うのみで、外部メモリからＦＰＧＡへと連続したデータを一度で転送することができる。つまり、連続アドレスアクセスが可能であり、１コマンドで大量のデータ転送を行え、データ転送が効率的である。このような連続アドレスアクセスは、ＦＰＧＡ向きである。
【００２９】
一方、画像４ｂはランダムアクセスで読み込むため、１コマンドで少量のデータ転送を繰り返すことになる。このようなランダムアクセスは、ＦＰＧＡには不向きである。
【００３０】
図５は、１画像に対する演算数と性能との関係を説明するための図である。図５では、１画像に対して複数の演算を行う場合と、１つの演算を行う場合での性能の比較を説明する。一例として、複数の演算を行う場合をフィルタ処理で説明し、１つの演算の場合を色空間変換で説明する。本実施例において、演算数とは、異なる演算処理の数である。
【００３１】
フィルタ処理の場合は、フィルタのサイズで画像の左上から１ずつスライドしながら得られた画素値にフィルタを用いて得られた値に、周囲の値を係数でかけ合せ、更に、値の総和をフィルタの領域の結果として取得する。これらの一連の処理は、複数の演算（例えば、演算１、演算２、演算３、演算４、及び演算５）で行われている。
【００３２】
ＣＰＵではフィルタ処理をシリアル処理で行うため、１画像全体を対象に演算１を行い、演算１の終了に応じて演算２を行う。以下同様にして演算３、演算４、及び演算５を行う。そのため、演算１から演算５のそれぞれの処理時間の合計が、性能を表すことになる。
【００３３】
一方、ＦＰＧＡでは、フィルタの領域単位で演算１〜演算５を連続して行えるため、演算２は、演算１が１画像全体に対する処理の終了を待つ必要がない。演算１〜演算５がフィルタの領域単位で繰り返されることで、１画像全体の処理が行われる。この場合、データ転送時間４ｔが必要になったとしても、全体として、ＦＰＧＡがフィルタ処理を行う方が、ＣＰＵよりも短時間で終了することができる。つまり、フィルタ処理をＦＰＧＡにオフロードすることにより、並列化又はパイプライン化による性能向上が可能となる。
【００３４】
次に、演算数が１の場合の例として、色空間変換を考える。色空間変換は、ＲＧＢの１画像を表現する、Ｒ（Red）画像、Ｇ（Green）画像、及びＢ（Black）画像の各画素を係数を乗算して、輝度信号（Y）と、青色成分の差分信号（U）、赤色成分の差分信号（V）の３要素で表すＹＵＶの画像へと変換する。
【００３５】
色空間変換は、シリアル処理で行われるため、ＣＰＵでの処理に向いている。一方、ＦＰＧＡにオフロードした場合には、データ転送の処理時間が加算されるため、ＣＰＵでの処理時間より短くすることは困難である。１画像全体に対する演算数が少ないとデータ転送時間が支配的になり性能向上が難しい。従って、２以上の演算の有無でＦＰＧＡオフロード化の可否を概ね判断できる。
【００３６】
しかし、複数の演算を行う場合においても、並列化又はパイプライン化の可否によっては、ＦＰＧＡオフロード化に適する場合と適さない場合とがある。並列化又はパイプライン化の可否と性能との関係について図６及び図７で説明する。
【００３７】
図６は、複数の演算の並列化又はパイプライン化が可能な場合を説明するための図である。図６では、データフローで示されるように、１画像（入力画像）に対して演算Ａ、演算Ｂ、及び演算Ｃが行われ、結果として出力画像を得る場合を示している。
【００３８】
出力画像及びタイミングチャートより、並列化又はパイプライン化が可能な場合、即ち、入力画像を所定方向に走査しながら演算Ａ、演算Ｂ、及び演算Ｃを行える場合、演算Ａの出力を後段の演算Ｂが使用し、演算Ｂの出力を後段の演算Ｃが使用できる。
【００３９】
図７は、複数の演算の並列化又はパイプライン化が不可の場合を説明するための図である。図７では、データフローで示されるように、１画像（入力画像）に対して演算Ｄ及び演算Ｅが行われ、結果として出力画像を得る場合を示している。
【００４０】
出力画像及びタイミングチャートより、演算Ｅではランダムアクセスにより処理を行うため、入力画像全体に対する演算Ｄの処理の終了を待たなければならない。即ち、メモリに１画像分の処理結果が書き込まれ、演算Ｅでは、メモリにランダムアクセスによりデータを取得し処理を行う。図７の例では、ランダムアクセスを行う演算Ｅにより、並列化又はパイプライン化は不可である。
【００４１】
上述した検証に基づき、ＦＰＧＡオフロード化の適否（向き／不向き）を判断するＦＰＧＡ化判断処理が行われるネットワーク構成例について図８で説明する。図８は、本実施例に係るネットワーク構成例を示す図である。図８に示すシステム１０００は、情報処理装置１００と、１又は複数の端末５とが、ネットワーク２を介して接続可能である。
【００４２】
情報処理装置１００は、端末５からのＦＰＧＡオフロード化の判断を問合せる要求６ａを受信し、要求６ａの判断内容６ｂに基づくＦＰＧＡオフロード化の適否に係る判定結果７ｂ及び判定理由７ｃを含む応答７ａを端末５に送信する。
【００４３】
要求６ａには、ＦＰＧＡオフロード化の判断を行うための情報を含む判断内容６ｂが含まれる。応答７ａには、ＦＰＧＡオフロード化の適否を示す判定結果７ｂと、判断内容６ｂに対する判定理由７ｃとが含まれる。
【００４４】
図９は、情報処理装置のハードウェア構成例を示す図である。図９より、情報処理装置１００は、ＣＰＵ１１１と、主記憶装置１１２と、補助記憶装置１１３と、入力装置１１４と、表示装置１１５と、通信Ｉ／Ｆ１１７と、ドライブ装置１１８とを有し、バスＢ１に接続される。補助記憶装置１１３、入力装置１１４、及び情報処理装置１００がアクセス可能な外部記憶装置を含めて、記憶部１３０という。
【００４５】
ＣＰＵ１１１は、情報処理装置１００を制御するプロセッサに相当し、記憶部１３０に格納されたプログラムを実行することで、以下に説明する本実施例に係る様々な処理を実現する。表示装置１１５には、ユーザが入力装置１１４を操作することにより、様々な画面を表示する。
【００４６】
記憶媒体１１９（例えば、ＣＤ−ＲＯＭ（Compact  Disc  Read-Only  Memory）等）に記憶された本実施例に係るＦＰＧＡ化判断プログラムは、ドライブ装置１１８を介して記憶部１３０にインストールされ、ＣＰＵ１１によって実行可能となる。
【００４７】
尚、本実施例に係るＦＰＧＡ化判断プログラムを格納する記憶媒体１１９はＣＤ−ＲＯＭに限定されず、コンピュータが読み取り可能な、構造（structure）を有する１つ以上の非一時的（non-transitory）な、有形（tangible）な媒体であればよい。コンピュータ読取可能な記憶媒体として、ＣＤ−ＲＯＭの他に、ＤＶＤ（Digital  Versatile  Disk）ディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
【００４８】
図１０は、端末のハードウェア構成例を示す図である。図１０より、端末５は、コンピュータによって制御されるタブレット型、携帯電話等の情報処理端末であって、ＣＰＵ２１１と、主記憶装置２１２と、ユーザＩ／Ｆ（インターフェース）２１６と、通信Ｉ／Ｆ２１７と、ドライブ装置２１８とを有し、バスＢ２に接続される。主記憶装置２１２、及び記憶媒体２１９等を、記憶部２３０という。
【００４９】
ＣＰＵ２１１は、端末５を制御するプロセッサに相当し、記憶部２３０に格納されたプログラムを実行することで、以下に説明する本実施例に係る様々な処理を実現する。ユーザＩ／Ｆ（インターフェース）２１６は、ＣＰＵ２１１の制御のもとに必要な各種情報を表示し、また、ユーザによる操作入力を可能とするタッチパネル等である。通信Ｉ／Ｆ２１７による通信は無線又は有線に限定されるものではない。
【００５０】
端末５は、デスクトップ型、ノートブック型、ラップトップ型等の情報処理端末であっても良く、そのハードウェア構成は、図９のハードウェア構成と同様であるので、その説明を省略する。
【００５１】
また、本実施例は、図８に示すネットワーク構成に限定されない。各端末５に、情報処理装置１００の機能を実装し、単体で以下に説明する本実施例に係るＦＰＧＡ化判定処理を実現してもよい。
【００５２】
図１１は、情報処理装置の論理的な機能構成例を示す図である。図１１において、情報処理装置１００は、主に、ＦＰＧＡ化判定部４１を有する。記憶部１３０には、判断内容６ｂ、性能ＤＢ３１、対応テーブル３２、メッセージテーブル３３、判定データ３５等が記憶される。
【００５３】
ＦＰＧＡ化判定部４１は、ネットワーク２を介して受信した要求６ａに応じて、要求６ａの判断内容６ｂに基づいてＦＰＧＡ向き又は不向きを判断する処理を行い、ＣＰＵ１１１がＦＰＧＡ化判断プログラムを実行することにより実現される。
【００５４】
ＦＰＧＡ化判定部４１は、更に処理部として、要求受信部４２と、第１判定部４３と、第２判定部４４と、第３判定部４５と、応答作成部４６とを有する。処理部４２〜４６は、ＣＰＵ１１１によりそれぞれに対応するプログラムが実行されることにより実現される。
【００５５】
要求受信部４２は、端末５から送信された要求６ａを通信Ｉ／Ｆ１１７が受信すると、要求６ａに含まれる判断内容６ｂを記憶部１３０に記憶する。
【００５６】
第１判定部４３は、判断内容６ｂからＣＰＵ種別、ＦＰＧＡ種別、及び画像サイズを取得し、性能ＤＢ３１を参照して、ＦＰＧＡ化の判定基準となる第１閾値を求めて、求めた第１閾値と判断内容６ｂの画像サイズとの比較により、第１判定結果を得る。第１判定結果は、判定データ３５に記録される。画像サイズは解像度（画素数）を示し、データ量を表す。
【００５７】
第２判定部４４は、判断内容６ｂからメモリアクセスの種別を取得して、ＦＰＧＡ化の適否を判定して第２判定結果を得て、判定データ３５に記録する。第３判定部４５は、判断内容６ｂから演算数を取得して、ＦＰＧＡ化の適否を判定して第３判定結果を得て、判定データ３５に記録する。
【００５８】
応答作成部４６は、第１判定部４３、第２判定部４４、及び第３判定部４５による処理が終了すると、判定データ３５を用いて、対応テーブル３２から総合判定結果を取得する。そして、応答作成部４６は、判定データ３５を用いて、メッセージテーブル３３から第１判定結果、第２判定結果、及び第３判定結果のそれぞれに対応するメッセージを取得し、取得したメッセージと、総合判定結果とを含む応答７ａを作成して端末５へ送信する。作成した応答７ａには、総合判定結果を示す判定結果７ｂと、第１判定結果、第２判定結果、及び第３判定結果のそれぞれに対応するメッセージを示す判定理由７ｃとが含まれる。
【００５９】
次に、情報処理装置１００が行う本実施例に係る様々な処理について詳述する。図１２は、ＦＰＧＡ化判定部によるＦＰＧＡ化判定処理を説明するための図である。図１２において、ＦＰＧＡ化判定部４１は、端末５からの画面取得要求に応じて、ＦＰＧＡ化判定用の入力画面Ｇ８０（図１６）を端末５に提供する（ステップＳ１３１）。
【００６０】
情報処理装置１００の通信Ｉ／Ｆ１１７により、ネットワーク２を介して端末５からの要求６ａを受信すると、要求受信部４２が受信した要求６ａに含まれる判断内容６ｂを記憶部１３０に記憶する（ステップＳ１３２）。
【００６１】
そして、第１判定部４３、第２判定部４４、及び第３判定部４５による判定処理が行われる。これら判定処理を行う順は、図１２のフローチャートのステップ順に限定されない。任意の順で実行可能である。ここでは、一例として、第１判定処理、第２判定処理、そして第３判定処理の順で説明する。
【００６２】
第１判定部４３は、第１判定処理を行い（ステップＳ１３３）、第１判定結果が判定データ３５に記録される。また、第２判定部４４は、第２判定処理を行い（ステップＳ１３４）、第２判定結果が判定データ３５に記録される。更に、第３判定部４５は、第３判定処理を行い（ステップＳ１３５）、第３判定結果が判定データ３５に記録される。
【００６３】
第１判定結果、第２判定結果、及び第３判定結果が判定データ３５に記録されると、応答作成部４６は、判定データ３５を用いて対応テーブル３２を参照し、総合判定結果を取得する（ステップＳ１３６）。総合判定結果は、判定データ３５に記録される。
【００６４】
また、応答作成部４６は、判定データ３５を用いて、メッセージテーブルからメッセージを取得する（ステップＳ１３７）。応答作成部４６は、第１判定結果、第２判定結果、第３判定結果、及び総合判定結果のそれぞれに対応するメッセージを取得する。
【００６５】
そして、応答作成部４６は、得られた４つのメッセージを含む応答７ａを作成し、端末５へ送信する（ステップＳ１３８）。応答７ａには、総合判定結果を示す判定結果７ｂと、第１判定結果、第２判定結果、及び第３判定結果のそれぞれに対応する３つのメッセージとで構成された判定理由７ｃとが含まれている。
【００６６】
応答７ｂの送信の終了により、ＦＰＧＡ化判定部４１は、このＦＰＧＡ化判定処理を終了する。
【００６７】
図１３は、第１判定部による第１判定処理を説明するためのフローチャート図である。図１３中、Ｎ１、Ｎ２、Ｎ３、及びＮ４は、予め設定した閾値（正の値）であり、Ｎ１＜Ｎ３、また、Ｎ２＜Ｎ４である。
【００６８】
図１３において、第１判定部４３は、記憶部１３０の判断内容６ｂから画像サイズを取得する（ステップＳ３１１）。そして、第１判定部４３は、画像サイズを取得できたか否かを判断する（ステップＳ３１２）。画像サイズを取得できなかった場合（ステップＳ３１２のＮＯ）、第１判定部４３は、判定データ３５の画像サイズに対する判定結果として不明を記録して（ステップＳ３２３）、この第１判定処理を終了する。
【００６９】
一方、画像サイズを取得できた場合（ステップＳ３１２のＹＥＳ）、第１判定部４３は、性能ＤＢ３１のＣＰＵ性能テーブル３１ａを参照して、判断内容６ｂで指定される種別のＣＰＵの解像度毎の性能を取得する（ステップＳ３１３）。また、第１判定部４３は、性能ＤＢ３１のＦＰＧＡ性能テーブル３１ｂを参照して、判断内容６ｂで指定される種別のＦＰＧＡの解像度毎の性能を取得する（ステップＳ３１４）。ステップＳ３１３の処理とステップＳ３１４の処理の順を限定するものではない。順序は逆であってもよい。
【００７０】
第１判定部４３は、ＣＰＵとＦＰＧＡとで性能が逆転する解像度を取得する（ステップＳ３１５）。解像度毎にＣＰＵとＦＰＧＡとの性能を比較し、ＦＰＧＡの性能がＣＰＵの性能以上となる解像度を特定すればよい。特定した解像度は、図３に示すような性能逆転ポイント３ｐに相当する。
【００７１】
そして、第１判定部４３は、判断内容６ｂから取得した画像サイズが、性能が逆転する解像度より大きいか否かを判断する（ステップＳ３１６）。大きい場合（ステップＳ３１６のＹＥＳ）、第１判定部４３は、ＦＰＧＡ向きであることを判定データ３５に記録し（ステップＳ３２２）、この第１判定処理を終了する。
【００７２】
一方、判断内容６ｂから取得した画像サイズが、性能が逆転する解像度以下の場合（ステップＳ３１６のＮＯ）、第１判定部４３は、性能が逆転する解像度に対して、判断内容６ｂから取得した画像サイズは、１／Ｎ１のサイズ以上か否かを判断する（ステップＳ３１７）。１／Ｎ１のサイズ未満の場合（ステップＳ３１７ＮＯ）、第１判定部４３は、ステップＳ３１９へと進む。
【００７３】
一方、１／Ｎ１のサイズ以上の場合（ステップＳ３１７のＹＥＳ）、第１判定部４３は、判断内容６ｂで指定される種別のＦＰＧＡによるＮ２フレームの一括処理が可能か否かを判定する（ステップＳ３１８）。Ｎ２フレームの一括処理が可能な場合（ステップＳ３１８のＹＥＳ）、第１判定部４３は、ＦＰＧＡ向きであることを判定データ３５に記録し（ステップＳ３２２）、この第１判定処理を終了する。
【００７４】
一方、Ｎ２フレームの一括処理が可能でない場合（ステップＳ３１８のＮＯ）、第１判定部４３は、更に、判断内容６ｂの画像サイズが性能が逆転する解像度の１／Ｎ３サイズ以上か否かを判断する（ステップＳ３１９）。１／Ｎ３サイズ未満の場合（ステップＳ３１９のＮＯ）、第１判定部４３は、第１判定部４３は、ＦＰＧＡ向きであることを判定データ３５に記録し（ステップＳ３２１）、この第１判定処理を終了する。
【００７５】
一方、１／Ｎ３サイズ以上の場合（ステップＳ３１９のＹＥＳ）、第１判定部４３は、Ｎ４フレームの一括処理が可能か否かを判断する（ステップＳ３２０）。Ｎ４フレームの一括処理が可能な場合（ステップＳ３２０のＹＥＳ）、第１判定部４３は、ＦＰＧＡ向きであることを判定データ３５に記録し（ステップＳ３２２）、この第１判定処理を終了する。
【００７６】
一方、Ｎ４フレームの一括処理が可能でない場合（ステップＳ３２０のＮＯ）、第１判定部４３は、ＦＰＧＡ向きであることを判定データ３５に記録し（ステップＳ３２１）、この第１判定処理を終了する。
【００７７】
上述より、本実施例では、性能が逆転する解像度未満であっても、複数フレームの一括処理の有無によりより精度よくＦＰＧＡ化の適否を判定することができる。
【００７８】
図１４は、第２判定部による第２判定処理を説明するためのフローチャート図である。図１４において、第２判定部４４は、記憶部１３０内の判断内容６ｂを参照して、メモリアクセスに関する項目が全て不明の設定であるか否かを判断する（ステップＳ４１１）。全てが不明の設定でない場合（ステップＳ４１１のＮＯ）、第２判定部４４は、以下の処理を行う。以下の処理を行う場合には、判断内容６ｂには、メモリアクセスに関する項目の１つに「有」及び「無」以外の「不明」を示す場合がある。その場合には、「不明」を示さない項目の「有」又は「無」に従うものとする。
【００７９】
第２判定部４４は、判断内容６ｂを参照して、ランダムアクセスがあるか否かを判断する（ステップＳ４１２）。追加描画が「有」の場合、ランダムアクセスがあると判断すればよい。ランダムアクセスがある場合（ステップＳ４１２のＹＥＳ）、第２判定部４４は、ＦＰＧＡ不向きであることを判定データ３５に記録し（ステップＳ４１４）、この第２判定処理を終了する。
【００８０】
一方、ランダムアクセスがない（又は不明の）場合（ステップＳ４１２のＮＯ）、第２判定部４４は、更に、１画像分の全データが揃わないと開始できない演算があるか否かを判断する（ステップＳ４１３）。１画像分の全データが揃わないと開始できない演算がある場合（ステップＳ４１２のＹＥＳ）、第２判定部４４は、ＦＰＧＡ不向きであることを判定データ３５に記録し（ステップＳ４１５）、この第２判定処理を終了する。
【００８１】
一方、１画像分の全データが揃わないと開始できない演算がない（又は不明の）場合（ステップＳ４１３のＮＯ）、第２判定部４４は、ＦＰＧＡ向きであることを判定データ３５に記録し（ステップＳ４１４）、この第２判定処理を終了する。
【００８２】
一方、全て不明の設定の場合（ステップＳ４１１のＹＥＳ）、第２判定部４４は、不明であることを判定データ３５に記録して（ステップＳ４１６）、この第２判定処理を終了する。
【００８３】
図１５は、第３判定部による第３判定処理を説明するためのフローチャート図である。図１５中、Ｎ５は、予め定めた閾値（正の値）を示す。図１５において、第３判定部４５は、記憶部１３０内の判断内容６ｂを参照して、演算に関する項目が全て不明の設定か否かを判断する（ステップＳ５１１）。全てが不明の設定でない場合（ステップＳ５１１のＮＯ）、第３判定部４５は、以下の処理を行う。以下の処理を行う場合には、判断内容６ｂには、演算に関する項目の１つに「有」及び「無」以外の「不明」を示す場合がある。その場合には、「不明」を示さない項目の「有」又は「無」に従うものとする。
【００８４】
１画像への演算がＮ５個以上あるか否かを判断する（ステップＳ５１２）。Ｎ５個以上ある場合（ステップＳ５１２のＹＥＳ）、第３判定部４５は、並列処理が可能であると判断して、ＦＰＧＡ向きであることを判定データ３５に記録して（ステップＳ５１５）、この第３判定処理を終了する。
【００８５】
一方、Ｎ５個未満の（又は不明の）場合（ステップＳ５１２のＮＯ）、第３判定部４５は、更に、ＦＰＧＡ向きの処理か否かを判定する（ステップＳ５１３）。一例として、判断内容６ｂが、文字や点又は線などの追加描画があることを示しているか否かをチェックすればよい。判断内容６ｂの追加描画の有無の設定を参照し、追加描画が「有」の設定の場合、ＦＰＧＡ向きではないと判断し、追加描画が無い設定の場合、ＦＰＧＡ不向きであると判断する。
【００８６】
ＦＰＧＡ向きの処理でないと判断した場合（又は不明の場合）（ステップＳ５１３のＮＯ）、第３判定部４５は、ＦＰＧＡ不向きであることを判定データ３５に記録し（ステップＳ５１４）、この第３判定処理を終了する。一方、第３判定部４５は、ＦＰＧＡ向きの処理であると判断した場合（ステップＳ５１３のＹＥＳ）、第３判定部４５は、ＦＰＧＡ向きであることを判定データ３５に記録し（ステップＳ５１５）、この第３判定処理を終了する。
【００８７】
一方、全て不明の設定の場合（ステップＳ５１１のＹＥＳ）、第３判定部４５は、不明であることを判定データ３５に記録して（ステップＳ５１６）、この第３判定処理を終了する。
【００８８】
図１６は、ＦＰＧＡ化判定用の入力画面の例を示す図である。図１６に示すＦＰＧＡ化判定用の入力画面Ｇ８０は、端末５のユーザＩ／Ｆ２１６に表示される画面であり、設定領域８１〜８６と、実行ボタン８７とを有する。
【００８９】
設定領域８１はＣＰＵ種別を選択する領域であり、設定領域８２はＦＰＧＡ種別を選択する領域である、設定領域８３は画像サイズ（解像度）を選択する領域である。また、設定領域８４は文字、点、線等の追加描画の有無を設定する領域であり、設定領域８５は１画像分の全データが揃わないと開始できない演算の有無を設定する領域であり、設定領域８６は１画像への演算が２つ以上であるかの有無を設定する領域である。
【００９０】
設定領域８１〜８３は必須であるが、設定領域８４〜８６は、「有」及び「無」に加えて「不明」の選択を許容している。これにより、入力される画像データが不明な場合であっても、ある程度、ＦＰＧＡオフロード化の可否を判定可能とし、ハードウェアに関する知識及び経験が十分でないユーザ（例えば、ソフトウェア開発者等）への利便性を向上させることができる。
【００９１】
そして、ユーザが設定を終了した際に実行ボタン８７を選択すると、要求６ａが情報処理装置１００へと送信される。実行ボタン８７の選択により、ユーザが設定した設定値を示す判断内容６ｂが要求６ａに含まれ送信される。
【００９２】
図１７は、性能ＤＢのデータ構成例を示す図である。図１７において、性能ＤＢ３１は、ＣＰＵ性能テーブル３１ａと、ＦＰＧＡ性能テーブル３１ｂとを有する。
【００９３】
ＣＰＵ性能テーブル３１ａは、ＣＰＵ種別ごとに、各解像度における性能等を示すテーブルであり、ＣＰＵ種別、解像度等の項目を有する。ＣＰＵ種別は、ＣＰＵの種別を特定する製品名を示す。入力画面Ｇ８０（図１６）の設定領域８１の選択肢には、ＣＰＵ性能テーブル３１ａに存在するＣＰＵ種別が一覧で示される。
【００９４】
解像度は、複数の解像度（画素数）を項目として有し、解像度ごとの性能（fps）を示す。一例として、ＱＶＧＡ（Quarter  Video  Graphics  Array）、ＨＶＧＡ（Half  VGA）、ＶＧＡ（Video  Graphics  Array）、ＨＤ（High  Definition）、fullＨＤ（full  High  Definition）、４Ｋ等のそれぞれに対する性能が示される。
【００９５】
ＦＰＧＡ性能テーブル３１ｂは、ＦＰＧＡ種別ごとに、各解像度における性能等を示すテーブルであり、ＦＰＧＡ種別、解像度等の項目を有する。ＦＰＧＡ種別は、ＦＰＧＡの種別を特定する製品名を示す。入力画面Ｇ８０（図１６）の設定領域８２の選択肢には、ＦＰＧＡ性能テーブル３１ｂに存在するＦＰＧＡ種別が一覧で示される。解像度は、複数の解像度（画素数）を項目として有し、解像度ごとの性能（fps）を示す。
【００９６】
図１８は、対応テーブルのデータ構成例を示す図である。図１８に示す対応テーブル３２は、第１判定部４３、第２判定部４４、及び第３判定部４５により得られた判定結果の組み合せごとに、ＦＰＧＡオフロード化に対する総合的な判定結果を示すテーブルである。そして、対応テーブル３２は、解像度、メモリアクセス、演算数、総合判定結果等の項目を有する。
【００９７】
解像度は、第１判定部４３による判定結果を示す。メモリアクセスは、第２判定部４４よる判定結果を示す。演算数は、第３判定部４５による判定結果を示す。これら３項目では、ＦＰＧＡ不向きを「０」で示し、ＦＰＧＡ向きを「１」で示し、不明を「＊」で示している。
【００９８】
総合判定結果は、解像度、メモリアクセス、及び演算数の判定結果の組み合せに対する判定結果を示す。ＦＰＧＡ不向きを「０」で示し、ＦＰＧＡ向きを「１」で示し、向き／不向きの判定ができない場合を「判定不可」で示している。
【００９９】
対応テーブル３２より、解像度、メモリアクセス、及び演算数の全てでＦＰＧＡ向きである場合、メモリアクセスのみ不明で他２項目でＦＰＧＡ向きである場合、演算数のみ不明で他２項目でＦＰＧＡ向きである場合に、ＦＰＧＡ向きである総合判定結果を得る。また、解像度が不明の場合には、他２項目でＦＰＧＡ向き又は不向きのいずれであっても、総合判定結果は「判定不可」を示す。
【０１００】
図１９は、メッセージテーブルのデータ構成例を示す図である。図１９に示すメッセージテーブル３３は、第１判定部４３、第２判定部４４、及び第３判定部４５により得られた判定結果のそれぞれに対するメッセージと、総合判定結果に対するメッセージとを示すテーブルである。メッセージテーブル３３は、処理内容、判定結果、メッセージ等の項目を有する。
【０１０１】
処理内容は、解像度、メモリアクセス、演算数、及び総合判定結果を示す。判定結果は、処理内容ごとの判定結果を示す。判定結果を表す「０」、「１」、及び「＊」が示される。メッセージは、各処理内容に対して３つの判定結果のそれぞれに対するメッセージを示す。
【０１０２】
図２０は、応答作成部による応答作成処理を説明するための図である。図２０より、第１判定部４３、第２判定部４４、及び第３判定部４５により、判定データ３５に示すように、解像度について「１」（ＦＰＧＡ向き）、メモリアクセスについて「０」（ＦＰＧＡ不向き）、及び演算数について「１」（ＦＰＧＡ向き）を得られたとする。
【０１０３】
応答作成部４６は、これらの値を用いて、対応テーブル３２（図１８）を参照することで、総合判定結果「０」を得て、判定データ３５に記録する。そして、４つの判定結果を示す判定データ３５を用いて、メッセージテーブル３３（図１９）を参照し、判定結果ごとのメッセージを抽出し、抽出メッセージ３３−２を記憶部１３０に記憶する。
【０１０４】
抽出メッセージ３３−２には、
・解像度が「１」判定のメッセージ「FPGA化により性能向上が見込める画像サイズです。」
・メモリアクセスが「０」判定のメッセージ「文字描画などのランダムアクセスはFPGA化に向きません。」
・演算数が「１」判定のメッセージ「１画面に対する演算数が２回以上の場合はFPGA化による性能向上が見込めます。」
・総合判定結果が「０」判定のメッセージ「FPGA化に向いていません。」
が含まれている。
【０１０５】
応答作成部４６は、総合判定結果が「０」判定のメッセージを判定結果７ｂとし、解像度が「１」判定のメッセージと、メモリアクセスが「０」判定のメッセージと、演算数が「１」判定のメッセージとを判定理由７ｃとして、応答７ａを作成し、端末５へ送信する。端末５では、受信した応答７ａに基づく判定結果画面Ｇ９０（図２１）が、ユーザＩ／Ｆ２１６に表示される。
【０１０６】
図２１は、判定結果画面の例を示す図である。図２１に示す判定結果画面Ｇ９０は、総合判定結果を示す判定メッセージ９１、判定理由９２等を有する。
【０１０７】
判定メッセージ９１では、ＦＰＧＡオフロード化向きである場合には、「進んでよし！」のメッセージにチェックが表示され、ＦＰＧＡオフロード化が不向きである場合には、「撤退あるのみ」のメッセージにチェックが表示される。
【０１０８】
また、判定理由９２には、応答作成部４６がメッセージテーブル３３から抽出した３つのメッセージが表示される。判定理由９２に、ＦＰＧＡオフロード化が向かない理由が含まれている場合には強調表示９２−２により、ユーザに周知させてもよい。文字を赤色で強調表示９２−２した場合には、ユーザに検討を促すため、例えば、「判定理由の赤字の対処を検討ください。」等のメッセージ９３を表示してもよい。
【０１０９】
上述したように、本実施例によれば、既存技術のようにソースコードを解析することがないため、迅速にＦＰＧＡオフロード化の向き／不向きの判定結果を提供することができる。従って、ユーザにＦＰＧＡオフロード化の知識及びスキルが十分になくても、入力画面Ｇ８０への設定のみで的確にかつ迅速に判定結果を得ることができる。また、判定結果画面Ｇ９０により判定理由９２が提供されるため、検討しておく事項を把握することができる。
【０１１０】
また、開発中のソースコード又は処理の詳細が外部に漏れる心配がなく、ユーザは、不安なくＦＰＧＡオフロード化の向き／不向きを判定するための要求を行える。本実施例は、ユーザにとって開発内容について安全にかつ簡便に利用可能である。
【０１１１】
上記実施例において、ＦＰＧＡは、プログラム可能な集積回路であり、ＣＰＵは、回路構成が固定の集積回路である。要求受信部４２は受付部の一例であり、応答作成部４６は決定部の一例である。
【０１１２】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、主々の変形や変更が可能である。
【０１１３】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
回路構成が固定の第１集積回路から回路構成がプログラム可能な第２集積回路へオフロードするか否かの判断を行うための演算情報を受け付け、
前記演算情報から得られる演算が行われる対象の画像の解像度が、前記オフロードの適否の閾値以上である場合、該オフロードが可能であると判定する第１判定処理と、
前記演算情報が前記演算において前記第２集積回路に搭載するメモリへのアクセスが連続すると判断した場合、前記オフロードが可能であると判定する第２判定処理と、
前記演算情報が前記演算を並列に処理できると判断した場合、前記オフロードが可能であると判定する第３判定処理と、
前記第１判定処理、前記第２判定処理、及び前記第３判定処理のそれぞれによる肯定判定又は否定判定の組み合せにより、前記オフロードの可否を決定して記憶部に出力する決定処理と
をコンピュータに実行させるＦＰＧＡ化判断プログラム。
（付記２）
前記演算情報は、前記第１集積回路の第１の製品を特定する情報と、前記第２集積回路の第２の製品を特定する情報とを含み、
前記第１判定処理では、前記記憶部に記憶された、製品ごとに複数の解像度それぞれに対する性能を示すデータベースから、該複数の解像度それぞれに対する前記第１の製品の性能と前記第２の製品の性能とを比較して、該第２の製品の性能が該第１の製品の性能以上となる解像度のうち最小の解像度を特定し、前記閾値に設定する
ことを特徴とする付記１記載のＦＰＧＡ化判断プログラム。
（付記３）
前記第２判定処理では、前記演算情報が前記画像に対して描画が追加されていないことを示す場合、前記第２集積回路に搭載するメモリへのアクセスが連続すると判定する
ことを特徴とする付記１又は２記載のＦＰＧＡ化判断プログラム。
（付記４）
前記第３判定処理では、前記演算情報が前記画像の全データが前記メモリに存在せずとも前記演算が開始可能であることを示す場合、前記演算を並列に処理できると判断する
ことを特徴とする付記１乃至３のいずれか一項記載のＦＰＧＡ化判断プログラム。
（付記５）
前記第１判定処理において前記オフロードが可能であると判断した場合であって、前記第２判定処理と前記第３判定処理の一方において前記オフロードが可能であるか否かが不明であると判断し、かつ、他方において前記オフロードは不可であると判断した場合、前記決定処理は、前記オフロードは可能であると決定する
ことを特徴とする付記１乃至４のいずれか一項記載のＦＰＧＡ化判断プログラム。
（付記６）
前記第１判定処理において、前記オフロードが可能であるか否かが不明であると判断した場合、前記決定処理は、前記オフロードの可否の判定は不可能であると決定する
ことを特徴とする付記１乃至５のいずれか一項記載のＦＰＧＡ化判断プログラム。
（付記７）
前記第１判定処理、前記第２判定処理、及び前記第３判定処理において、前記オフロードが可能又は不可能の判定がなされており、前記第１判定処理、前記第２判定処理、及び前記第３判定処理の少なくとも１つ以上において、該オフロードは不可能であると判定された場合、前記決定処理は、前記オフロードは不可であると決定する
ことを特徴とする付記１乃至５のいずれか一項記載のＦＰＧＡ化判断プログラム。
（付記８）
前記決定処理において、前記記憶部に記憶された前記第１判定処理、前記第２判定処理、前記第３判定処理、及び該決定処理で得られたそれぞれの判定結果に対応付けられたメッセージを取得して、取得した該メッセージに基づく画面を表示部に表示させる
ことを特徴とする付記１乃至７のいずれか一項記載のＦＰＧＡ化判断プログラム。
（付記９）
回路構成が固定の第１集積回路から回路構成がプログラム可能な第２集積回路へオフロードするか否かの判断を行うための演算情報を受け付け、
前記演算情報から得られる演算が行われる対象の画像の解像度が、前記オフロードの適否の閾値以上である場合、該オフロードが可能であると判定する第１判定処理と、
前記演算情報が前記演算において前記第２集積回路に搭載するメモリへのアクセスが連続すると判断した場合、前記オフロードが可能であると判定する第２判定処理と、
前記演算情報が前記演算を並列に処理できると判断した場合、前記オフロードが可能であると判定する第３判定処理と、
前記第１判定処理、前記第２判定処理、及び前記第３判定処理のそれぞれによる肯定判定又は否定判定の組み合せにより、前記オフロードの可否を決定して記憶部に出力する決定処理と
をコンピュータが行うＦＰＧＡ化判断方法。
（付記１０）
回路構成が固定の第１集積回路から回路構成がプログラム可能な第２集積回路へオフロードするか否かの判断を行うための演算情報を受け付ける受付部と、
前記演算情報から得られる演算が行われる対象の画像の解像度が、前記オフロードの適否の閾値以上である場合、該オフロードが可能であると判定する第１判定部と、
前記演算情報が前記演算において前記第２集積回路に搭載するメモリへのアクセスが連続すると判断した場合、前記オフロードが可能であると判定する第２判定部と、
前記演算情報が前記演算を並列に処理できると判断した場合、前記オフロードが可能であると判定する第３判定部と、
前記第１判定部、前記第２判定部、及び前記第３判定部のそれぞれによる肯定判定又は否定判定の組み合せにより、前記オフロードの可否を決定して記憶部に出力する決定部と
を有する情報処理装置。
【符号の説明】
【０１１４】
５      端末
６ａ    要求、      ６ｂ  判断内容
７ａ    応答、      ７ｂ  判定結果、      ７ｃ  判定理由
３１    性能ＤＢ
３１ａ  ＣＰＵ性能テーブル、            ３１ｂ  ＦＰＧＡ性能テーブル
３２    対応テーブル
３３    メッセージテーブル
３５    判定データ
４１    ＦＰＧＡ化判定部
４２    要求受信部
４３    第１判定部
４４    第２判定部
４５    第３判定部
４６    応答作成部
１００  情報処理装置
【図１】
2020109589.tif 000003
【図２】
2020109589.tif 000004
【図３】
2020109589.tif 000005
【図４】
2020109589.tif 000006
【図５】
2020109589.tif 000007
【図６】
2020109589.tif 000008
【図７】
2020109589.tif 000009
【図８】
2020109589.tif 000010
【図９】
2020109589.tif 000011
【図１０】
2020109589.tif 000012
【図１１】
2020109589.tif 000013
【図１２】
2020109589.tif 000014
【図１３】
2020109589.tif 000015
【図１４】
2020109589.tif 000016
【図１５】
2020109589.tif 000017
【図１６】
2020109589.tif 000018
【図１７】
2020109589.tif 000019
【図１８】
2020109589.tif 000020
【図１９】
2020109589.tif 000021
【図２０】
2020109589.tif 000022
【図２１】
2020109589.tif 000023