情報処理学会研究報告 IPSJ SIG Technical Report OSCAR 自動並列化コンパイラを用いたリアルタイム動画像 アプリケーションの Haswell マルチコア上での低消費電力化 飯塚 修平1,a) 山本 英雄1 平野 智大1 岸本 耀平1 笠原 博徳1 後藤 隆志1 見神 広紀1 木村 啓二1 概要:スマートフォンやノートパソコンといったモバイル端末からデータセンタで利用されるサーバーマ シンまで, あらゆる計算機において消費電力の削減が最重要課題となっている. これは、消費電力の削減 によりモバイル機器においてはバッテリー持続時間の延長により利便性が大幅に向上し, また サーバーマ シンにおいては膨大な電力コストや空調コストの削減が実現できるからである. これらの計算機は高性能 かつ低消費電力を実現するためにマルチコアプロセッサを搭載したものが主流となっている. しかしなが らマルチコアの資源を有効活用してこれらを実現するためには, プログラムの並列化が不可欠であり手動 で行うには膨大な工数を必要とする. 本稿では, 医用・防犯・個人認証・車載などで広く利用されている リアルタイム物体認識処理に対して, OSCAR 自動並列化コンパイラによる DVFS 及び clock gating によ る電力制御を適用し, 現在幅広く利用されている Intel Haswell Core i7-4770K マルチコア上で評価した. Intel Haswell マルチコア上で, Web カメラからの画像の入力・人の顔の認識処理・画面描画というリアル タイムなシステム全域における消費電力の削減を行ったところ, 1PE 逐次実行では電力制御なしの場合の 31.06[W] から電力制御ありの場合では 28.74[W] に、3PE で並列化実行した場合では電力制御なし場合の の 41.73[W] から電力制御の場合では 17.78[W] に消費電力を削減したことが確認され,物体認識処理にお けるマルチコア用のコンパイラ自動電力制御の有用性が確認できた. 1. はじめに スマートフォンやノートパソコンといったモバイル端末 ためには,ソフトウェアの並列化やハードウェアとソフト ウェアの協調によりマルチコアの性能を最大限に引き出す 必要がある. ではバッテリー持続時間が利便性に直結すること,及び 一般に,プログラムの並列化を OpenMP[3] や MPI を用 データセンタで利用されるサーバーにおいては膨大な電力 いて手動で行う場合は膨大な工数が必要となる.このよう コスト・空調コストが問題となっていることから,消費電 な問題に対して,コンパイラを用いてプログラムから多く 力の削減の需要が著しく高まっている.これらの計算機は の並列性を抽出し,自動で並列化することができれば作業 高性能を実現するためにマルチコアプロセッサを搭載した が効率的になり,高い生産性に寄与できる. ものが主流となっているが,上記の背景からマルチコアで 自動並列化機能を持つコンパイラとして,OSCAR 自動 の処理性能の向上に加えて、いかに消費電力の削減を行う 並列化コンパイラ [4] が開発されている.OSCAR 自動並 かが求められている. 列化コンパイラでは自動並列化機能に加え,DVFS やク Intel 社の第 4 世代 Intel Core プロセッサとして現在広 ロックゲーティング,パワーゲーティング指示文による電 く普及している Haswell マルチコアでは FIVR(Fully Inte- 力の最適化機能も備えており,ソフトウェア側から電力値 grated Voltage Regulator) の実装により電源レギュレータ を最適化することが可能である. をオンチップで搭載することで高速な電圧の変更を可能と 一方,物体認識は医用・防犯・個人認証・車載など多くの し,低消費電力化を実現している [1].Linux 環境下での動 応用先が存在しており,これら認識処理の低消費電力なリ 作周波数や電圧の変更は CPUFreq 機構 [2] の ondemand アルタイム処理が求められている.認識処理を含めた画像 governor が管理しているが,より高い電力効率を実現する 処理ライブラリの 1 つとして OpenCV が近年広く利用され ている [5].OpenCV の顔画像認識処理に対して OSCAR 1 a) 早稲田大学 Waseda University. [email protected] c 2015 Information Processing Society of Japan ⃝ コンパイラにより並列化及び低消費電力化を適用し,さら に Web カメラから取り込んだ画像を入力として人の顔と 1 情報処理学会研究報告 IPSJ SIG Technical Report 座標の認識処理を行い,ディスプレイへの描画も含めた環 表 1 Intel Haswell プラットフォーム 評価環境の構成 Intel Haswell プラットフォーム 境で評価を行った. 本稿では,第 2 章で OSCAR 自動並列化コンパイラにつ Motherboard H81M-A CPU Intel Haswell Corei7-4770K The number of cores 4 御について,第 4 章で OpenCV 顔認識処理の低消費電力 Frequency 3500 [MHz] 化について,第 5 章で電力値評価結果について述べる. L1 cache size 4×32 [KB] instruction chaches いて,第 3 章で Intel Haswell プラットフォームでの電力制 2. OSCAR 自動並列化コンパイラ OSCAR 自動並列化コンパイラは,マルチグレイン並列 化,キャッシュ及びローカルメモリ最適化,自動電力制御 を可能とする自動並列化コンパイラである [6], [7], [8].本 4×32[KB] data chaches L2 cache size 4×256 [KB] L3 cache size 8 [MB] DDR 8×2 [GB] OS Ubuntu 13.10 章では OSCAR コンパイラのマルチグレイン並列化,自動 電力制御機能,及び OSCAR API について述べる. 範囲で DVFS を適用し,またデッドラインまでの待機時に はクロックゲーティングを行う. 2.1 マルチグレイン並列化 マルチグレイン自動並列化では,複数の関数呼び出しや 2.3 OSCAR API ループ間に存在する粗粒度並列性,ループイテレーション OSCAR API[10] は様々なマルチコアプラットフォーム 間に存在する中粒度並列性,ステートメント間に存在する 上で並列化や電力削減を行うために定義された API であ 近細粒度並列性を組み合わせて自動で並列化を行う [4], [9]. る.並列実行,電力制御,リアルタイム制御,キャッシュ OSCAR コンパイラは Parallelizable C や Fortran で記述 制御,データのメモリ配置,DMA によるデータ転送,グ された逐次ソースコードを入力とし,並列化済みソース ループバリア同期,及びアクセラレータ制御指示文から構 コードを出力する.Parallelizable C とはポインタ利用の 成されている.OSCAR API は OpenMP をベースにして 制約等を定めることで自動並列化を可能にする C 言語の 仕様が定義されているため,OSCAR コンパイラにより並 記述手法である.ソースプログラムから 3 種類のマクロタ 列化され,OSCAR API 指示文が挿入されたプログラムは, スク (MT),すなわち基本ブロック (BB),ループなどの繰 OpenMP に対応したコンパイラで並列実行可能である. り返しブロック (RB),関数呼び出しの (SB) に分割し,マ OSCAR API の提供する fvcontrol や get fv status と クロタスク内部でも分割を行うことで階層的なマクロタス いった電力制御指示文等を含むプログラムをバイナリに変 クを生成する.粗粒度並列化では,マクロタスク間の依存 換する場合は,OSCAR API 解釈系を利用する.OSCAR 関係とコントロールフローを解析し,同時実行可能なマク API 解釈系が OSCAR API の指示文から fvcontrol() や ロタスクをプロセッサに割り当てるスケジューリングを行 get fv status() といったランタイム関数への変換を行うこ う.コンパイラは条件分岐や実行順不確定性の高い並列化 とで,逐次コンパイラさえ用意されていれば様々なマルチ 階層にはダイナミックスケジューリングコードを合わせて コアプラットフォーム上で並列化や低消費電力化が可能と 並列化コードを生成し,そうでない場合はスタティックス なる. ケジューリングを適用する. 2.2 OSCAR 自動並列化コンパイラによる自動電力制御 3. Intel Haswell プラットフォームでの電力 制御 OSCAR コンパイラは,マクロタスクのスケジューリ 本章では,まず本稿の低消費電力化のターゲットである ング結果に基づいて電力制御を行う [8].本稿で対象とす Intel Haswell プラットフォームの評価環境の構成について る OpenCV の物体認識のようなリアルタイム動画像アプ 述べる.次に DVFS やクロックゲーティングの方式など, リケーションでは,周期的にデッドラインが到達する. 電力制御手法について述べ,最後に電力値の測定方法につ OSCAR コンパイラは与えられたデッドライン情報とマク いて述べる. ロタスクのスケジューリング結果を元に,動作周波数やク ロックゲーティング,パワーゲーティングのスケジューリ ングを適用し,その結果を第 2.3 節で述べる OSCAR API 3.1 Intel Haswell プラットフォーム 概要 Intel Haswell プラットフォームとして,本稿ではマザー の指示文として,出力する並列化プログラム中に記述する. ボードは ASUS 社の H81M-A を利用し,プロセッサは Intel 本電力制御の適用例として,マクロタスクのスケジューリ Haswell Corei7-4770K[11] を利用した.このプロセッサは ング結果のうち動作周波数の低下に対して最も電力削減が 4 つのプロセッサコアから構成されており,DVFS は各プ 大きくなるマクロタスクについてデッドラインを保証する ロセッサコア毎に行うことが可能であり,電圧値はチップ c 2015 Information Processing Society of Japan ⃝ 2 情報処理学会研究報告 IPSJ SIG Technical Report 一括で同一の値を持つ.最大動作周波数は 3500[MHz] で, !"#$"%&'()* * 200[MHz] 単位での動作周波数の変更が可能となっている. 現状で Linux 環境では,CPUFreq 機構による動作周 * * !"#$! ! ! &"#$% ! ! &"#$% ! ! ! ! 波数及び動作電圧の動的制御が一般的であり,動作周波 * % * * 評価環境の構成を表 1 に示す. * * * * 3.2 評価対象プラットフォームの電力制御手法 * &"#$% &"#$% ! ! ! ! ! ! % * '''% % 数の決定は CPUFreq 機構の Governor により行われてい * 強検出器 TRUE% * * FALSE% ()% * る.Governor には動作周波数を最大に設定する perfor- mance や,動作周波数を最低に設定する powersave,負荷 図 1 Cascade 検出器の構成 に応じて段階的に値を変更する conservative,及びユーザが /sys/devices/system/cpu/cpuN/cpufreq/scaling set speed 1. Edge features (N はコア番号を表す 0 以上の整数) を介して自由に動作周 波数の値を設定できる userspace などが存在する.標準状 態では ondemand governor が利用されている.ondemand governor では一定間隔毎に負荷状況を監視し,あるしきい 値を超えた時点で動作周波数の変更を行う. 本稿が対象とするリアルタイム動画像アプリケーション のように数十ミリ秒ごとにデッドラインを持つプログラム (a) (b) (c) (d) 2. Line features (a) (e) (c) (d) (b) (f) (g) (h) 3. Center-surround features + - の場合は,ondmend governor の一定間隔毎の負荷状況に 基づく電力制御ではきめ細かい電力制御の適用が困難であ る.すなわち,アプリケーション側からの積極的な電力制 (b) (a) 4. Not used, but used in [3,2,4] 図 2 Haar-Like 特徴 Figu 御を行う必要がある. MID[1800MHz],LOW[800MHz] を設定し,OSCAR コン Figure 2. Feature prototypes of simple haar-like and center-surround features. Black areas have negative and white arのために PMIC(Power Management IC) と CPU コアの間 eas positive weights. パイラのマクロタスクのスケジューリング結果のうち動作 can be calculated as follows. Let X = W ⁄ w and Y = H ⁄ h be the に 5[mΩ] のシャント抵抗を挿入し,シャント抵抗間の電位 周波数の低下に対して最も電力削減が大きくなるマクロタ 差とコアに供給される電圧を計測することで,電流値及び size wxh then generates スクについてデッドラインを保証する範囲で MID や LOW CPU の消費電力の測定を可能としている [13]. X+1 Y+1 本 稿 で は 動 作 周 波 数 の 段 階 と し て HIGH[3500MHz], を適用することで DVFS を実現している.電力制御時は Governor を userspace として,OSCAR API の指示文経由 でアプリケーションから CPUFreq の制御を行うことによ り動作周波数の変更を行っている. また,Linux 環境における電源遮断に関しては,sysfs に よるコアの online に電源状態を記述する方式が一般的であ るが,sysfs による方式は遅延時間が大きいためアプリケー ションによる電力制御には不向きである.この問題を踏ま え,デッドラインまでの待機処理時には MWAIT(Monitor Wait) 命令を用いたクロックゲーティング手法を適用した. MWAIT 命令を用いることで特定のクラスのイベントが発 生するまで,コアを C state という低消費電力状態に 5[µs] 程度で遷移することが可能となる.MWAIT は特権命令で あるため,新たにカーネルモジュールを作成し,ioctl() 関 数を通じてユーザアプリケーションからアクセス可能とし ている [12]. 3.3 電力値の測定手法 本稿で評価を行う Intel Haswell プラットフォームを構 成するマザーボード H81M-A 及び Corei7-4770K プロセッ c 2015 Information Processing Society of Japan ⃝ サは電力値の測定機能をサポートしていない.電力値測定 maximum scaling factors in x and y direction. A upright feature of XY ⋅ W + 1 – w---------- ⋅ H + 1 – h---------- 2 2 4. OpenCV 顔認識処理の低消費電力化 features for an image of size WxH, while a 45° rotated feature generates with SAT From thi be determ Rec 本稿では,OpenCV の物体認識アプリケーションに第 3 章 This insi X+1 Y+1 で述べた低消費電力化手法を適用した.本章では OpenCV XY ⋅ W + 1 – z---------- ⋅ H + 1 – z---------- with z=w+h. For 45° Rotated pixels of (x,y) and 2 2 顔認識アプリケーションの概要と,低消費電力化の適用手 Table 1 lists the number of features for a window size of 24x24. 法について述べる. Feature w/h X/Y # Type ; 1b 2/1 ; 1/2 12/24 ; 24/12 43,200 4.11a アプリケーション概要 1c ;OpenCV 1d 2/1顔認識処理 ; 1/2 8/8 8,464 2a ; 2c 3/1 ; 1/3 8/24 ; 24/8 27,600 OpenCV は Intel 社が開発した画像処理ライブラリであ 2b ; 2d 4/1 ; 1/4 6/24 ; 24/6 20,736 2e ; 2g 3/1 ; 1/3 6/6 4,356 り,オープンソースとして公開されている.物体認識の例 2f ; 2h 4/1 ; 1/4 4/4 3,600 としては人の顔認識や白線の認識など多岐に渡り,医用・ 3a 3/3 8/8 8,464 3b 3/3 3/3 1,521 防犯・個人認証・車載といった分野に応用されている. Sum 117,941 Table 1: Number of features inside of a 24x24 window OpenCV では Paul Viola によって提案され, Rainerfor Lieneach prototype. hart により改良された物体認識アルゴリズムが利用され 2.2 Fast Feature Computation ており,本稿で取り上げる顔認識処理では事前に作成され All our features can be computed very fast and in constant time for た検出器を元に顔認識を行う.検出器は図 1 のように,複 any size by means of two auxiliary images. For upright rectangles the auxiliary image is the Summed Area Table SAT(x, y) . SAT(x, y) 数の強検出器を数珠つなぎに連結したカスケード検出器か is defined as the sum of the pixels of the upright rectangle ranging from the top left corner at (0,0) to the bottomHaar-Like right corner 特徴と at (x,y) ら構成される.強検出器内の弱検出器で (see Figure 3a) [5]: RSA It can be from lef RSA with RSA whereas calculate RSA From th can be d Figure 4 Rec 入力画像の矩形領域の積分値を比較することで物体認識を SAT(x, y) = ∑ I(x', y') . 行い,人の顔であると判断された物体のみが次の検出器に x’≤ x, y’≤ y It can be calculated with one pass over all pixels from left to right and top to bottom by means of 3 SAT(x, y) = SAT(x, y – 1) + SAT(x – 1, y) + I(x, y) – SAT(x – 1, y – 1) 2.3 Fas The spe contrast I ( x, y 情報処理学会研究報告 IPSJ SIG Technical Report レームレートをまとめたものである.カメラのキャプチャ next frame! !"#$%&'(&)*%+!),-$&%.! =8>2 ?%@5)*%&)! 速度が制約となり,システム全体としてのフレームレート は 30fps 付近から向上しないが,並列化対象である顔認識 部分の処理速度が向上し,デッドライン制約下で周波数制 deadline 33ms! /&)'0!)1%23*)4%! 御を行う余地が生まれていることが確認できる. B()!%2A%-%!C:DE! !"F))&A%-%!-G@H%!-0+.2 I9&%)J2K! I9&%)J2L! 表 2 OpenCV 顔認識処理の並列化後の実行時間比較 I9&%)J2M! !"56&!1%+.7!"89:;3*)4%2+<&)*%.! 顔認識時間 [ms] フレームレート [fps] 1PE 22.82 29.85 3PE 11.23 29.88 A60,1)'! current frame! 図 3 顔認識処理 システム全体構成 4.2 低消費電力化手法 顔認識処理の並列化により処理時間が短縮され,デッド 進む.最後の強検出器まで通過した物体のみが最終的に人 ライン制約下での周波数制御を行う余地が生じる.本節で の顔であると認識される [14].強検出器は認識対象の画像 は顔認識アプリケーションの低消費電力化手法について述 を複数枚用いて機械学習を行い,弱検出器に重みを付けて べる. ブースティング技法により組み合わせることで作成され 第 3 章で述べた 4 種類の周波数段階,HIGH[3500MHz], る.図 2 は Haar-Like 特徴を示しており,白黒の矩形で表 MID[1800MHz],LOW[800MHz],そして MWAIT 命令に 現される.2 つの領域の輝度差に注目し,人の目や鼻そし よるクロックゲーティングを図 3 の顔認識アプリケーショ て口のように,積分画像に明暗の特徴が見られる個所につ ンに適用した.システム全体として 1 フレームを 33ms で いて,eage 特徴や Line 特徴,及び Center-surround 特徴 描画まで行うために,実行時間のプロファイル情報を基に を検出することが可能となる [15].Haar-Like 特徴の位置, 顔認識処理部分にデッドラインを設けている.OSCAR コ サイズ,種類の情報が弱検出器の役割を果たす. ンパイラはデッドラインとコスト情報を基にマクロタスク 次に,顔認識処理のシステム全体の構成を図 3 に示す. の周波数制御,デッドラインまでの待機時間の計算及びコ まず cvQueryFrame 関数を用いて USB Web カメラのキャ アのアイドル状態の管理,逐次処理部分の不要なコアのク プチャを入力画像として取得する.ここで,本環境の Web ロックゲーティングを行う. カメラの最大フレームレートは 30fps である.次に入力画 本稿の電力制御対象アプリケーションは,画面の描画も 像の積分画像を作成し,画像中の探索窓のサイズを変更し 含んだシステムから構成されており,顔認識を始めとする つつ,画像の x 軸と y 軸を移動させてそれぞれの領域に対 計算処理と描画処理に大別できる.計算部分に DVFS を しカスケード検出器を用いて顔認識を行う.人の顔である 適用し低周波数で処理を行い,更に描画処理の時間まで加 と判断された物体の数と座標を保持し,cvShowImage 関 わるためにシステム全体としてデッドラインに間に合わな 数により入力フレームをディスプレイへ描画する際に,人 くなり,低周波数での動作が困難となる可能性がある.こ の顔と判断された物体が存在した場合は cvCircle 関数で全 の問題を解決するために CPU Isolation[16] を利用してい ての認識済みの顔に対して円の描画を行う.この処理を繰 る.CPU Isolation により core1 から core3 をユーザプロ り返し行うことでリアルタイムに Web カメラからキャプ グラムが自由に利用することを可能となる.顔認識処理の チャを行い,顔認識結果をディスプレイに出力することが スレッドを core1 から core3 にコアバインドし,描画処理 可能となる. を core0 で行うことで,顔認識処理のスレッドは画面描画 また,システム全体の実行時間に対して 89.1%の時間を とは非同期に,つまり現在のフレームの描画処理と次のフ 占め,顔認識処理を行う cvHaarDetectObjects 関数に対し レームの顔認識処理とを並行して動作させることで画面描 ては OSCAR コンパイラを用いて並列性を抽出している. 画に必要とされるコストを実質無いものと見積もり,計算 画像の xy 方向の探索はイタレーションごとに依存のない 部分だけで 33ms のデッドラインを利用可能とした. DOALL ループであり,Parallelizable C 規約を満たす記述 にチューニングを行うことで,コンパイラによる自動並列 化が可能となる. 表 2 は図 3 のシステムで画面解像度を 352×288 として顔 認識処理を行った時の顔認識時間及びシステム全体でのフ c 2015 Information Processing Society of Japan ⃝ 5. 評価結果 本章では,第 3 章で述べた Intel Haswell プラットフォー ム上での OpenCV 顔認識処理の電力値の評価結果を述 べる. 4 情報処理学会研究報告 IPSJ SIG Technical Report !!"#$%$&'(")* +$& 34./01$&'(")2* #$'()*& '"#(!& #$'(+,& +,-./01$&'(")2* +,-./01$5$6$&'(")2* !"#$%!"#& '$& !"#$%& !$& )*#*(& "(#(*& )$& "$& 図 4 OpenCV 顔認識処理の 3PE 実行における顔認識処理部分と $& 描画部分 ",-& 5.1 消費電力値評価 図 5 !,-& OpenCV 顔認識処理の消費電力評価結果 まず,第 4 章で述べた顔認識処理と描画処理との同時実 行の動作状況を確認するために,Systrace[17] を用いて各 コアの負荷状況の観測を行った.図 4 は OSCAR コンパイ 50[W]! 40[W]! ラによる電力制御と,スレッドのコアバインディングを適 用して core1∼3 で顔認識処理を行い,core0 で描画処理を 行った時の Systrace 結果を示したものである. Systrace 結果から,まず顔認識処理が core1∼3,描画処 30[W]! -7.7[W]! 20[W]! 10[W]! 1frame! 1frame! 理が core0 で動作している様子が確認できる.さらに顔認 (a) "#$%&'! 識処理の後続の描画処理と,次のフレームの顔認識処理と を並行して処理を行っている様子も確認できる.結果とし (b) "#$%()! 図 6 OpenCV 顔認識処理の消費電力波形図 1PE て,1 フレームにつき顔認識処理部分のみで 33ms のデッド ラインを利用しており,システム全体を通しても 1 フレー 50[W]! ムあたり 33ms のデッドラインを満たしながら画面描画ま 40[W]! で行っていることが確認できる. -22.4[W]! 30[W]! -26.9[W]! 次に,OSCAR コンパイラを用いて DVFS やクロック ゲーティングなどの消費電力削減手法を適用した OpenCV 顔認識処理の Intel Haswell プラットフォーム上での消費 電力と,プログラム側からの消費電力の制御を行わない場 合での消費電力を計測した.いずれの環境ともシステム全 20[W]! 10[W]! 1frame! (a) "#$%&'! 1frame! (b) "#$%()! 図 7 OpenCV 顔認識処理の消費電力波形図 3PE 体でのフレームレートが 30fps となるように 33[ms] のデッ ドライン制約を設けている.また,入力及び出力画面解像 きた.OSCAR コンパイラによる並列化や電力の最適化を 度は 352×288 である.OSCAR コンパイラによる電力制 行っていない 1PE 電力制御なしと 3PE 電力制御ありの消 御を行う場合は,CPUFreq の governor を userspace とし, 費電力を比較しても,31.06[W] から 17.78[W] に削減され, ユーザプログラムからの DVFS 及びクロックゲーティング 42.76%の消費電力を削減したことが確認できた. を受け付けている.一方で,電力制御を行わない場合は, 図 6 は OpenCV 顔認識処理を 1PE で動作させた時の消 ondemand governor による負荷状況に応じた動作周波数の 費電力波形図を示しており,(a) は電力制御なし,(b) は電力 決定を用いた.動作環境は表 1 のプラットフォームを用い 制御ありの波形図を示している.両波形図において周期的 た.また,core0 で行う描画処理に関しては DVFS の適用 に波形にピークが見られるが,これは顔認識計算処理と描 範囲外であるため,governor を userspace として動作周波 画処理とを同時に実行している個所で現れている.また, 数を 800[MHz] に設定している.OSCAR コンパイラによ 両波形を比較すると,電力制御ありの時にデッドラインま る電力制御ありの場合となしの場合における,OpenCV 顔 での待機の部分で,ondemand governor による待機時間と 認識処理のシステム全域における消費電力の計測結果を図 比較して 7.7[W] ほど低下しており,これが図 5 で 1PE の 5 に示す. 間の電力差となっていることが確認できる. 1PE の電力制御なしと電力制御ありの消費電力を比較す 図 7 は 3PE で動作させた時の消費電力波形図を示して ると,31.06[W] から 28.97[W] となり 7.05%の消費電力を いる.電力制御なし,すなわち ondemand governor による 削減したことが確認できる.3PE の電力制御なしと電力制 周波数制御では 1 フレーム中の消費電力が 40∼45[W] 付近 御ありの消費電力とを比較すると,41.73[W] から 17.78[W] となる.一方 OSCAR コンパイラによる電力制御を行った に削減され,57.40%の消費電力を削減できたことが確認で 場合,周波数段階として MID が適用され,デッドライン c 2015 Information Processing Society of Japan ⃝ 5 情報処理学会研究報告 IPSJ SIG Technical Report を満たしつつも 20[W] 未満の消費電力での顔認識処理の動 作が可能であることが確認できる.このことから、認識処 理において、OSCAR コンパイラを用いてアプリケーショ [10] ン側からの DVFS による低周波数での処理の実行,及び デッドラインまでのクロックゲーティングを適用すること が消費電力の削減に有用であることが確認できた. 6. おわりに [11] [12] [13] 本稿では,Web カメラによる画像入力,顔認識処理,画 面描画という一連のシステムに対して OSCAR 自動並列化 コンパイラを用いて電力制御を行い,Intel Haswell マルチ [14] コア上での消費電力の評価を行った.画面の描画も含めた システム全体でのデッドラインを保証するために,顔認識 処理のスレッドは画面描画とは非同期に実行可能とし,現 在のフレームの描画処理と次のフレームの顔認識処理とを [15] 並行動作可能にすることで,計算部分だけで 33ms のデッド ラインを利用可能とした.Haswell マルチプラットフォー ム上で電力制御を適用することで,消費電力が 1PE におい て 31.06[W] から 7.05%削減されて 28.87[W] となり,3PE において 41.73[W] から 57.40%削減されて 17.78[W] とな り,1PE 電力制御なしと比較しても 3PE 電力制御ありで [16] [17] cessor, Proc. of 9th Workshop on Interaction between Compilers and Computer Architectures (INTERACT9) (2005). Kimura, K., Mase, M., Mikami, H., Miyamoto, T., Shirako, J. and Kasahara, H.: OSCAR API for Real-time Low-Power Multicores and Its Performance on Multicores and SMP Servers, Lecture Notes in Computer Science, Vol. 5898, pp. 188–202 (2010). Intel: Intel Haswell Processor Corei7-4770K. : MWAIT:Monitor Wait(x86 Instruction Set Reference). Hirano, T., Yamamoto, H., Iizuka, S., Muto, K., Goto, T., Wake, T., Mikami, H., Takamura, M., Kimura, K. and Kasahara, H.: Hierarchical Parallelism Control for Multigrain Parallel Processing (2014). Viola, P. and Jones, M.: Rapid object detection using a boosted cascade of simple features, Computer Vision and Pattern Recognition, 2001. CVPR 2001. Proceedings of the 2001 IEEE Computer Society Conference on, Vol. 1, IEEE, pp. I–511 (2001). Lienhart, R. and Maydt, J.: An extended set of haarlike features for rapid object detection, Image Processing. 2002. Proceedings. 2002 International Conference on, Vol. 1, IEEE, pp. I–900 (2002). Intel: Intel Data Plane Development Kit. Fukui, D., Shimaoka, M., Mikami, H., Kimura, K., Kasahara, H. et al.: Tracing method of a parallelized program using Linux ftrace on a multicore processor, Technical Report of IPSJ, Vol. 2014, No. 6, pp. 1–6 (2014). は 31.06[W] から 17.78[W] に削減され,42.76%の消費電力 を削減したことが確認できる.この結果から,Haswell マ ルチコアプラットフォームでの OSCAR コンパイラの電力 制御の有用性及び,カメラ画像による入力や画面描画を含 む顔認識処理のシステム全域に対して OSCAR コンパイラ を用いた電力制御が有用であることが確認できた. 参考文献 [1] [2] [3] [4] [5] [6] [7] [8] [9] Intel: Intel Website. Brodowski, D.: CPU frequency and voltage scaling code in the Linux(TM) kernel. OpenMP: OpenMP Website. Kasahara, H., Obata, M. and Ishizaka, K.: Automatic coarse grain task parallel processing on smp using openmp, Workship on Lan- guages and Compilers for Parallel Computing, pp. 1–15 (2001). OpenCV: OpenCV Website. Ishizaka, K., Obata, M. and Kasahara, H.: Coarse Grain Task Parallel Processing with Cache Optimization on Shared Memory Multiprocessor, Proc. of 14th International Workshop on Languages and Compilers for Parallel Computing (LCPC2001) (2001). Obata, M., Shirako, J., Kaminaga, H., Ishizaka, K. and Kasahara, H.: Hierarchical Parallelism Control for Multigrain Parallel Processing, Lecture Notes in Computer Science, Vol. 2481, pp. 31–44 (2005). Shirako, J., Oshiyama, N., Wada, Y., Shikano, H., Kimura, K. and Kasahara, H.: Compiler Control Power Saving Scheme for Multi Core Processors, Lecture Notes in Computer Science, Vol. 4339, pp. 362–376 (2007). Kimura, K., Wada, Y., Nakano, H., Kodaka, T., Shirako, J., Ishizaka, K. and Kasahara, H.: Multigrain Parallel Processing on Compiler Cooperative Chip Multipro- c 2015 Information Processing Society of Japan ⃝ 6
© Copyright 2024 ExpyDoc