(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-14
(45)【発行日】2024-02-22
(54)【発明の名称】情報処理装置及び情報処理システム
(51)【国際特許分類】
G06N 3/02 20060101AFI20240215BHJP
G06F 11/34 20060101ALI20240215BHJP
【FI】
G06N3/02
G06F11/34 109
(21)【出願番号】P 2020157670
(22)【出願日】2020-09-18
【審査請求日】2022-07-01
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(73)【特許権者】
【識別番号】317011920
【氏名又は名称】東芝デバイス&ストレージ株式会社
(74)【代理人】
【識別番号】100091487
【氏名又は名称】中村 行孝
(74)【代理人】
【識別番号】100105153
【氏名又は名称】朝倉 悟
(74)【代理人】
【識別番号】100107582
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100118843
【氏名又は名称】赤岡 明
(74)【代理人】
【識別番号】100202429
【氏名又は名称】石原 信人
(72)【発明者】
【氏名】夏井 裕介
【審査官】北川 純次
(56)【参考文献】
【文献】特開2020-149230(JP,A)
【文献】特開平11-259433(JP,A)
【文献】中国特許出願公開第111160515(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02-3/10
G06N 20/00
G06F 11/34
(57)【特許請求の範囲】
【請求項1】
ハードウェアを識別する情報と、DNN(Deep Neural Network)構造を識別する情報と、前記ハードウェアにおいて前記DNN構造を実行する場合の実行時間と、を格納する、記憶部と、
ターゲットハードウェアと、ターゲットDNN構造の組み合わせが前記記憶部に格納されているかを検索する、検索部と、
前記DNN構造と、前記実行時間の組み合わせに基づいて、前記ハードウェア同士の類似度を算出する、類似度算出部と、
前記類似度に基づいて抽出した参照ハードウェアにおける前記ターゲットDNN構造及び前記参照ハードウェアにおける前記ターゲットハードウェアと同じ構造を有する前記DNN構造の実行時間に基づいて、前記実行時間を取得する、構造探索部と、
を備える情報処理装置。
【請求項2】
前記類似度算出部は、複数の前記ハードウェア間において、前記DNN構造と、前記実行時間と、を用いたランク相関を算出し、前記ランク相関を前記類似度として取得する、
請求項
1に記載の情報処理装置。
【請求項3】
前記構造探索部は、前記類似度に基づいて抽出した参照ハードウェアにおける前記ターゲットDNN構造及び前記参照ハードウェアにおける前記ターゲットハードウェアと同じ構造を有する前記DNN構造の実行時間について、内挿計算をすることにより、前記実行時間を取得する、
請求項
1又は請求項
2に記載の情報処理装置。
【請求項4】
前記構造探索部は、前記類似度に基づいて抽出した参照ハードウェアにおける前記ターゲットDNN構造及び前記参照ハードウェアにおける前記ターゲットハードウェアと同じ構造を有する前記DNN構造の実行時間について、外挿計算をすることにより、前記実行時間を取得する、
請求項
1から請求項
3のいずれかに記載の情報処理装置。
【請求項5】
前記ハードウェアにおいて前記記憶部に前記実行時間が格納されていない前記DNN構造に関するデータを、前記ハードウェア、前記実行時間と紐付けて前記記憶部に格納する、データ追加部、
をさらに備え、
前記類似度算出部は、追加されたデータに基づいて、前記類似度を算出する、
請求項
1から請求項
4のいずれかに記載の情報処理装置。
【請求項6】
前記ハードウェアに、前記DNN構造を処理させて、実行時間を測定する、測定部、
をさらに備える、請求項1から請求項
5のいずれかに記載の情報処理装置。
【請求項7】
記憶部に格納されているハードウェアを識別する情報と、DNN構造を識別する情報と、前記ハードウェアにおいて前記DNN構造を実行する場合の実行時間と、の情報から、ターゲットハードウェアと、ターゲットDNN構造の組み合わせが前記記憶部に格納されているかを検索する、検索部と、
前記DNN構造と、前記実行時間の組み合わせに基づいて、前記ハードウェア同士の類似度を算出する、類似度算出部と、
前記類似度に基づいて抽出した参照ハードウェアにおける前記参照ハードウェアにおける前記ターゲットDNN構造及び前記参照ハードウェアにおける前記ターゲットハードウェアと同じ構造を有する前記DNN構造の実行時間に基づいて、前記実行時間を取得する、構造探索部と、
を備える情報処理システム。
【請求項8】
前記ハードウェアにおいて前記記憶部に前記実行時間が格納されていない前記DNN構造に関するデータを、前記ハードウェア、前記実行時間と紐付けて前記記憶部に格納する、データ追加部と、
前記DNN構造を処理する、複数の種類のハードウェアと、
前記複数の種類のハードウェアに、前記DNN構造を処理させる、実行部と、
前記実行部において、前記複数の種類のハードウェアについて、前記DNN構造を処理する実行時間を測定する、計測部と、
を備える請求項
7に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置及び情報処理システムに関する。
【背景技術】
【0002】
DNN(Deep Neural Network)の構造を特定のハードウェアに合わせて最適化を行う場合に、DNNの構造を決定するために構造探索手法が用いられる。構造探索においては、一般的に大量の構造を設定し、評価する必要がある。例えば、今までDNNを用いていなかった新規なハードウェアについて、当該ハードウェア向けに実行時間を含めて最適化をする場合には、当該ハードウェア上で実行時間を測定して評価する必要がある。
【0003】
しかしながら、1つの構造の評価についてもエポック数、パラメータ数に応じて一般的には膨大な時間が掛かり、このような構造の探索は、現実的な時間において完了させることが困難である。DNNを有効に用いるために、この構造の評価を高速に実行することが求められている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
一実施形態は、DNNに係る構造の実行時間を推定する情報処理装置及び情報処理システムを提案する。
【課題を解決するための手段】
【0006】
一実施形態によれば、情報処理装置は、記憶部と、検索部と、構造探索部と、を備える。記憶部は、ハードウェアと、DNN(Deep Neural Network)構造と、前記ハードウェアにおいて前記DNN構造を実行する場合の実行時間と、を格納する。検索部は、ターゲットハードウェアと、ターゲットDNN構造の組み合わせが前記記憶部に格納されているかを検索する。構造探索部は、前記検索部の検索結果に基づいて、前記ターゲットハードウェアと、前記ターゲットDNN構造との組み合わせから、前記実行時間を取得する。
【図面の簡単な説明】
【0007】
【
図1】一実施形態に係る情報処理装置の構成を示すブロック図。
【
図2】一実施形態に係る情報処理装置の処理を示すフローチャート。
【
図3】一実施形態に係る情報処理装置の構成を示すブロック図。
【
図4】一実施形態に係る情報処理装置の処理を示すフローチャート。
【
図5】一実施形態に係る情報処理装置の処理を示すフローチャート。
【
図6】一実施形態に係る情報処理装置の構成を示すブロック図。
【
図7】一実施形態に係る情報処理装置の処理を示すフローチャート。
【
図8】一実施形態に係る情報処理装置の構成を示すブロック図。
【
図9】一実施形態に係る情報処理装置の処理を示すフローチャート。
【発明を実施するための形態】
【0008】
以下、図面を参照して実施形態について説明する。説明において、「より大きい」「より小さい」等の文言が使用されるかもしれないが、これは、適宜、適切に、「以上」「以下」等と読み替えてもよい。
【0009】
(第1実施形態)
情報処理装置1は、構造探索部12と、検索部10と、記憶部14と、を備える。なお、図には示されないが、情報処理装置1は、適切に入出力インタフェースを備える。この入出力インタフェースを介して、検索対象の入力、情報の出力等を行う。以下、すでに処理時間が計測されているハードウェアとDNNの構造に対して、処理時間を推定したいハードウェア及びDNNの構造を、ターゲットとなるハードウェア(ターゲットハードウェア)及びターゲットとなるDNNの構造(ターゲットDNN構造)と記載する。
【0010】
情報処理装置1は、ターゲットとなるハードウェアにおいて、ターゲットとなる構造を有する訓練済のDNNを用いる場合の処理時間を評価する。例えば、車載のデバイスにおいて、画像中の車、人物、障害物等の抽出を実行するDNNに、カメラモジュールにより取得した画像を入力した場合に、どの程度の処理時間が掛かるのかを評価する。この評価には、例えば、DNNの構造、ハードウェアの他、入力データの大きさ、例えば、画像の解像度等の情報を用いてもよい。
【0011】
上記は一例としてあげたものであり、この例に限定されることなく、ハードウェアとDNNの構造とに紐付けて処理時間を評価することができる。情報処理装置1は、例えば、工場のラインの制御、プラントの制御、監視カメラ等、他の用途にも適用することができる。
【0012】
DNNの構造(DNN構造とも以下で記載する)とは、例えば、DNNが何層であるか、分岐が存在するか、各層の組み合わせはどのようになっているか、畳み込み層のカーネル及びステップはどのようなものか、又は、フィーチャー同士の重なりがどのようなものかであるかにより判断される。
【0013】
DNNの構造を有するモデルは、例えば、画像を入力すると分類結果を出力する等の何らかの意味のあるタスクを実行する単位としてDNNモデルと呼ばれることが多い。本開示におけるDNNの構造は、一例として、上記のタスクを実行する処理時間が計測できるものを対象とする。
【0014】
複数のタスクを含む1つのDNNの構造を、1又は複数のタスクを有する複数のDNNの構造に分割する場合について考慮する。このような場合、ある分割されたDNNの構造に着目すると、このDNNの構造の入力層に入力される変数は、1つ前の1又は複数のDNNの構造における出力層から出力される変数と考えることができる。このため、これらの分割した複数のDNNの構造に対しても、本開示の実施形態を適用することが可能である。
【0015】
例えば、分割されたあるDNNの構造に対して、あるハードウェアにおいて実行した場合の処理時間が観測、又は、推定できると、この分割されたDNNの構造に対して、本実施形態の装置、方法を適用し、他のハードウェアにおける処理時間を推定することも可能となる。このように、対象となるDNNの構造における一部の構造に対しても、本開示に記載の形態を適用することができる。
【0016】
ハードウェアは、例えば、各種CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、その他のアクセラレータ等の仕様に基づくものである。
【0017】
検索部10は、構造探索の対象となるデータが記憶部14に格納されているか否かを検索する。
【0018】
構造探索部12は、検索部10が検索した結果に基づいて、ターゲットとなるハードウェアにおけるターゲットとなるDNNの構造の処理時間等の情報があるか否かを探索する。構造探索部12は、ハードウェアと、DNNとの情報の組み合わせにより、この探索を実行する。なお、探索は、ハードウェア、構造の組み合わせのみではなく、他の情報をキーとして探索をしてもよい。
【0019】
記憶部14は、例えば、各種RAM(Read Only Memory)等のメモリをそなえる。また、別の例として、記憶部14は、情報処理装置1に備えられることは必須ではなく、情報処理装置1の外部にあるストレージ等であってもよい。この記憶部14内の情報は、例えば、データベースにより管理されており、ハードウェアの情報と、当該ハードウェアにおける種々のDNNの構造に対する処理時間とが紐付けて格納されている。
【0020】
この記憶部14は、例えば、ハードウェアを識別するための情報と、DNN構造を識別するための情報と、これらの2つの認識情報に紐付けられた実行時間と、を記憶する。換言すると、記憶部14には、ハードウェアの識別子と、DNN構造の識別子と、これらに紐付けられた実行時間の情報と、が格納される。検索部10は、この識別子との紐付け関係により、あるハードウェアにおいて、あるDNN構造を実行させた場合の処理時間の情報を検索してもよい。
【0021】
図2は、本実施形態に係る情報処理装置の処理を示すフローチャートである。
【0022】
まず、検索部10は、ターゲットとなるDNN構造と、ハードウェア(以下、HWと記載する)の組み合わせが記憶部14に登録されているか否かを検索する(S100)。
【0023】
次に、構造探索部12は、検索部10が検索した結果に、ターゲットとなるDNN構造とHWとの組み合わせが存在するか否かを探索する(S102)。組み合わせが存在しない場合(S102:NO)、処理を終了する。
【0024】
ターゲットとなるDNN構造とHWとの組み合わせが存在する場合(S102:YES)には、構造探索部12は、探索対象のDNN構造とHWとの組み合わせから、処理時間についての情報を取得する(S104)。構造探索部12は、この取得結果を適切に出力して、処理を終了する。
【0025】
以上のように、本実施形態によれば、データベース等に格納されている情報に基づいて、HWとDNN構造との組み合わせの処理時間を評価することができる。
【0026】
(第2実施形態)
前述の実施形態においては、データベース内に存在しているデータから評価をするものであったが、本実施形態ではさらに、ハードウェア間における類似度を考慮することにより、データベース内に存在しないデータからの評価を行うものである。
【0027】
図3は、本実施形態に係る情報処理装置の構成を示すブロック図である。情報処理装置1は、前述と同様に、検索部10と、構造探索部12と、記憶部14と、を備え、さらに、類似度算出部16と、を備える。
【0028】
類似度算出部16は、記憶部14に格納されているデータに基づいて、HW相互の類似度を算出し、記憶部14に格納する。類似度算出部16は、記憶部14に複数のHWの複数のDNN構造に対して実行時間が格納されている場合に、HW同士の類似度を算出する。
【0029】
類似度算出部16は、例えば、ランク相関を算出することにより、類似度を取得する。例えば、類似度としてランク相関として得られた値を用いる。このランク相関の算出において、類似度算出部16は、例えば、畳み込みの種類、個数、入力サイズによりグループ分けを行って、グループごとにランク層間を算出することにより、緻密にHW間の類似度の精度を向上してもよい。もちろん、グループ分けをせずに類似度を算出してもよい。
【0030】
図4は、本実施形態に係る類似度算出部16の処理を示すフローチャートである。まずこの
図4を用いて、本実施形態に係る記憶部14に格納されるデータベース生成について記載する。なお、上述したように格納及びデータの取得形式は、データベースに限定されるものではなく、適切に紐付けられたデータが取得できる形式であればよい。
【0031】
まず、類似度算出部16は、記憶部14に記憶されているデータのうち、類似度未計算の組み合わせがあるか否かを判断する(S200)。この判断は、例えば、新しいDNN構造及びHWのデータが記憶部14に格納されたことをフラグとしてもよい。また、例えば、類似度算出部16は、最新の更新日時をタイムスタンプとして保持しておき、このタイムスタンプよりも新しいデータがあることを検出してもよい。この検出は、所定時間ごとに実行されるものであってもよい。例えば、cron等により、定期的に検出をしてもよい。また、所定時間ごとに、全ての格納データについて類似度が算出されているかを確認してもよい。
【0032】
類似度算出部16は、ある2以上のDNN構造に対して、複数のHWに関する実行時間の情報が格納されており、かつ、類似度が算出されていないHWの組み合わせを抽出する。
【0033】
類似度未計算の組み合わせがある場合(S200:YES)、類似度算出部16は、実行時間で順位付けを行う(S202)。例えば、2つのHW A、Bにおいて、3つのDNN構造X、Y、Zについての実行時間が記憶部14に格納されているとする。この場合、HW A、Bのそれぞれについて、実行時間の順位付けを実行する。例えば、HW Aにおいては、実行時間がx > y > z、HW Bにおいては、実行時間がx > z > y等とDNN構造の実行時間について順位付けを行う。
【0034】
次に、類似度算出部16は、グループ分けを実行する(S204)。グループ分けは、畳み込みの種類、個数、又は、入力サイズにより実行されてもよい。なお、この処理は必須ではなく、省略してもよい。
【0035】
次に、類似度算出部16は、2つのHW間のランク相関を算出して、類似度として記憶部14に記憶する(S206)。ランク相関は、例えば、以下のいずれかの方法により算出してもよいが、これらの手法に限定されるものではない。
【0036】
類似度算出部16は、以下に示すケンドールの順位相関係数(Kendall rank correlation coefficient)を用いて類似度を算出してもよい。
【数1】
ここで、nは2つのHWにおいて共通して実行時間が格納されているDNN構造の数、Kはn個のDNN構造においてそれぞれのHWで順位が一致する組の数、Lはn個のDNN構造においてそれぞれのHWで順位が一致しない組の数を表す。より詳しくは、n個のDNN構造の処理時間を順番に並べた場合に、大小関係が一致する組み合わせの数をK、一致しない組み合わせの数をLとする。例えば、HW A、Bにおいて、DNN構造X、Yの処理時間のデータがある場合に、処理時間x
A > y
Aかつx
B > y
Bであれば、Kが+1され、逆に、処理時間x
A > y
Aかつy
B > x
Aであれば、Lが+1される。
【0037】
類似度算出部16は、以下に示すスピアマンの順位相関係数(Spearman’s rank correlation coefficient)を用いて類似度を算出してもよい。
【数2】
ここで、d
iは2つのHWにおける同じDNN構造の順位の差を表す。
【0038】
類似度算出部16は、以下に示すグッドマン=クラスカルのガンマ(Goodman and Kruskal’s gamma)を用いて類似度を算出してもよい。
【数3】
【0039】
類似度算出部16は、以下に示すソマーズのD(Somers’ D)を用いて類似度を算出してもよい。
【数4】
【0040】
類似度算出部16は、いくつかの例として式(1)から式(4)に挙げた式に基づいて類似度を算出して記憶部14に格納する。
【0041】
類似度算出部16は、類似度を記憶部14に格納した後、S200からの処理を繰り替えす。類似度未計算の組み合わせがない場合に(S200:NO)には、類似度算出部16は、処理を終了する。
【0042】
このように取得された類似度に基づいて、情報処理装置1は、ターゲットとなるHWにおけるターゲットとなるDNN構造の実行時間を評価する。
【0043】
図5は、本実施形態における情報処理装置の実行時間の評価の処理を示すフローチャートである。
【0044】
まず、図示しないインタフェースを介して、情報処理装置1は、評価したいHW(以下、対象HW)における評価したいDNN構造(以下、対象構造)の入力を受け付ける(S210)。
【0045】
次に、検索部10は、対象構造の実行時間データを有するHWのうち、対象HWと類似度の高いHW(以下、参照HW)を検索する(S212)。検索部10は、例えば、所定閾値よりも高い類似度を有するHWを参照HWとして抽出してもよい。別の例として、検索部10は、対象HWに対する類似度が一番高いHWを参照HWとして抽出してもよい。
【0046】
次に、検索部10は、参照HWが検出できたか否かを判定する(S214)。上記のS212の処理において参照HWを抽出できたか否かで判断する。検索部10により、例えば、所定閾値を越える類似度を有するHWが抽出できなかった、又は、対象HWとの間に類似度が算出されているHWが検出できなかった場合(S214:NO)、情報処理装置1は、処理を終了する。
【0047】
参照HWが検出できた場合(S214:YES)、構造探索部12は、対象HWにおける対象構造の実行時間を推定する(S216)。実行時間の推定は、参照HWにおける対象構造及び対象HWと共通して格納されているDNN構造の実行時間と、対象HWにおける参照HWと共通して格納されているDNN構造の実行時間と、に基づいて実行される。
【0048】
一例として、参照HWをA、対象HWをBとし、HW A、Bにおいて共通して記憶部14に実行時間が格納されているDNN構造をX、Y、対象構造をZとする。また、DNN構造X、Y、ZのそれぞれのHWにおける実行時間を、xa、ya、za、xb、yb、zbとする。推定したい実行時間は、zbとなる。
【0049】
HW Aにおける実行時間が、xa < ya < zaであるとする。そして、HW AとHW Bの類似度が高い。ここで、構造探索部12は、HW Bにおける実行時間がxb < yb < zbであると推定する。そして、xa、ya、za、xb、ybを用いて、zbを外挿により算出する。
【数5】
【0050】
また、対象構造がYである場合には、内挿により算出する。
【数6】
上記は一例として記載したものであり、これらの式に限定されるものではない。例えば、式(5)は、xbを基準に、zb = xb + ・・・としてもよいし、式(6)は、zbを基準に、yb = zb - ・・・としてもよい。また、さらに多くのデータを用いることが可能である場合には、最小二乗法等の回帰分析、又は、重回帰分析、共分散分析等を実行してもよい。このように、構造探索部12は、線形近似、曲線近似等により、対象HWにおける対象構造の実行時間を推定する。
【0051】
また、別の例として、参照HWと対象HWにおいて実行時間が登録されているDNN構造に基づいて、対象構造の実行時間を推定するニューラルネットワークモデルを予め訓練により形成しておいてもよい。そして、このニューラルネットワークモデルを用いて対象HWにおける対象構造の実行時間を推定してもよい。
【0052】
線形補間ではない場合には、参照するDNN構造は、3個(X、Y、Z)ではなく、さらに多くのDNN構造に基づいて補間をしてもよい。
【0053】
次に、構造探索部12は、推定された実行時間を出力し(S218)、処理を終了する。
【0054】
以上のように、本実施形態によれば、構造とハードウェアごとの実行時間を記録し、複数のハードウェア間における複数の構造の実行時間からハードウェア間の類似度を算出し、この類似度に基づいて、ターゲットとなるハードウェアで実行された場合における実行時間を推定することが可能となる。この結果、すでにデータベース等に格納されているある構造に対するあるハードウェアにおける実行時間に基づいて、実行時間を求めたい構造が対象とするハードウェアで実際には実行されていない場合においても、ターゲットハードウェアにおける実行をすることなく実行時間を推定することができる。
【0055】
(第3実施形態)
前述の実施形態においては、類似度を算出してデータベース内に存在しない対象HWの対象構造に係る実行時間を推定するものであったが、構造自体を追加するものではない。そこで、本実施形態においては、データベースに登録されていない構造の追加を実行する情報処理装置1について説明する。
【0056】
図6は、本実施形態に係る情報処理装置1の構成を示すブロック図である。情報処理装置1は、第2実施形態の情報処理装置1の構成に加え、データ追加部18をさらに備える。
【0057】
データ追加部18は、あるHW上において実行されたDNN構造と入力サイズにおける実行時間の情報を、記憶部14に格納する。この追加されたデータを用いて、類似度算出部16は、類似度データを追加、又は、類似度データを更新する。
【0058】
データ追加部18は、破線で示すように、データを追加したことを類似度算出部16に通知してもよい。類似度算出部16は、この通知を受けて、類似度の算出を実行してもよい。別の例として、前述の実施形態で説明したように、所定時間間隔で類似度算出部16が記憶部14内のデータを確認してもよいし、データが追加されることをモニタリングしていてもよい。
【0059】
また、破線で示すように、データ追加部18は、構造探索部12が探索した結果の構造について、記憶部14にデータを格納してもよい。
【0060】
図7は、本実施形態に係る情報処理装置1の処理を示すフローチャートである。
【0061】
まず、情報処理装置1は、実行時間を登録したいHWとDNN構造及び実行時間のデータの入力を受け付ける(S300)。
【0062】
次に、データ追加部18は、記憶部14に受け付けたデータを格納する(S302)。格納したDNN構造を、以下記録構造と記載する。
【0063】
次に、検索部10は、複数のHWにおいて記憶構造の実行時間が格納されているか否かを検出する(S304)。記憶構造の実行時間が複数のHWにおいて格納されていない場合(S304:NO)、情報処理装置1は、処理を終了する。
【0064】
記憶構造の実行時間が複数のHWにおいて格納されている場合(S304:YES)、類似度算出部16は、この記憶構造の実行時間が格納されているHW間において、類似度を算出して格納する(S306)。この算出は、前述の実施形態と同様に、例えば、ランク相関を求めることにより実行される。
【0065】
以上のように、本実施形態によれば、構造が追加された場合に、HW間の類似度を最新の状態に保つことが可能となる。
【0066】
なお、データ追加部18は、類似度算出部16を介してデータを追加してもよい。この場合、データ追加部18は、追加するデータを類似度算出部16に送信し、このデータを受信した類似度算出部16が類似度を算出するとともに、この類似度データとともに追加するDNN構造等のデータを記憶部14に格納してもよい。
【0067】
(第4実施形態)
前述の第3実施形態では、DNN構造を新たに登録することについて説明した。本実施形態においては、HWによりDNN構造に基づいた処理をさせて実行時間を取得し、データを追加する情報処理装置1及び情報処理システム2について説明する。
【0068】
図8は、本実施形態に係る情報処理装置1及び情報処理システム2の構成を示すブロック図である。情報処理装置1は、前述の実施形態の構成に加え、測定部20をさらに備える。情報処理システム2は、情報処理装置1と、実行部22と、を備える。なお、この構成は、一例であり、情報処理装置1内に実行部22が備えられてもよい。また、複数のHWにおいてが情報処理システム2に備えられていてもよい。
【0069】
実行部22は、複数のHWにおいて対象となるDNN構造のモデルを実行させる。複数のHW 3には限られず、1つのHWにおいて実行するものであってもよい。この実行部22は、上述したように、情報処理装置1内に備えられていてもよい。また、複数のHW 3も情報処理装置1内に備えられる、又は、実行時間をエミュレート可能なエミュレータ若しくは実行時間をシミュレート可能なシミュレータが情報処理装置1内に備えられてもよい。
【0070】
測定部20は、実行部22により実行された種々のHWにおける実行時間を測定する。
【0071】
実行部22は、DNN構造と入力サイズの情報を受け付け、この構造を各HWにおいて実行させる。上記のように、この実行は、実機、又は、エミュレータ若しくはシミュレータ上で実行される。この構成により、DNN構造及び入力サイズに対して、その実行時間を記憶部14に新たなデータとして格納することができる。
【0072】
図9は、本実施形態の処理を示すフローチャートである。
【0073】
まず、情報処理装置1は、記憶構造として、追加したいDNN構造及び入力サイズと、あるHWにおける実行時間の入力を受け付ける(S400)。
【0074】
次に、実行部22は、1つ以上のHWにおいて、記憶構造に基づいた処理を実行させ、測定部20は、この実行時間を測定する(S402)。この実行は、様々な方法で行ってもよい。例えば、あるDNN構造の複数の入力サイズを1以上のHWにおいて実行させて、時間を取得してもよい。また、すでに記憶部14に格納されているデータについては、実行を省略してもよいし、再度実行させてデータを更新してもよい。
【0075】
S400において入力を受け付けるとしたが、これには限られず、例えば、実行部22は、記憶部14において、あるHWにおいて実行時間が格納されているDNN構造が他のHWにおいて実行時間が格納されていない場合には、他のHWにおいてこのDNN構造の実行時間を取得するべく、実行させてもよい。このように、実行部22は、記憶部14にアクセスして、データを補間すべく動作してもよい。この実行は、例えば、情報処理装置1のアイドル時間等を用いることにより、資源を有効に用いることもできる。
【0076】
次に、測定部20は、実行時間と、HW、DNN構造との組み合わせを記憶部14に格納する(S404)。
【0077】
次に、類似度算出部16は、新たに格納された実行時間を用いて、HW間の類似度を算出し、登録されていなければ登録をし、すでに登録されているのであれば、登録されている類似度を更新する(S404)。
【0078】
以上のように、本実施形態によれば、種々のHWにおける種々のDNN構造を実行する実行時間を計測して格納することができる。さらに、類似度を算出することにより、類似度が算出されているHW間において、実行時間の推定精度を向上することができる。
【0079】
上記の構成の一部又は全部は、ASIC(Application Specific Integrated Circuit)等の専用のアナログ回路又はデジタル回路で形成されていてもよい。また、FPGA(Field Programmable Gate Array)等のプログラマブルな回路により形成されてもよい。さらには、CPU(Central Processing Unit)等の汎用的な処理回路がソフトウェアによる情報処理を実行してもよい。ソフトウェアによる情報処理がハードウェア資源を用いて具体的に実現される場合、これらのソフトウェアの処理に必要となるプログラム、実行ファイル等は、例えば、記憶部14に格納されていてもよい。
【0080】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0081】
1:情報処理装置、
2:情報処理システム、
10:検索部、
12:構造探索部、
14:記憶部、
16:類似度算出部、
18:データ追加部、
20:測定部、
22:実行部