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

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

▶ 富士通株式会社の特許一覧

特開2023-165100アクセラレータの制御プログラム及び制御方法、並びに、情報処理装置
<>
  • 特開-アクセラレータの制御プログラム及び制御方法、並びに、情報処理装置 図1
  • 特開-アクセラレータの制御プログラム及び制御方法、並びに、情報処理装置 図2
  • 特開-アクセラレータの制御プログラム及び制御方法、並びに、情報処理装置 図3
  • 特開-アクセラレータの制御プログラム及び制御方法、並びに、情報処理装置 図4
  • 特開-アクセラレータの制御プログラム及び制御方法、並びに、情報処理装置 図5
  • 特開-アクセラレータの制御プログラム及び制御方法、並びに、情報処理装置 図6
  • 特開-アクセラレータの制御プログラム及び制御方法、並びに、情報処理装置 図7
  • 特開-アクセラレータの制御プログラム及び制御方法、並びに、情報処理装置 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023165100
(43)【公開日】2023-11-15
(54)【発明の名称】アクセラレータの制御プログラム及び制御方法、並びに、情報処理装置
(51)【国際特許分類】
   G06F 9/50 20060101AFI20231108BHJP
【FI】
G06F9/50 150D
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022075725
(22)【出願日】2022-05-02
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100092978
【弁理士】
【氏名又は名称】真田 有
(74)【代理人】
【識別番号】100189201
【弁理士】
【氏名又は名称】横田 功
(72)【発明者】
【氏名】桑村 慎哉
(57)【要約】
【課題】アクセラレータの温度上昇を抑制しつつ、アクセラレータを利用して実行する処理の時間短縮を図る。
【解決手段】制御プログラムは、温度が第1閾値以上になると所定の周波数に設定される各アクセラレータについて、クロック周波数ごとに予め生成された、処理負荷に応じた実行時間、前記処理負荷の処理前後の温度差の対応関係を取得し、第1の処理を開始する際に、各アクセラレータについて、現在の処理負荷と、クロック周波数と、温度とに基づき、対応関係から、第1の処理を実行させた場合の実行時間及び温度を取得し、温度が第1閾値以上であるアクセラレータについては、取得した実行時間及び温度に代えて、クロック周波数を所定の周波数に設定した場合の実行時間及び温度を対応関係から取得し、実行時間が第1の処理の制限時間内且つ温度が所定の条件を満たすアクセラレータに、第1の処理を実行させる。
【選択図】図5
【特許請求の範囲】
【請求項1】
温度が第1閾値以上になるとクロック周波数が第1周波数に設定される複数のアクセラレータの各々について、所定のクロック周波数ごとに予め生成された対応関係であって、処理負荷に応じた実行時間と、前記処理負荷の処理の実行前後の前記アクセラレータの温度差との前記対応関係を取得し、
第1の処理を開始する際に、前記複数のアクセラレータの各々について、現在の処理負荷に関する情報と、現在のクロック周波数と、現在の温度とに基づき、前記対応関係から、前記第1の処理を実行させた場合の実行時間と、前記第1の処理の実行完了後の温度とを取得し、
前記取得した温度が前記第1閾値以上であるアクセラレータが存在する場合、当該アクセラレータについて取得した実行時間及び温度に代えて、当該アクセラレータのクロック周波数を前記第1周波数に設定した場合の実行時間及び温度を前記対応関係から取得し、
前記取得した実行時間が前記第1の処理の制限時間内である1以上のアクセラレータのうちの、前記取得した温度が所定の条件を満たすアクセラレータに、前記第1の処理を実行させる、
処理をコンピュータに実行させる、アクセラレータの制御プログラム。
【請求項2】
前記複数のアクセラレータの各々は、消費電力が第2閾値以上になるとクロック周波数が現在のクロック周波数よりも低い第2周波数に設定され、
前記対応関係は、前記処理負荷の処理の実行後の前記アクセラレータの消費電力をさらに含み、
前記コンピュータに、
前記第1の処理を開始する際に、前記複数のアクセラレータの各々について、前記対応関係から、前記第1の処理の実行完了後の消費電力を取得し、
前記対応関係から取得した消費電力が前記第2閾値以上であるアクセラレータが存在する場合、当該アクセラレータについて取得した実行時間及び温度に代えて、当該アクセラレータのクロック周波数を前記第2周波数に設定した場合の実行時間及び温度を前記対応関係から取得する、
処理を実行させる、請求項1に記載の制御プログラム。
【請求項3】
前記処理負荷は、前記アクセラレータが前記第1の処理を同時に実行する処理数である、
請求項1又は請求項2に記載の制御プログラム。
【請求項4】
前記処理負荷は、前記アクセラレータの使用率であり、
前記複数のアクセラレータの各々について、前記実行時間と前記温度とを取得する処理は、前記複数のアクセラレータの各々について、前記第1の処理の種類と、前記アクセラレータが現在実行中の処理の種類及び処理数と、処理の種類ごとの使用率を示す情報とに基づき、前記第1の処理を実行する場合の前記アクセラレータの使用率を算出する処理を含む、
請求項1又は請求項2に記載の制御プログラム。
【請求項5】
温度が第1閾値以上になるとクロック周波数が第1周波数に設定される複数のアクセラレータの各々について、所定のクロック周波数ごとに予め生成された対応関係であって、処理負荷に応じた実行時間と、前記処理負荷の処理の実行前後の前記アクセラレータの温度差との前記対応関係を取得し、
第1の処理を開始する際に、前記複数のアクセラレータの各々について、現在の処理負荷に関する情報と、現在のクロック周波数と、現在の温度とに基づき、前記対応関係から、前記第1の処理を実行させた場合の実行時間と、前記第1の処理の実行完了後の温度とを取得し、
前記取得した温度が前記第1閾値以上であるアクセラレータが存在する場合、当該アクセラレータについて取得した実行時間及び温度に代えて、当該アクセラレータのクロック周波数を前記第1周波数に設定した場合の実行時間及び温度を前記対応関係から取得し、
前記取得した実行時間が前記第1の処理の制限時間内である1以上のアクセラレータのうちの、前記取得した温度が所定の条件を満たすアクセラレータに、前記第1の処理を実行させる、
処理をコンピュータが実行する、アクセラレータの制御方法。
【請求項6】
温度が第1閾値以上になるとクロック周波数が第1周波数に設定される複数のアクセラレータの各々について、所定のクロック周波数ごとに予め生成された対応関係であって、処理負荷に応じた実行時間と、前記処理負荷の処理の実行前後の前記アクセラレータの温度差との前記対応関係を取得し、
第1の処理を開始する際に、前記複数のアクセラレータの各々について、現在の処理負荷に関する情報と、現在のクロック周波数と、現在の温度とに基づき、前記対応関係から、前記第1の処理を実行させた場合の実行時間と、前記第1の処理の実行完了後の温度とを取得し、
前記取得した温度が前記第1閾値以上であるアクセラレータが存在する場合、当該アクセラレータについて取得した実行時間及び温度に代えて、当該アクセラレータのクロック周波数を前記第1周波数に設定した場合の実行時間及び温度を前記対応関係から取得し、
前記取得した実行時間が前記第1の処理の制限時間内である1以上のアクセラレータのうちの、前記取得した温度が所定の条件を満たすアクセラレータに、前記第1の処理を実行させる、
制御部を備える、情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アクセラレータの制御プログラム及び制御方法、並びに、情報処理装置に関する。
【背景技術】
【0002】
複数のGPU(Graphics Processing Unit)を利用して処理を実行する情報処理装置では、負荷が最小であるGPUに処理のタスクを割り当てるタスクスケジューリングが行なわれることがある。負荷としては、例えば、各GPUの利用率、待機中のタスク数等が挙げられる。
【0003】
GPUの1つとして、推論処理に最適化された推論用GPUが知られている。推論用GPUは、機械学習処理よりも短時間で実行可能な推論処理に特化したGPUであり、冷却機構が簡素で省スペースである、クロック周波数の上限と下限との差が大きい(例えば、600MHz~1.6GHz)、負荷によりクロック周波数が変動する、等の特性を有する。負荷によるクロック周波数の変動は、例えば、低負荷の場合は低いクロック周波数となり、高負荷の場合は高いクロック周波数となる場合を含む。この場合、負荷が高い方が処理時間が短くなることがある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009-277022号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述した情報処理装置において、タスクスケジューリングにより複数の推論用GPUのうちのいずれかに推論処理のタスクを実行させる場合、推論用GPUの特性により、推論処理の処理時間が長期化する、換言すれば、処理性能が低下する場合がある。
【0006】
例えば、推論用GPUでは、簡素な冷却機構の採用により低下する冷却性能を補うための制御、換言すれば、推論用GPUの温度上昇を抑制するための制御(温度上昇抑制制御)が行なわれることがある。当該制御としては、例えば、消費電力が上限に達するとクロック周波数を低下させ、推論用GPUの温度が上限に達するとクロック周波数を下限近くまで低下させる制御が挙げられる。この場合、推論用GPUは、高いクロック周波数で動作し続けると、温度が上限に達してクロック周波数が下限まで下がり、処理性能が急激に低下する場合がある。
【0007】
情報処理装置が、カメラ等のデバイスから逐次又は定期的に取得した映像に対して、物体認識、異常検知等の映像分析処理を行なう場合を想定する。映像が10fps(frames per second)で撮影された場合、情報処理装置は、1秒間に10枚の画像を分析するリアルタイム処理を実行することになる。
【0008】
このようなリアルタイム処理を行なう情報処理装置では、推論用GPUの処理性能が急激に低下すると、映像分析処理が制限時間(例えば1画像あたり0.1秒)内に完了せず、リアルタイム処理の実施が困難になる場合がある。
【0009】
上述した不都合は、推論用GPUに限定されるものではなく、温度が閾値以上になるとクロック周波数が所定の周波数に設定される(低下する)種々のアクセラレータ、例えば、推論用GPUを含むGPU、又は、専用アクセラレータ等においても生じ得る。
【0010】
1つの側面では、本発明は、アクセラレータの温度上昇を抑制しつつ、アクセラレータを利用して実行する処理の時間短縮を図ることを目的の1つとする。
【課題を解決するための手段】
【0011】
1つの側面では、アクセラレータの制御プログラムは、コンピュータに以下の処理を実行させてよい。前記処理は、温度が第1閾値以上になるとクロック周波数が第1周波数に設定される複数のアクセラレータの各々について、所定のクロック周波数ごとに予め生成された対応関係であって、処理負荷に応じた実行時間と、前記処理負荷の処理の実行前後の前記アクセラレータの温度差との前記対応関係を取得する処理を含んでよい。また、前記処理は、第1の処理を開始する際に、前記複数のアクセラレータの各々について、現在の処理負荷に関する情報と、現在のクロック周波数と、現在の温度とに基づき、前記対応関係から、前記第1の処理を実行させた場合の実行時間と、前記第1の処理の実行完了後の温度とを取得する処理を含んでよい。さらに、前記処理は、前記取得した温度が前記第1閾値以上であるアクセラレータが存在する場合、当該アクセラレータについて取得した実行時間及び温度に代えて、当該アクセラレータのクロック周波数を前記第1周波数に設定した場合の実行時間及び温度を前記対応関係から取得する処理を含んでよい。また、前記処理は、前記取得した実行時間が前記第1の処理の制限時間内である1以上のアクセラレータのうちの、前記取得した温度が所定の条件を満たすアクセラレータに、前記第1の処理を実行させる処理を含んでよい。
【発明の効果】
【0012】
1つの側面では、本発明は、アクセラレータの温度上昇を抑制しつつ、アクセラレータを利用して実行する処理の時間短縮を図ることができる。
【図面の簡単な説明】
【0013】
図1】第1実施形態に係る映像分析システムの構成例を示すブロック図である。
図2】第1実施形態に係る映像分析装置の機能を実現するコンピュータのハードウェア(HW)構成例を示すブロック図である。
図3】第1実施形態に係る映像分析装置のソフトウェア構成例を示すブロック図である。
図4】第1実施形態に係る温度テーブルの一例を示す図である。
図5】第1実施形態に係る映像分析装置の動作例を説明するフローチャートである。
図6】第2実施形態に係る映像分析装置のソフトウェア構成例を示すブロック図である。
図7】第2実施形態に係る温度テーブルの一例を示す図である。
図8】第2実施形態に係る使用率テーブルの一例を示す図である。
【発明を実施するための形態】
【0014】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形又は技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の説明で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【0015】
〔A〕第1実施形態
(I)構成例
(I-1)映像分析システムの構成例
図1は、第1実施形態に係る映像分析システム1の構成例を示すブロック図である。図1に示すように、映像分析システム1は、例示的に、映像分析装置2、及び、複数(図1の例ではM個;Mは2以上の整数)のカメラ3-1~3-Mを備えてよい。以下、カメラ3-1~3-Mを区別しない場合には単にカメラ3と表記する。なお、複数のカメラ3の各々は、映像分析装置2に備えられてもよい。
【0016】
映像分析システム1は、情報処理システムの一例であり、カメラ3が取得した映像データ4に基づく映像分析処理を実行する。映像データ4(複数の画像フレーム)は、入力データの一例である。映像分析処理は、推論処理の一例であり、例えば、物体認識処理、異常検知処理等が挙げられる。第1実施形態では、映像分析処理が物体認識であるものとする。
【0017】
複数のカメラ3の各々は、撮像して得た映像データ4を映像分析装置2に送信する。映像データ4は、図示しないネットワークを介してカメラ3から映像分析装置2に伝送されてもよい。
【0018】
映像分析装置2は、情報処理装置の一例である。映像分析装置2は、スケジューラ2a、及び、複数(図1の例ではN個;Nは2以上の整数)のGPU2bを備えてよい。以下、GPU2b-1~2b-Nを区別しない場合には単にGPU2bと表記する。
【0019】
スケジューラ2aは、物体認識処理のタスクを、複数のGPU2bのうちのいずれかのGPU2bに割り当てるタスクスケジューリングを実行する。映像分析システム1が推論処理としてリアルタイム処理を実行する場合、スケジューラ2aは、複数のカメラ3の各々から映像データ4を受信する都度、タスクスケジューリングを実行することで、受信した映像データ4の物体認識処理のタスクをGPU2bに割り当ててよい。なお、リアルタイム処理では、タスクの実行時間に関する制限(例えば制限時間)が設けられてよい。制限時間は、リアルタイム処理の実施における推論処理の許容できる実行時間の一例であり、例えば100ms等の時間であってよい。
【0020】
GPU2bは、訓練済みの機械学習モデル21c(図3参照)を利用して入力データの推論処理を実行するアクセラレータの一例である。GPU2bは、スケジューラ2aにより割り当てられたタスクを実行し、推論結果の一例として、認識結果5を出力する。
【0021】
第1実施形態では、GPU2bは、推論用GPUであるものとするが、これに限定されるものではなく、種々のアクセラレータであってもよい。
【0022】
GPU2bでは、GPU2bの温度上昇を抑制するための制御(温度上昇抑制制御)が行なわれてよい。温度上昇抑制制御は、第1制御及び第2制御を含んでよい。
【0023】
第1制御は、GPU2bの温度が上限である第1閾値(閾値Th_t)以上になるとクロック周波数を下限近くの第1周波数に設定する制御である。
【0024】
第2制御は、消費電力が上限である第2閾値(閾値Th_e)以上になるとクロック周波数を現在のクロック周波数よりも低い第2周波数に設定する制御である。
【0025】
例えば、第1制御は、GPU2bのHW(Hardware)により実行されてよく、第2制御は、GPU2bのFW(Firmware)により実行されてよいが、これに限定されるものではない。
【0026】
なお、図1の例では、複数のGPU2bが映像分析装置2に備えられているが、これに限定されるものではない。例えば、映像分析システム1がMEC(Multi-access Edge Computing)システムのような分散型のシステムである場合、複数のGPU2bの各々は、図示しないネットワークを介して映像分析装置2と接続された装置、例えばエッジサーバ等に備えられてもよい。この場合、映像分析装置2は、ゲートウェイ(Gateway)サーバ等の装置であってもよい。
【0027】
(I-2)映像分析装置のハードウェア構成例
第1実施形態に係る映像分析装置2は、仮想サーバ(VM;Virtual Machine)であってもよいし、物理サーバであってもよい。また、映像分析装置2の機能は、1台のコンピュータにより実現されてもよいし、2台以上のコンピュータにより実現されてもよい。
【0028】
図2は、第1実施形態に係る映像分析装置2の機能を実現するコンピュータ10のハードウェア(HW)構成例を示すブロック図である。映像分析装置2の機能を実現するHWリソースとして、複数のコンピュータが用いられる場合は、各コンピュータが図2に例示するHW構成を備えてよい。
【0029】
図2に示すように、コンピュータ10は、HW構成として、例示的に、プロセッサ10a、複数のアクセラレータ10b、メモリ10c、記憶部10d、IF(Interface)部10e、IO(Input / Output)部10f、及び読取部10gを備えてよい。
【0030】
プロセッサ10aは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ10aは、コンピュータ10内の各ブロックとバス10jで相互に通信可能に接続されてよい。なお、プロセッサ10aは、複数のプロセッサを含むマルチプロセッサであってもよいし、複数のプロセッサコアを有するマルチコアプロセッサであってもよく、或いは、マルチコアプロセッサを複数有する構成であってもよい。
【0031】
プロセッサ10aとしては、例えば、CPU、MPU、APU、DSP、ASIC、FPGA等の集積回路(IC;integrated circuit)が挙げられる。なお、プロセッサ10aとして、これらの集積回路の2以上の組み合わせが用いられてもよい。CPUはCentral Processing Unitの略称であり、MPUはMicro Processing Unitの略称である。APUはAccelerated Processing Unitの略称である。DSPはDigital Signal Processorの略称であり、ASICはApplication Specific ICの略称であり、FPGAはField-Programmable Gate Arrayの略称である。図1に示すスケジューラ2aの機能は、例えば、プロセッサ10aにより実現されてよい。
【0032】
複数のアクセラレータ10bは、機械学習モデルにデータを入力して推論処理を行ない、推論結果を出力する。アクセラレータ10bとしては、種々の演算処理装置、例えば、GPU、APU、DSP、ASIC又はFPGA等の集積回路(IC)が挙げられる。図1に示すGPU2bは、アクセラレータ10bの一例である。
【0033】
メモリ10cは、種々のデータやプログラム等の情報を格納するHWの一例である。メモリ10cとしては、例えばDRAM(Dynamic Random Access Memory)等の揮発性メモリ、及び、PM(Persistent Memory)等の不揮発性メモリ、の一方又は双方が挙げられる。
【0034】
記憶部10dは、種々のデータやプログラム等の情報を格納するHWの一例である。記憶部10dとしては、HDD(Hard Disk Drive)等の磁気ディスク装置、SSD(Solid State Drive)等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、SCM(Storage Class Memory)、ROM(Read Only Memory)等が挙げられる。
【0035】
記憶部10dは、コンピュータ10の各種機能の全部若しくは一部を実現するプログラム10h(制御プログラム)を格納してよい。
【0036】
例えば、映像分析装置2のプロセッサ10aは、記憶部10dに格納されたプログラム10hをメモリ10cに展開して実行することにより、後述する映像分析装置2(例えば図3に示す制御部28)としての機能を実現できる。
【0037】
IF部10eは、映像分析装置2と複数のカメラ3のそれぞれとの間の接続及び通信の制御等を行なう通信IFの一例である。例えば、IF部10eは、イーサネット(登録商標)等のLAN(Local Area Network)、或いは、FC(Fibre Channel)等の光通信等に準拠したアダプタを含んでよい。当該アダプタは、無線及び有線の一方又は双方の通信方式に対応してよい。
【0038】
例えば、映像分析装置2は、IF部10e及びネットワークを介して、複数のカメラ3のそれぞれと相互に通信可能に接続されてよい。なお、プログラム10hは、当該通信IFを介して、ネットワークからコンピュータ10にダウンロードされ、記憶部10dに格納されてもよい。
【0039】
IO部10fは、入力装置、及び、出力装置、の一方又は双方を含んでよい。入力装置としては、例えば、キーボード、マウス、タッチパネル等が挙げられる。出力装置としては、例えば、モニタ、プロジェクタ、プリンタ等が挙げられる。また、IO部10fは、入力装置及び表示装置が一体となったタッチパネル等を含んでもよい。出力装置は、GPU又はAPUとしてのアクセラレータ10bに接続されてもよい。
【0040】
読取部10gは、記録媒体10iに記録されたデータやプログラムの情報を読み出すリーダの一例である。読取部10gは、記録媒体10iを接続可能又は挿入可能な接続端子又は装置を含んでよい。読取部10gとしては、例えば、USB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体10iにはプログラム10hが格納されてもよく、読取部10gが記録媒体10iからプログラム10hを読み出して記憶部10dに格納してもよい。
【0041】
記録媒体10iとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等の半導体メモリが挙げられる。
【0042】
上述したコンピュータ10のHW構成は例示である。従って、コンピュータ10内でのHWの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、又は、バスの追加若しくは削除等は適宜行なわれてもよい。
【0043】
なお、GPU2bがエッジサーバ等の装置に備えられる場合、当該エッジサーバの機能を実現するコンピュータは、図2に例示するコンピュータ10と同様のHW構成を備えてもよい。
【0044】
(I-3)映像分析装置のソフトウェア構成例
次に、図3を参照して、映像分析装置2のソフトウェア(機能)構成例を説明する。図3は、第1実施形態に係る映像分析装置2のソフトウェア構成例を示すブロック図である。図3に示すように、映像分析装置2は、例示的に、メモリ部21、映像取得部22、GPU情報取得部23、算出部24、タスク割当部25、物体認識処理部26、及び、出力部27を備えてよい。映像取得部22、GPU情報取得部23、算出部24、タスク割当部25、物体認識処理部26、及び、出力部27は、制御部28の一例である。
【0045】
なお、映像取得部22、GPU情報取得部23、算出部24、タスク割当部25による処理は、図1に示すスケジューラ2aによるタスクスケジューリング処理の一例である。また、物体認識処理部26及び出力部27は、図1に示す複数のGPU2bを利用して、物体認識処理による認識結果5を出力する推論処理部の一例であり、図2に示すプロセッサ10aの機能により実現されてよい。
【0046】
メモリ部21は、記憶領域の一例であり、映像分析装置2が利用する種々のデータを記憶する。メモリ部21は、例えば、図2に示すメモリ10c及び記憶部10dのうちの一方又は双方が有する記憶領域により実現されてもよい。
【0047】
図3に示すように、メモリ部21は、例示的に、温度テーブル21a、GPU情報21b、機械学習モデル21c、映像データ4、及び、認識結果5を記憶可能であってよい。以下、便宜上、温度テーブル21aをテーブル形式で表記するが、これに限定されるものではなく、温度テーブル21aは、DB(Database)又は配列等の種々の形式であってもよい。
【0048】
映像分析装置2(制御部28)は、映像分析システム1による運用を開始する前の事前設定処理として、温度テーブル21aを作成してよい。
【0049】
図4は、第1実施形態に係る温度テーブル21aの一例を示す図である。温度テーブル21aは、所定のクロック周波数ごとに予め生成された対応関係を示す情報の一例である。例えば、温度テーブル21aは、GPU2bの処理負荷に応じた実行時間と、当該処理負荷の処理の実行後の消費電力と、当該処理負荷の処理の実行前後のGPU2bの温度差と、を所定のクロック周波数ごとに対応付けた情報であってよい。第1実施形態において、処理負荷は、例えば、GPU2bが実行する(実行中の)タスクの処理数である。
【0050】
図4の例において、「分析処理数」は、1つのGPU2bに割り当てられた分析処理、換言すればGPU2bが同時に実行するタスクの処理数n(nは1以上の整数)である。「クロック周波数」(MHz)は、GPU2bが動作するクロック周波数(動作周波数)である。図4の例では、温度テーブル21aには、500MHzごとに、500MHz, 1000MHz, 1500MHzの3段階のクロック周波数が設定されるものとするが、これに限定されるものではない。温度テーブル21aには、500MHz未満の周波数ごと、又は500MHzよりも大きい周波数ごとに、複数段階のクロック周波数が設定されてもよい。
【0051】
「実行時間」(ms)、「消費電力」(W)及び「温度差」(℃)は、「分析処理数」及び「クロック周波数」の組み合わせごとに設定される。「実行時間」は、GPU2bが分析処理を開始してから完了するまでの時間(所要時間)である。「消費電力」は、GPU2bが分析処理を実行した場合に消費する電力量である。「温度差」は、GPU2bによる分析処理の実行前の温度と実行後の温度との差である。
【0052】
映像分析装置2は、事前設定処理として、GPU2bにn個のタスクを実行させたときのクロック周波数ごとの実行時間、消費電力、及び温度差を測定し、温度テーブル21aに設定してよい。なお、複数のGPU2bがいずれも同一の製品である場合であっても、GPU2b間で性能に個体差が存在することがある。このため、温度テーブル21aは、GPU2bごとに生成されてよい。
【0053】
映像取得部22は、複数のカメラ3の各々から映像データ4を取得し、メモリ部21に格納する。映像取得部22により映像データ4が取得されると、映像分析装置2において分析処理が開始される。
【0054】
GPU情報取得部23は、映像取得部22が映像データ4を取得すると、複数のGPU2bの各々の現在の状態を示すGPU情報21bを取得し、メモリ部21に格納する。GPU情報21bは、例えば、コンピュータ10のOS(Operating System)又はドライバから所得されてよい。
【0055】
GPU情報21bは、例えば、GPU2bの現在の温度の情報と、GPU2bの現在の動作周波数及び消費電力の一方又は双方の情報と、を含んでよい。また、GPU情報21bは、GPU2bが実行中の物体認識処理(分析処理)の処理数を含んでもよい。
【0056】
算出部24は、温度テーブル21aと、GPU情報21bとに基づき、複数のGPU2bの各々について、映像データ4の物体認識処理の実行時間、消費電力、及び、物体認識処理の実行後のGPU温度を算出(取得)する。
【0057】
例えば、算出部24は、温度テーブル21aから、割当対象の処理(タスク)数とGPU情報21bに含まれる現在の処理数とを加算して得た分析処理数と、GPU情報21bに含まれるGPU2bの現在の動作周波数とに対応するエントリを特定する。割当対象の処理(タスク)は、第1の処理の一例である。
【0058】
例えば、1つの映像データ4の物体認識処理を実行する場合(割当対象の処理数が1の場合)、GPU2bが実行中の処理数が0であれば、分析処理数は1(=1+0)となり、GPU2bが実行中の処理数が1であれば、分析処理数は2(=1+1)となる。
【0059】
算出部24は、特定したエントリにおける実行時間及び消費電力を取得する。また、算出部24は、特定したエントリにおける温度差と、GPU情報21bに含まれるGPU2bの現在の温度とを加算することで、物体認識処理後のGPU2bの温度を算出する。
【0060】
以上により、算出部24は、GPU2bごとに、物体認識処理を実行する場合の実行時間、消費電力及びGPU温度を取得する。
【0061】
なお、算出部24は、分析処理数と現在のGPU2bの動作周波数とに基づき温度テーブル21aからエントリを特定するものとしたが、これに限定されるものではない。算出部24は、例えば、分析処理数と、現在のGPU2bの消費電力とに応じたエントリを、温度テーブル21aから特定してもよく、或いは、分析処理数と、動作周波数及び消費電力の双方とに応じたエントリを、温度テーブル21aから特定してもよい。
【0062】
このように、算出部24は、分析処理数と、現在のGPU2bの動作周波数及び消費電力の一方又は双方とに基づき、温度テーブル21aから、割当対象の処理の実行時間と、割当対象の処理の実行完了後の消費電力及び温度とを、GPU2bごとに取得する。
【0063】
ところで、上述したように、GPU2bでは、温度上昇抑制制御(第1制御及び第2制御)が行なわれる。物体認識処理を行なうGPU2bの状態が、当該制御の実行条件を満たす場合、当該制御によりGPU2bのクロック周波数が低下する。クロック周波数が低下すると、GPU2bの処理性能(処理速度)が低下するため、物体認識処理の実行時間が、算出部24が算出(特定)した実行時間を超過する可能性がある。
【0064】
そこで、算出部24は、取得した消費電力及び温度と、第1制御及び第2制御の各々の閾値とに基づき、温度上昇抑制制御が行なわれると推定されるGPU2bについては、以下の手法により、実行時間及びGPU温度を算出(取得)する。
【0065】
例えば、算出部24は、算出したGPU温度が閾値Th_t以上である場合、GPU2bの温度が上限に達するとクロック周波数を下限近くまで低下させる第1制御が実行されると仮定する。算出部24は、温度テーブル21aに基づき、クロック周波数を下限近くまで低下させた場合の実行時間及びGPU温度を算出(取得)する。「下限近く」とは、例えば、GPU2bの定格動作周波数の下限(例えば、600MHz等)近傍である。以下の説明では、「下限近く」のクロック周波数とは、例示的に、GPU2bに対して設定可能な最低のクロック周波数であるものとする。
【0066】
一例として、算出部24は、温度テーブル21aから、GPU情報21bに基づき算出した分析処理数と、最低のクロック周波数とに対応するエントリを特定する。そして、算出部24は、特定したエントリの実行時間を取得する。また、算出部24は、特定したエントリの温度差とGPU情報21bに含まれるGPU温度とを加算することでGPU温度を算出する。
【0067】
このように、算出部24は、取得した温度が第1閾値(閾値Th_t)以上であるGPU2bが存在する場合、当該GPU2bについて取得した実行時間及び温度に代えて、当該GPU2bのクロック周波数を第1周波数に設定した場合の実行時間及び温度を温度テーブル21aから取得する。
【0068】
なお、閾値Th_tは、第1閾値の一例であり、例えば、第1制御が行なわれるGPU2bの仕様に応じて設定されてよい。一例として、閾値Th_tは、定格最大温度近傍の値、例えば135℃等であってよい。
【0069】
また、例えば、算出部24は、取得した消費電力が閾値Th_e以上である場合、消費電力が上限に達するとクロック周波数を低下させる第2制御が実行されると仮定する。算出部24は、温度テーブル21aに基づき、クロック周波数を低下させた場合の実行時間及びGPU温度を算出(取得)する。
【0070】
一例として、算出部24は、温度テーブル21aから、GPU情報21bに基づき算出した分析処理数と、GPU情報21bに含まれる動作周波数よりも1段階低いクロック周波数とに対応するエントリを特定してよい。そして、算出部24は、特定したエントリの実行時間を取得する。また、算出部24は、特定したエントリの温度差とGPU情報21bに含まれるGPU温度とを加算することでGPU温度を算出する。なお、算出部24が、クロック周波数を1段階低下させるものとしたが、これに限定されるものではなく、2段階以上低下させてもよい。
【0071】
このように、算出部24は、取得した消費電力が第2閾値(閾値Th_e)以上であるGPU2bが存在する場合、当該GPU2bについて取得した実行時間及び温度に代えて、当該GPU2bのクロック周波数を第2周波数に設定した場合の実行時間及び温度を温度テーブル21aから取得する。
【0072】
なお、閾値Th_eは、第2閾値の一例であり、例えば、第2制御が行なわれるGPU2bの仕様に応じて設定されてよい。一例として、閾値Th_eは、定格最大消費電力近傍の値、例えば70W等であってよい。また、閾値Th_eは、GPU2bがTh_t未満の温度(例えば85℃等)になるときの消費電力であってもよい。
【0073】
以上のように、算出部24は、温度上昇抑制制御が行なわれると推定されるGPU2bの実行時間及びGPU温度については、クロック周波数を低下させた場合又は最低とした場合の実行時間及びGPU温度を採用する。
【0074】
タスク割当部25は、算出部24が算出したGPU2bごとの実行時間及びGPU温度に基づき、複数のGPU2bのうちの、実行時間が制限時間内であり、且つ、GPU温度が所定の条件を満たすGPU2bに、物体認識処理のタスクを割り当てる。所定の条件としては、例えば、実行時間が制限時間内であるGPU2bの間で、GPU温度が最低であることを含んでよい。
【0075】
物体認識処理部26は、タスクが割り当てられたGPU2bを利用して、分析処理(推論処理)の一例としての物体認識処理を実行する。例えば、物体認識処理部26は、タスクが割り当てられたGPU2bに対して、映像データ4を入力とした機械学習モデル21cを実行させ、GPU2bから認識結果5を取得してメモリ部21に格納する。
【0076】
機械学習モデル21cは、訓練データを用いて物体認識処理の機械学習(訓練)が行なわれた訓練済み機械学習モデルである。
【0077】
このように、タスク割当部25及び物体認識処理部26は、算出部24が取得した実行時間が割当対象の処理の制限時間内である1以上のGPU2bのうちの、算出部24が取得した温度が所定の条件を満たすGPU2bに、割当対象の処理を実行させる。
【0078】
出力部27は、出力データを出力する。出力データは、例えば、推論結果の一例である認識結果5を含んでよい。
【0079】
出力部27は、出力データの出力において、例えば、出力データを図示しない他のコンピュータに送信(提供)してもよいし、出力データをメモリ部21に蓄積して映像分析装置2又は他のコンピュータから取得可能に管理してもよい。或いは、出力部27は、出力データの出力において、出力データを示す情報を映像分析装置2等の出力装置に画面出力してもよく、その他の種々の態様により出力データを出力してよい。
【0080】
(II)動作例
次に、第1実施形態に係る映像分析システム1(映像分析装置2)の動作例を説明する。図5は、第1実施形態に係る映像分析装置2の動作例を説明するフローチャートである。
【0081】
図5に例示するように、映像分析装置2の映像取得部22は、カメラ3から送信された映像データ4を取得し(ステップS1)、メモリ部21に格納する。
【0082】
GPU情報取得部23は、複数のGPU2bの各々のGPU情報21bを取得し(ステップS2)、メモリ部21に格納する。
【0083】
算出部24は、温度テーブル21a及びGPU情報21bに基づき、タスクを実行した場合の各GPU2bの消費電力、実行時間、及び、温度を算出する(ステップS3)。
【0084】
算出部24は、複数のGPU2bの各々のうち、算出した温度が閾値Th_t以上であるGPU2bが存在するか否かを判定する(ステップS4)。
【0085】
算出した温度が閾値Th_t以上であるGPU2bが存在する場合(ステップS4でYES)、算出部24は、クロック周波数が最低の場合の当該GPU2bの消費電力、実行時間、及び、温度を取得し(ステップS5)、処理がステップS6に移行する。なお、算出部24は、当該GPU2bについては、ステップS3で算出した消費電力、実行時間、及び、温度に代えて、ステップS5で取得した消費電力、実行時間、及び、温度を用いる。
【0086】
ステップS6では、算出部24は、複数のGPU2bの各々のうち、取得した消費電力が閾値Th_e以上であるGPU2bが存在するか否かを判定する。
【0087】
取得した消費電力が閾値Th_e以上であるGPU2bが存在する場合(ステップS6でYES)、算出部24は、クロック周波数を低下させた場合の当該GPU2bの消費電力、実行時間、及び、温度を取得し(ステップS7)、処理がステップS8に移行する。なお、算出部24は、当該GPU2bについては、ステップS3で算出した消費電力、実行時間、及び、温度に代えて、ステップS7で取得した消費電力、実行時間、及び、温度を用いる。
【0088】
タスク割当部25は、複数のGPU2bのうち、実行時間が制限時間内であり、且つ、温度が最低であるGPU2bを特定し、特定したGPU2bにタスクを割り当てる。
【0089】
物体認識処理部26は、タスクを割り当てたGPU2bに映像データ4を入力することで、機械学習モデル21cによるタスクを実行し(ステップS8)、認識結果5をメモリ部21に格納する。
【0090】
出力部27は、認識結果5を含む出力データを出力し、処理が終了する。
【0091】
なお、ステップS4及びS5の処理と、ステップS6及びS7の処理とは、順序が逆であってもよい。また、ステップS7では、消費電力の取得は省略されてもよい。
【0092】
(III)第1実施形態の効果
以上のように、第1実施形態に係る映像分析システム1によれば、映像分析装置2(制御部28)は、少なくとも第1制御が行なわれる複数のGPU2bの各々について、所定のクロック周波数ごとに予め生成された対応関係(温度テーブル21a)であって、処理負荷に応じた実行時間と、処理負荷の処理の実行前後のGPU2bの温度差との対応関係を取得する。また、映像分析装置2は、第1の処理を開始する際に、複数のGPU2bの各々について、現在の処理負荷に関する情報と、現在のクロック周波数と、現在の温度とに基づき、対応関係から、第1の処理を実行させた場合の実行時間と、第1の処理の実行完了後の温度とを取得する。さらに、映像分析装置2は、取得した温度が第1閾値以上であるGPU2bが存在する場合、当該GPU2bについて取得した実行時間及び温度に代えて、当該GPU2bのクロック周波数を第1周波数に設定した場合の実行時間及び温度を対応関係から取得する。そして、映像分析装置2は、取得した実行時間が第1の処理の制限時間内である1以上のGPU2bのうちの、取得した温度が所定の条件を満たすGPU2bに、第1の処理を実行させる。
【0093】
これにより、GPU2bの温度上昇を抑制しつつ、GPU2bを利用して実行する処理の時間短縮を図ることができる。
【0094】
例えば、映像分析装置2は、或るGPU2bの温度が上限に達しそうな場合、当該GPU2bについてはクロック周波数が最低になったと仮定して、複数のGPU2bのうちのいずれかのGPU2bにタスクを割り当てる。
【0095】
このように、映像分析装置2は、GPU2bの温度を考慮したスケジューリングにより、リアルタイム処理の時間的制約(一例として、10fps)を満たしつつ、GPU2bの温度上昇を抑制することができ、温度の低いGPU2bでタスクを実行することができる。
【0096】
また、GPU2bの温度を考慮しない場合、システムを長時間実行するにつれて、GPU2bが温度の上限(第1閾値)に達して最低のクロック周波数で動作し続ける可能性がある。この場合、処理時間が長くなり、分析処理が制限時間内に完了しないことがある。
【0097】
一方、映像分析装置2によれば、GPU2bが最低のクロック周波数で動作し続ける可能性を低減させ、高いクロック周波数で動作する時間を長く確保することができ、処理時間を短縮することができる。一例として、GPU2bのクロック周波数が下限近傍であるときの性能と、GPU2bのクロック周波数が上限近傍であるときの性能との間に3倍の差がある場合、映像分析装置2によれば、最大で3倍の高速化を図ることができる。
【0098】
また、映像分析装置2は、消費電力が第2閾値以上であるGPU2bが存在する場合、当該GPU2bについて取得した実行時間及び温度に代えて、当該GPU2bのクロック周波数を第2周波数に設定した場合の実行時間及び温度を対応関係から取得する。このように、GPU2bの消費電力を考慮することで、GPU2bのクロック周波数が低下した状態で動作し続ける可能性を低減させ、高いクロック周波数で動作する時間を長く確保することができ、処理時間を短縮することができる。
【0099】
また、温度テーブル21aは、処理負荷として、GPU2bが第1の処理を同時に実行する処理数を含む。これにより、映像分析装置2は、第1の処理の処理数を特定することで、温度テーブル21aのエントリを容易に特定することができる。
【0100】
〔B〕第2実施形態
第1実施形態では、映像分析装置2による分析処理が物体認識処理の1種類である場合を例に挙げて説明した。第2実施形態では、映像分析装置2A(図6参照)が、複数種類の分析処理を実行する場合を例に挙げて説明する。
【0101】
分析処理が複数種類ある場合、分析処理の種類に応じて、GPU2bの使用率が異なる場合がある。GPU2bの使用率が異なる場合、GPU2bの使用率に応じて、クロック周波数、消費電力、及び、温度が変動することになる。そこで、第2実施形態に係る映像分析装置2Aは、GPU2bの使用率を考慮して、GPU2bのタスクスケジューリング処理を実行する。
【0102】
図6は、第2実施形態に係る映像分析装置2Aのソフトウェア構成例を示すブロック図である。図6に例示するように、映像分析装置2Aは、図3に示す映像分析装置2のメモリ部21、GPU情報取得部23、及び、算出部24に代えて、メモリ部21A、GPU情報取得部23A、及び、算出部24Aを備える。なお、図6の例において、既述の符号と同一の符号が付された構成は、特に言及しない限り、図3に示す映像分析装置2の構成と同様である。また、メモリ部21A、GPU情報取得部23A、及び、算出部24Aのうちの特に言及しない部分(機能、処理等)は、メモリ部21、GPU情報取得部23、及び、算出部24と同様である。
【0103】
メモリ部21Aは、図3に示すメモリ部21の温度テーブル21a及びGPU情報21bに代えて、温度テーブル21d、使用率テーブル21e、及び、GPU情報21fを格納可能であってよい。以下、便宜上、温度テーブル21d及び使用率テーブル21eをテーブル形式で表記するが、これに限定されるものではなく、温度テーブル21d及び使用率テーブル21eは、DB又は配列等の種々の形式であってもよい。
【0104】
映像分析装置2Aは、映像分析システム1による運用を開始する前の事前設定処理として、温度テーブル21d及び使用率テーブル21eを作成してよい。
【0105】
図7は、第2実施形態に係る温度テーブル21dの一例を示す図である。温度テーブル21dは、GPU2bの処理負荷に応じた実行時間、消費電力及びGPU温度について、GPU2bのクロック周波数ごとの対応関係を示す情報の一例である。第2実施形態において、処理負荷は、例えば、GPU2bの使用率である。
【0106】
図7に例示するように、温度テーブル21dは、図4に示す温度テーブル21aの「分析処理数」の項目に代えて、「使用率」の項目を備える。「使用率」(%)は、GPU2bが物体認識処理のタスクを実行する場合のGPU使用率である。
【0107】
図8は、第2実施形態に係る使用率テーブル21eの一例を示す図である。使用率テーブル21eは、GPU2bが実行中のタスクの種類とGPU使用率との対応関係を示す情報の一例である。図8に例示するように、使用率テーブル21eは、「分析処理」、及び、「使用率」の項目を含んでよい。
【0108】
図8の例において、「分析処理」は、GPU2bが実行する分析処理の種類(種別)であり、例示的に、分析処理A、分析処理B、分析処理Cを含んでよい。物体認識処理は、「分析処理」の一例である。「使用率」(%)は、GPU2bが1つの「分析処理」を実行する場合のGPU使用率である。
【0109】
映像分析装置2Aは、事前設定処理として、1つの種別ごとに、又は、複数の種別の組み合わせごとに、GPU2bに分析処理のタスクを実行させたときのクロック周波数ごとの実行時間、消費電力、及び温度差を測定し、温度テーブル21dに設定してよい。なお、複数のGPU2bがいずれも同一の製品である場合であっても、GPU2b間で性能に個体差が存在することがある。このため、温度テーブル21d及び使用率テーブル21eの各々は、GPU2bごとに生成されてよい。
【0110】
GPU情報取得部23Aは、映像取得部22が映像データ4を取得すると、複数のGPU2bの各々の現在の状態を示すGPU情報21fを取得し、メモリ部21に格納する。GPU情報21fは、例えば、コンピュータ10のOS又はドライバから所得されてよい。
【0111】
GPU情報21fは、例えば、GPU情報21bと同様に、GPU2bの現在の温度の情報、GPU2bの現在の動作周波数及び消費電力の一方又は双方の情報、GPU2bが実行中の物体認識処理(分析処理)の処理数を含んでよい。また、GPU情報21fは、GPU情報21bの内容に加えて、GPU2bが実行中の分析処理の種類を含んでよい。
【0112】
算出部24Aは、温度テーブル21d及び使用率テーブル21eと、GPU情報21fとに基づき、複数のGPU2bの各々について、映像データ4の物体認識処理の実行時間、消費電力、及び、物体認識処理の実行後のGPU温度を算出(取得)する。
【0113】
図6に示すように、第2実施形態に係る算出部24Aは、使用率算出部240を備えてよい。
【0114】
使用率算出部240は、割当対象の処理(タスク)の種類及び処理数と、GPU情報21fに含まれる、GPU2bが実行中の物体認識処理(分析処理)の種類及び処理数と、に基づき、GPU2bが割当対象の処理を実行する場合のGPU使用率を算出する。
【0115】
例えば、使用率算出部240は、GPU2bが実行中の分析処理と割当対象の処理とを含む複数の処理について、使用率テーブル21eに基づき、分析処理の種類ごとに、当該種類の使用率と当該種類の処理数とを乗算する。そして、使用率算出部240は、乗算して得た値(使用率)を全ての種類に亘って加算(合計)することで、GPU2bが割当対象の処理を実行する場合の使用率を取得する。
【0116】
例えば、1つの映像データ4の分析処理Aを実行する場合(割当対象が1つの「分析処理A」の場合)を想定する。この場合、GPU2bが実行中の処理数が0であれば、使用率テーブル21eから、使用率は10%となる。また、この場合、GPU2bが実行中の処理が1つの「分析処理A」及び1つの「分析処理B」であれば、使用率テーブル21eから、使用率は45%(=10%×2 + 25%×1)となる。
【0117】
算出部24Aは、温度テーブル21dから、使用率算出部240が算出した使用率と、GPU情報21fに含まれるGPU2bの現在の動作周波数とに対応するエントリを特定する。温度テーブル21dのエントリ特定後の算出部24Aの処理は、算出部24と同様である。
【0118】
例えば、算出部24Aは、特定したエントリにおける実行時間及び消費電力を取得する。また、算出部24Aは、特定したエントリにおける温度差と、GPU情報21fに含まれるGPU2bの現在の温度とを加算することで、物体認識処理後のGPU2bの温度を算出する。
【0119】
なお、算出部24Aは、算出した使用率と現在のGPU2bの動作周波数とに基づき、温度テーブル21dからエントリを特定するものとしたが、これに限定されるものではない。算出部24Aは、例えば、算出した使用率と、現在のGPU2bの消費電力とに応じたエントリを、温度テーブル21dから特定してもよく、或いは、算出した使用率と、動作周波数及び消費電力の双方とに応じたエントリを、温度テーブル21dから特定してもよい。
【0120】
このように、算出部24Aは、算出した使用率と、現在のGPU2bの動作周波数及び消費電力の一方又は双方とに基づき、温度テーブル21dから、割当対象の処理の実行時間と、割当対象の処理の実行完了後の消費電力及び温度とを、GPU2bごとに算出する。
【0121】
また、算出部24Aは、取得した消費電力及び温度と、第1制御及び第2制御の各々の閾値Th_t及びTh_eとに基づき、各GPU2bで温度上昇抑制制御が行なわれるか否かを判定する。そして、算出部24Aは、温度上昇抑制制御が行なわれると推定されるGPU2bについては、温度テーブル21dに基づき、クロック周波数を低下させた場合又は最低とした場合の実行時間及びGPU温度を採用する。
【0122】
算出部24Aが算出したGPU2bごとの実行時間及びGPU温度に基づく、タスク割当部25、物体認識処理部26及び出力部27の処理は、第1実施形態と同様である。
【0123】
以上のように、第2実施形態に係る映像分析装置2Aによれば、第1実施形態に係る映像分析装置2と同様の効果を奏することができる。
【0124】
また、映像分析装置2Aによれば、処理(分析処理)の種類に応じたGPU使用率を特定できるため、GPU2bで温度上昇抑制制御が行なわれるか否かを精度良く推定することができる。
【0125】
〔C〕その他
上述した第1及び第2実施形態に係る技術は、以下のように変形、変更して実施することができる。
【0126】
例えば、図3又は図6に示す映像分析装置2又は2Aが備える機能ブロック22~27は、任意の組み合わせで併合してもよく、それぞれ分割してもよい。また、例えば、図3に示すメモリ部21が記憶する情報21a~21cは、任意の組み合わせで併合してもよく、それぞれ分割してもよい。さらに、例えば、図6に示すメモリ部21Aが記憶する情報21a~21eは、任意の組み合わせで併合してもよく、それぞれ分割してもよい。
【0127】
また、例えば、第1実施形態に係る映像分析装置2は、第2実施形態に係る映像分析装置2Aと同様に、GPU2bの「使用率」を利用してもよい。一例として、温度テーブル21aの「処理数」には、「使用率」×「処理数」の値が設定されてよい。この場合、GPU情報取得部23は、GPU情報21bとして、さらに「使用率」の情報を取得してよい。算出部24は、GPU2bが実行中の処理数と割当対象の処理数とを加算した合計処理数と、GPU2bが1つの処理を実行する場合のGPU使用率とを乗算して使用率を算出してよい。そして、算出部24は、算出した使用率とGPU情報21b内のクロック周波数とに対応するエントリを、温度テーブル21aから特定してよい。
【0128】
さらに、映像分析装置2又は2Aは、カメラ3から入力される映像データ4に対する画像分析処理を実行するものとして説明したが、これに限定されるものではなく、種々の入力データに対する種々の推論処理を実行してもよい。
【0129】
また、例えば、図3又は図6に示す映像分析装置2又は2Aは、複数の装置がネットワークを介して互いに連携することにより、各処理機能を実現する構成であってもよい。一例として、映像分析装置2又は2Aにおいて、映像取得部22及び出力部27はWebサーバ及びアプリケーションサーバ、GPU情報取得部23又は23A、算出部24又は24A、タスク割当部25、又は、物体認識処理部26はアプリケーションサーバ、メモリ部21又は21AはDBサーバ、等であってもよい。この場合、Webサーバ、アプリケーションサーバ及びDBサーバが、ネットワークを介して互いに連携することにより、映像分析装置2又は2Aとしての処理機能を実現してもよい。
【0130】
〔D〕付記
以上の第1及び第2実施形態に関し、さらに以下の付記を開示する。
【0131】
(付記1)
温度が第1閾値以上になるとクロック周波数が第1周波数に設定される複数のアクセラレータの各々について、所定のクロック周波数ごとに予め生成された対応関係であって、処理負荷に応じた実行時間と、前記処理負荷の処理の実行前後の前記アクセラレータの温度差との前記対応関係を取得し、
第1の処理を開始する際に、前記複数のアクセラレータの各々について、現在の処理負荷に関する情報と、現在のクロック周波数と、現在の温度とに基づき、前記対応関係から、前記第1の処理を実行させた場合の実行時間と、前記第1の処理の実行完了後の温度とを取得し、
前記取得した温度が前記第1閾値以上であるアクセラレータが存在する場合、当該アクセラレータについて取得した実行時間及び温度に代えて、当該アクセラレータのクロック周波数を前記第1周波数に設定した場合の実行時間及び温度を前記対応関係から取得し、
前記取得した実行時間が前記第1の処理の制限時間内である1以上のアクセラレータのうちの、前記取得した温度が所定の条件を満たすアクセラレータに、前記第1の処理を実行させる、
処理をコンピュータに実行させる、アクセラレータの制御プログラム。
【0132】
(付記2)
前記複数のアクセラレータの各々は、消費電力が第2閾値以上になるとクロック周波数が現在のクロック周波数よりも低い第2周波数に設定され、
前記対応関係は、前記処理負荷の処理の実行後の前記アクセラレータの消費電力をさらに含み、
前記コンピュータに、
前記第1の処理を開始する際に、前記複数のアクセラレータの各々について、前記対応関係から、前記第1の処理の実行完了後の消費電力を取得し、
前記対応関係から取得した消費電力が前記第2閾値以上であるアクセラレータが存在する場合、当該アクセラレータについて取得した実行時間及び温度に代えて、当該アクセラレータのクロック周波数を前記第2周波数に設定した場合の実行時間及び温度を前記対応関係から取得する、
処理を実行させる、付記1に記載の制御プログラム。
【0133】
(付記3)
前記処理負荷は、前記アクセラレータが前記第1の処理を同時に実行する処理数である、
付記1又は付記2に記載の制御プログラム。
【0134】
(付記4)
前記処理負荷は、前記アクセラレータの使用率であり、
前記複数のアクセラレータの各々について、前記実行時間と前記温度とを取得する処理は、前記複数のアクセラレータの各々について、前記第1の処理の種類と、前記アクセラレータが現在実行中の処理の種類及び処理数と、処理の種類ごとの使用率を示す情報とに基づき、前記第1の処理を実行する場合の前記アクセラレータの使用率を算出する処理を含む、
付記1又は付記2に記載の制御プログラム。
【0135】
(付記5)
温度が第1閾値以上になるとクロック周波数が第1周波数に設定される複数のアクセラレータの各々について、所定のクロック周波数ごとに予め生成された対応関係であって、処理負荷に応じた実行時間と、前記処理負荷の処理の実行前後の前記アクセラレータの温度差との前記対応関係を取得し、
第1の処理を開始する際に、前記複数のアクセラレータの各々について、現在の処理負荷に関する情報と、現在のクロック周波数と、現在の温度とに基づき、前記対応関係から、前記第1の処理を実行させた場合の実行時間と、前記第1の処理の実行完了後の温度とを取得し、
前記取得した温度が前記第1閾値以上であるアクセラレータが存在する場合、当該アクセラレータについて取得した実行時間及び温度に代えて、当該アクセラレータのクロック周波数を前記第1周波数に設定した場合の実行時間及び温度を前記対応関係から取得し、
前記取得した実行時間が前記第1の処理の制限時間内である1以上のアクセラレータのうちの、前記取得した温度が所定の条件を満たすアクセラレータに、前記第1の処理を実行させる、
処理をコンピュータが実行する、アクセラレータの制御方法。
【0136】
(付記6)
前記複数のアクセラレータの各々は、消費電力が第2閾値以上になるとクロック周波数が現在のクロック周波数よりも低い第2周波数に設定され、
前記対応関係は、前記処理負荷の処理の実行後の前記アクセラレータの消費電力をさらに含み、
前記コンピュータが、
前記第1の処理を開始する際に、前記複数のアクセラレータの各々について、前記対応関係から、前記第1の処理の実行完了後の消費電力を取得し、
前記対応関係から取得した消費電力が前記第2閾値以上であるアクセラレータが存在する場合、当該アクセラレータについて取得した実行時間及び温度に代えて、当該アクセラレータのクロック周波数を前記第2周波数に設定した場合の実行時間及び温度を前記対応関係から取得する、
処理を実行する、付記5に記載の制御方法。
【0137】
(付記7)
前記処理負荷は、前記アクセラレータが前記第1の処理を同時に実行する処理数である、
付記5又は付記6に記載の制御方法。
【0138】
(付記8)
前記処理負荷は、前記アクセラレータの使用率であり、
前記複数のアクセラレータの各々について、前記実行時間と前記温度とを取得する処理は、前記複数のアクセラレータの各々について、前記第1の処理の種類と、前記アクセラレータが現在実行中の処理の種類及び処理数と、処理の種類ごとの使用率を示す情報とに基づき、前記第1の処理を実行する場合の前記アクセラレータの使用率を算出する処理を含む、
付記5又は付記6に記載の制御方法。
【0139】
(付記9)
温度が第1閾値以上になるとクロック周波数が第1周波数に設定される複数のアクセラレータの各々について、所定のクロック周波数ごとに予め生成された対応関係であって、処理負荷に応じた実行時間と、前記処理負荷の処理の実行前後の前記アクセラレータの温度差との前記対応関係を取得し、
第1の処理を開始する際に、前記複数のアクセラレータの各々について、現在の処理負荷に関する情報と、現在のクロック周波数と、現在の温度とに基づき、前記対応関係から、前記第1の処理を実行させた場合の実行時間と、前記第1の処理の実行完了後の温度とを取得し、
前記取得した温度が前記第1閾値以上であるアクセラレータが存在する場合、当該アクセラレータについて取得した実行時間及び温度に代えて、当該アクセラレータのクロック周波数を前記第1周波数に設定した場合の実行時間及び温度を前記対応関係から取得し、
前記取得した実行時間が前記第1の処理の制限時間内である1以上のアクセラレータのうちの、前記取得した温度が所定の条件を満たすアクセラレータに、前記第1の処理を実行させる、
制御部を備える、情報処理装置。
【0140】
(付記10)
前記複数のアクセラレータの各々は、消費電力が第2閾値以上になるとクロック周波数が現在のクロック周波数よりも低い第2周波数に設定され、
前記対応関係は、前記処理負荷の処理の実行後の前記アクセラレータの消費電力をさらに含み、
前記制御部が、
前記第1の処理を開始する際に、前記複数のアクセラレータの各々について、前記対応関係から、前記第1の処理の実行完了後の消費電力を取得し、
前記対応関係から取得した消費電力が前記第2閾値以上であるアクセラレータが存在する場合、当該アクセラレータについて取得した実行時間及び温度に代えて、当該アクセラレータのクロック周波数を前記第2周波数に設定した場合の実行時間及び温度を前記対応関係から取得する、
付記9に記載の情報処理装置。
【0141】
(付記11)
前記処理負荷は、前記アクセラレータが前記第1の処理を同時に実行する処理数である、
付記9又は付記10に記載の情報処理装置。
【0142】
(付記12)
前記処理負荷は、前記アクセラレータの使用率であり、
前記制御部が、前記複数のアクセラレータの各々について、前記実行時間と前記温度とを取得する処理において、前記複数のアクセラレータの各々について、前記第1の処理の種類と、前記アクセラレータが現在実行中の処理の種類及び処理数と、処理の種類ごとの使用率を示す情報とに基づき、前記第1の処理を実行する場合の前記アクセラレータの使用率を算出する、
付記9又は付記10に記載の情報処理装置。
【符号の説明】
【0143】
1 映像分析システム
10 コンピュータ
2、2A 映像分析装置
2a スケジューラ
2b GPU
21、21A メモリ部
21a、21d 温度テーブル
21b、21f GPU情報
21c 機械学習モデル
21e 使用率テーブル
22 映像取得部
23、23A GPU情報取得部
24、24A 算出部
240 使用率算出部
25 タスク割当部
26 物体認識処理部
27 出力部
28 制御部
3 カメラ
4 映像データ
5 認識結果
図1
図2
図3
図4
図5
図6
図7
図8