(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024060518
(43)【公開日】2024-05-02
(54)【発明の名称】AI搭載PC装置の消費電力計測装置
(51)【国際特許分類】
G06F 1/32 20190101AFI20240424BHJP
G01R 21/00 20060101ALI20240424BHJP
【FI】
G06F1/32
G01R21/00 Z
【審査請求】未請求
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2022167942
(22)【出願日】2022-10-19
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和4年度、総務省、脳の仕組みに倣った省エネ型の人工知能関連技術の開発・実証事業、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】519291847
【氏名又は名称】株式会社iD
(74)【代理人】
【識別番号】100099014
【弁理士】
【氏名又は名称】小林 滿茂
(72)【発明者】
【氏名】亀井 宏
(72)【発明者】
【氏名】渡辺 徹
(72)【発明者】
【氏名】鈴木 利一
【テーマコード(参考)】
5B011
【Fターム(参考)】
5B011EA02
5B011KK01
5B011KK02
(57)【要約】
【課題】 AIプログラム搭載PCの消費電力、特に、AIプログラムの稼働に要した消費電力や電力量を可能な限り正確に測定可能とすること。
【解決手段】 電源供給部から、CPU14、GPU16、DRAM18への供給電力量を検出する電力センサ20を備え、タイマ装置22を介して、電力センサ20によって検出された電力の経時変化を検出する電力変化検出部24と、AIプログラムの実行状態を経時的に検出するAIプログラム監視部(30)とを備えるとともに、前記電力変化検出部24および前記AIプログラム監視部(30)の検出データを、それぞれ記録するデータ格納部を備える(請求項1)。各検出値をデータ格納部に格納することにより、当該データ格納部の記録データに基づいて、AIプログラムの実行時の消費電力/消費電力量を解析/分析することを可能とする。
【選択図】
図1
【特許請求の範囲】
【請求項1】
電源供給部から、CPU、GPU、DRAMへの供給電力を検出する電力センサを備える消費電力計測装置であって、
タイマ装置を介して、
前記電力センサによって検出された電力の経時変化を検出する電力変化検出部と、
AIプログラムの実行状態を経時的に検出するAIプログラム監視部とを備えるとともに、
前記電力変化検出部および前記AIプログラム監視部の検出値を、
それぞれ記録するデータ格納部を備えることを特徴とするAI搭載PC装置の消費電力計測装置。
【請求項2】
データ格納部に記録した、電力変化検出部およびAIプログラム監視部の検出データとの照合に基づき、
AIプログラムの稼働に要した消費電力を演算する、AIの消費電力算出部を備えることを特徴とする請求項1記載のAI搭載PC装置の消費電力計測装置。
【請求項3】
AIの消費電力算出部は、
AIプログラムにおける部分処理単位の電力を繰り返しサンプリング計測するものであり、
予め設定した秒数をもってサンプリング計測処理を繰り返し、
当該サンプリング計測期間の電力積分とサンプリング計測処理回数とに基づいて、
前記AIプログラムの部分処理単位における、
一回あたりのサンプリング計測の平均電力と電力量とを求めることを特徴とする請求項1または請求項2記載のAI搭載PC装置の消費電力計測装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、PC装置の消費電力を測定する技術に係り、特に、AIプログラムを搭載したPC装置における、AIプログラムの稼働に要した消費電力/電力量を計測する技術に関する。
【背景技術】
【0002】
CPUを備えるPC装置の消費電力を監視する装置としては、下記特許文献1がある。
【0003】
これは、CPUと一つ以上のモジュールとを含む制御対象装置への供給電力を測定し、前記モジュールの各々について、使用されているか否かを監視し、制御対象装置への供給電力と所定の許容上限電力値との差分が、所定のしきい値以下のとき、使用されていないモジュールの消費電力を、通常状態から低消費電力状態へ低下させるものである。
【0004】
これは、使用されていないモジュールの消費電力を、通常状態から低消費電力状態へ低下させることにより、CPUの性能低下を防止する技術である。
【先行技術文献】
【特許文献】
【0005】
【発明の開示】
【発明が解決しようとする課題】
【0006】
本発明の課題は、AIプログラムを搭載したPC装置の消費電力、特に、AIプログラムの実行に要する消費電力、電力量の指標をより正確に得ることにある。
【0007】
これは、次の通りである。
【0008】
AIプログラムは、通常のアプリケーションソフトとは異なり、膨大な数の繰り返し処理を行うことによって、必要な出力(結果)を得るシステムである。
【0009】
現状では、AIプログラム搭載PC装置の消費電力量が、社会的な電力需要を圧迫するほどではないところ、今後、急速かつ飛躍的にAIプログラム搭載PC装置の台数が増加すると予測されている。
【0010】
AIプログラム搭載PC装置は、監視カメラネットワーク、天気予報、マーケティング分析、スポーツ分野の各種の解析等、幅広い分野での需要があり、このため、近い将来の予測として、AIプログラム搭載PC装置の消費電力量が、電力供給量を圧迫する可能性があるという社会認識が生じつつある。
【0011】
このような理由で、AIプログラム搭載PC装置の消費電力、特に、AIプログラムの稼働に要した消費電力や電力量を計測し、省電力化のための改善点を把握する等の技術が必要となるが、前記、特許文献1に示された技術等を含めて、現状では、AIプログラムの稼働に要した消費電力や電力量を正確に把握することは困難である。
【0012】
そこで、本発明の目的は、AIプログラム搭載PC装置の消費電力、特に、AIプログラムの稼働に要する消費電力や電力量を可能な限り正確に測定可能とする点にある。
【課題を解決するための手段】
【0013】
前記目的を達成するため、本発明に係る消費電力計測装置は、電源供給部から、CPU、GPU、DRAMへの供給電力量を検出する電力センサを備える消費電力計測装置であって、タイマ装置を介して、前記電力センサによって検出された電力の経時変化を検出する電力変化検出部と、AIプログラムの実行状態を経時的に検出するAIプログラム監視部とを備えるとともに、前記電力変化検出部および前記AIプログラム監視部の検出データを、それぞれ記録するデータ格納部を備える(請求項1)。
【0014】
請求項1に係る消費電力計測装置は、PC装置の物理的構成要素であるCPU、GPU、DRAMへの供給電力を電力センサと電力変化検出部とを介して検出する一方、AIプログラム監視部を介して、AIプログラムの実行状態を経時的に検出する。
【0015】
そして、これらの検出値をデータ格納部に格納することにより、当該データ格納部の記録データに基づいて、AIプログラムの実行時の消費電力/消費電力量を解析/分析することを可能とする。
【0016】
データ格納部に格納されたデータに基づく、AIプログラムの稼働に要した消費電力/消費電力量の解析/分析は、適宜のプログラムソフトウェアを介して行うことが出来る。
【0017】
データ格納部に記録した、電力変化検出部およびAIプログラム監視部の検出データとの照合に基づき、AIプログラムの稼働に要した消費電力を演算する、AIの消費電力算出部を備える場合がある(請求項2)。
【0018】
請求項2は、AIプログラムを搭載したPC装置に、AIの消費電力算出部を設けるものである。
【0019】
請求項1は、各種の検出値をデータ格納部に格納するものであり、AIプログラムの稼働に要した消費電力に関する解析/分析は、AIプログラムを搭載したPC装置とは別の解析装置等を用いる場合もあることを前提とする。
【0020】
しかし、AIプログラムの稼働に要した消費電力/消費電力量の解析/分析を行う演算プログラムが良好な精度で機能するようになった場合は、AIプログラムを搭載したPC装置自体に、AIの消費電力算出部を設けることが望ましい。システム構成を単純化できるからである。
【0021】
AIの消費電力算出部は、AIプログラムにおける部分処理単位の電力を繰り返しサンプリング計測するものであり、予め設定した秒数をもってサンプリング計測処理を繰り返し、当該サンプリング計測期間の電力積分とサンプリング計測処理回数とに基づいて、前記AIプログラムの部分処理単位における、一回あたりのサンプリング計測の平均電力と電力量とを求める構成とする場合がある(請求項3)。
【0022】
AIプログラムは、いわゆる中間層(隠れ層)において複数階層/複数岐路の演算を行う。中間層(隠れ層)の消費電力を直接測定することは困難である。
【0023】
中間層(隠れ層)の消費電力/消費電力量を最も信頼性において求めるため、請求項3は、AIプログラムの部分処理単位の電力を繰り返しサンプリングし、複数の電力センサを用いた測定結果、複数回の電力サンプリング結果を得て、PC特有のさまざまな要因に基づく不正確性を排除し、可能な限り実数に近い正確な数値を得られるようになる。
【発明の効果】
【0024】
本発明に係る構成によれば、PC装置の消費電力、特に、AIプログラムの稼働に要した消費電力と電力量とを略正確に測定することが可能となる。
【図面の簡単な説明】
【0025】
【
図1】実施形態に係る消費電力計測装置を例示するブロック図である。
【発明を実施するための形態】
【0026】
図1は、本発明に係るAI搭載PC装置の消費電力計測装置の一実施形態を例示するものである。
【0027】
この消費電力計測装置10は、電源供給部12から、CPU(Central Processing Unit)14、GPU(Graphics Processing Unit)16、DRAM(Dynamic Random Access Memory)18への供給電力を検出する電力センサ20を備える。電力センサ20は、必要数(複数)設ける場合がある。
【0028】
電力センサ20の検出結果は、タイマ装置(例えばRTC;リアルタイムクロック等)22と同期させつつ、電力変化検出部24を介して第一の検出データ格納部25にデータ保存する。
【0029】
一方、AI(artificial intelligence)プログラムに関しては、AIプログラムの稼働状態検出部(AIプログラム監視部)30の検出結果を、前記タイマ装置(例えばRTC;リアルタイムクロック等)22と同期させつつ、第二の検出データ格納部35にデータ保存する。
【0030】
AIプログラムの稼働状態検出部(AIプログラム監視部)30は、AIプログラムの種類、構造等に応じて構成することが望ましい。
【0031】
40は、第一の検出データ格納部25に格納したデータと、第二の検出データ格納部35に格納したデータとに基づき、AIプログラムの稼働に要した消費電力/消費電力量を算出するAIの消費電力算出部である。
【0032】
以下、各部について説明する。
【0033】
本発明は、AIプログラムを搭載したPC装置におけるAIプログラムの稼働に要した消費電力を計測するものであり、大規模高速コンピュータ(所謂スーパーコンピュータ)における消費電力を測定する技術ではない。
【0034】
AIプログラムを搭載した本発明に係るPC装置は、いわゆる汎用PC装置と同様に、CPU14、GPU16、DRAM18を備える。その他のPC構成部品を備える場合は、電力センサ20を介して当該部品の消費電力を計測する。
【0035】
CPU14、GPU16、DRAM18は、複数搭載される場合がある。それらのモジュールの数は、機能によって適宜増減する。
【0036】
電力センサ20は、例えば、電源供給部12からCPU14、GPU16、DRAM18に供給される電流/電圧に基づき、各モジュール(CPU14、GPU16、DRAM18等)の消費電力を検出する。
【0037】
電力センサ20は、タイプ別に各種の種類がある。例えば、リング状の磁気コアの中心を通る測定導体の電流を計測するタイプ等である。近年は、磁気コアを用いないもの、MI素子を用いて磁場を非接触検知するものなどがある。
【0038】
しかし、消費電力の測定対象であるCPU14、GPU16、DRAM18は、AIプログラム搭載PC装置では、通常、複数搭載され、特にGPU16の数は、膨大な数になることが少なくない。このため、性能に優れていても、高額の電力センサ20は実用的ではない場合がある。
【0039】
電力センサ20の検出値は、タイマ装置22および電力変化検出部24を介して第一の検出データ格納部25にデータ保存する。
【0040】
低パワー化と時刻情報の高精度化を実現するため、タイマ装置22は、例えば、RTC(リアルタイムクロック装置)を用いることが望ましい。リアルタイムクロック装置は、例えば、1/100秒程度の測定精度を備えることが望ましい。ミリ秒以下の精密測定も理論的に可能であるが、時刻記録を正確に同期させるように機器を構成することが難しく、測定コストが高くなる不利がある。
【0041】
AIプログラムの稼働状態検出部30の検出結果は、タイマ装置22と同期させつつ、第二の検出データ格納部35にデータ保存する。
【0042】
AIのソフトウェア的な部分処理単位(ある程度の計算上の意味をもつ処理単位)は、十分に長い場合(10ミリ秒以上)もあるので、1/100秒程度の測定精度を備えるRTC(リアルタイムクロック装置)を用いて対応することができる。10ミリ秒以下の部分処理単位の計測処理については、後に述べる。
【0043】
AIの消費電力算出部40は、第一の検出データ格納部25に格納した各モジュール(CPU14、GPU16、DRAM18)の消費電力データと、第二の検出データ格納部35に格納したAIプログラムの計測データとに基づき、AIプログラムの稼働に要した消費電力/消費電力量を算出するものである。
【0044】
AIの消費電力算出部40における処理は、例えば、第一の検出データ格納部25と第二の検出データ格納部35の時刻を照合対比することによって、AIプログラムの稼働に要した消費電力等を算出する手法を採ることが出来る。
【0045】
AIプログラムの処理タイミング(時刻)と当該タイミング(時刻)の各モジュール(CPU14、GPU16、DRAM18)の消費電力データとを照合すれば、AIプログラムの実行に要した消費電力は概算算出できる。AIプログラムは各モジュール(CPU14、GPU16、DRAM18)を介して稼働するからである。
【0046】
従って、かかる構成によれば、PCの消費電力、特に、AIプログラム実行時の消費電力と電力量とを略正確に測定することが可能となる。
【0047】
次に、第二の実施形態について説明する。
【0048】
これは、AIの消費電力算出部40における処理精度をより高めるための手法(構成)である。
【0049】
一般に、AIを機能させるには、機械学習(ML)とディープラーニング(DL)という基本的な技術が必要であるとされる。
【0050】
AIの定義は一律ではない。また、機械学習の手法も各種あり、対象の全体像から細部までの各々の粒度の概念を階層構造として関連させて学習するディープラーニングの手法も各種手法が存在する。
【0051】
しかしながら、現状において最も普及しているディープラーニング手法としては、多層のニューラルネットワーク(NN)を介した機械学習手法がある。ニューラルネットワークは、人間の脳内にある神経細胞の動作を模倣して作成された統計アルゴリズムを使用する機械学習の手法である。
【0052】
装置コストの低減、実用利便等に鑑み、この第二の実施形態に係るAIは、ニューラルネットワーク(NN)を用いた装置構成であることを前提として説明する。
【0053】
この場合、第二の実施形態に係るAIの消費電力算出部40における処理は、検出精度を高めるため、AIプログラムにおける部分処理単位の電力を繰り返しサンプリング計測する。
【0054】
より具体的には、予め設定した秒数をもってサンプリング計測処理を複数回行い、当該サンプリング計測期間の電力積分とサンプリング計測処理回数とに基づいて、AIプログラムの部分処理単位における、一回あたりのサンプリング計測の平均電力と電力量とを求める。
【0055】
予め設定した秒数をもってサンプリング計測処理を複数回行う理由は、次の通りである。
【0056】
ニューラルネットワークの構造は、複数の入力を受け取り、それをもとに出力する「ノード」が連なって一つの層を成し、その層が何層にも積み上がることで、複雑な問題に対しても高い精度で予測できるようにしたアルゴリズムである。層は基本的に、入力層、中間層(隠れ層)、出力層に分けられ、中間層(隠れ層)の数を増やす(層を深くする)ことによって、より複雑な問題にも対処することが可能となる傾向がある。
【0057】
一方、すでに述べたように、AIのソフトウェア的な部分処理単位(ある程度の計算上の意味をもつ処理単位)は、十分に長い場合もある。しかし、部分処理単位の実行時間は、数ミリ秒またはそれ以下であり、一般的なコンピュータプログラムにおいて安定して記録可能な時間間隔や、電力計のサンプリング間隔(例えば10ミリ秒程度)の単位を下回ることが少なくない。
【0058】
かかる場合、1/100秒程度の測定精度であるRTC(リアルタイムクロック装置)を用いて、単純な一回測定(一回の電力測定)で精度の高い検出結果を得ることは困難である。
【0059】
そこで、第二の実施形態は、予め設定した秒数をもってサンプリング計測処理を複数回行うことにより、一回測定に伴う精度の不正確性を是正する。
【0060】
複数回のサンプリングが可能であるのは、次のような理由による。
【0061】
まず、AI用の基盤は、どの部分も同じ部品が組み込まれることが多い。
【0062】
そして、ニューラルネットワークは、プログラム言語の特定のクラス部品を、入れ子の階層構造的に含める構成を取っているため、この階層構造を半自動的に辿ることが可能であり、部品毎にAIソフトウェア(AIプログラム)を分解することによって、部分毎の繰返し測定の実施を一貫して行うことが出来るようになっている。
【0063】
このように、予め設定した秒数をもってサンプリング計測処理を複数回行うことにより、一回のサンプリング測定に較べて格段に精度の高い電力データ(平均電力と電力量)を得ることが可能となる。
【0064】
また、数秒程度の比較的長いAIの実行処理でも、同じレベルの電力が継続することは少なく、激しく変動する場合もあるところ、複数回のサンプリング測定によれば、信頼性の高い電力データ(平均電力と電力量)を取得出来る。
【0065】
なお、何らかの理由により測定の規定秒数が不正確となっても(例えば、規定秒数を3秒間としたときに2.5秒あるいは4秒の測定になるような場合)、測定精度には悪影響は殆ど生じない。
【0066】
繰り返し回数で割り戻されるため、規定秒数が単位処理時間で割り切れない場合であっても、AIの消費電力算出部40を介して取得する電力データ(平均電力/電力量)は高い精度を担保できるからである。
【0067】
AIプログラムのログ(稼働の履歴記録)において、電力サンプリングの中間時刻における電力推定は、一次線形補間を行う場合がある。一次線形補間は、一般的なグラフィックスプロセッサ (GPU) にハードウェアレベルで実装されていることが多く、データの欠落/欠損部を精度高くスピーディに補間できる。
【0068】
また、サンプリング計測処理においては、瞬間的なOSブロックに起因するサンプリング抜けも発生しうるが、これも一次線形補間によってサンプリング抜けによる精度の低下を最小限に抑えることが望ましい。
【0069】
図1では、電力センサ20を一個のみ図示した。しかし、複数の電力センサ20を用い、独立の消費電力装置(CPU、GPU、DRAM等)の電源供給経路上に電力センサ20を個別に取り付けることによって、モジュール単位(部品単位)の電力データを個別測定しても良い。
【0070】
複数の電力センサ20を用いた個別の電力測定には、利点がある。
【0071】
電力センサ20それ自身が費やす消費電力に起因する、電力測定値の誤差を減少させることが出来るからである。理由は次の通りである。
【0072】
通常使用される電力センサ20は、自己モニタ型の電力計であるため、電力測定を有効にして記録を行うだけで電力負荷がかる。
【0073】
電力センサ20それ自身が用いる電力も含んだ消費電力値が、電力変化検出部24に記録されるわけである。これは、正確な測定精度を求める上で、測定精度を阻害する要因となり得る。
【0074】
このような複数の電力センサ20(自己モニタ電力計)の同時稼働による好ましくない影響を排除するには、一回の電力測定において起動する電力センサ20を一個に限定制御することが好ましい。
【0075】
ほとんどのAI処理は計算量と電力消費に再現性があるため、電力センサ20(有効な電力計)を切り替えながら、複数回同じ処理の電力測定を実施するわけである。この結果得られる電力指標(電力量と電力)の推定は、複数回測定の影響を原則受けない。
【0076】
これにより、電力センサ20の自己モニタによる影響は、近年のAIエッジ装置の処理能力や電力レベル的には問題ない範囲に抑えることができる。
【符号の説明】
【0077】
10 消費電力計測装置
12 電源供給部
14 CPU(Central Processing Unit)
16 GPU(Graphics Processing Unit)
18 DRAM(Dynamic Random Access Memory)
20 電力センサ
22 タイマ装置
24 電力変化検出部
25 第一の検出データ格納部
30 AIプログラムの稼働状態検出部(AIプログラム監視部)
35 第二の検出データ格納部
40 AIの消費電力算出部