OSCAR自動並列化コンパイラを用いたリアルタイム動画像

情報処理学会研究報告
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