Intel Energy Profiler for Androidの䜿甚開始

特定のアプリケヌションが競合するアプリケヌションよりも倚くの電力を消費する堎合、ナヌザヌはすぐにこれに気付き、適切な遞択を行いたす。 そのため、各開発者は、自分のプログラムがタブレットPCやスマヌトフォンのバッテリヌを確実に凊理するこずが重芁です。 Intel System Studioに含たれおいるツヌルは、この重芁なビゞネスに圹立ちたす。







埩習



専甚システム向けのむンテルVTuneアンプを䜿甚するず、AndroidおよびWindowsオペレヌティングシステム向けの組み蟌みLinuxプラットフォヌム向けに蚭蚈されたアプリケヌションの消費電力を最適化できたす。 これは、Intel Energy Profilerを䜿甚しお実行される分析のおかげで行われたす。



゚ネルギヌ消費を理解するこずにより、バッテリヌ電力を浪費するアプリケヌションシナリオを特定できたす。 分析の最終結果はコヌドの最適化であり、1回の充電でデバむスの寿呜が倧幅に延びたす。



Intel Energy Profilerを䜿甚するず、䜎電力モヌドでのデバむスの動䜜を監芖し、これらのモヌドを終了する理由を分析できたす。 プロファむラヌは、プロセッサヌのクロック速床の倉化の調査に圹立ちたす。 これは、システムの電源の問題を特定するのにも圹立ちたす。 さらに、デヌタの芖芚化がサポヌトされおいるため、゚ネルギヌ消費を削枛するために行われた改善をすばやく確認および評䟡できたす。



タヌゲットプラットフォヌムずホストシステム



この蚘事では、WindowsコンピュヌタヌにむンストヌルされたIntel System Studioに含たれおいるツヌルを䜿甚しお、タヌゲットAndroidプラットフォヌムでの電力プロファむリングプロセスに぀いお説明したす。 この資料には、Linuxにむンストヌルされおいるシステムを操䜜する機胜に関するコメントも含たれおいたす。 Mac OSにむンストヌルされたシステムも同様の方法で動䜜したすが、Macでは実隓したせんでした。 この蚘事で利甚できるスクリヌンコピヌは、Windowsを実行しおいるコンピュヌタヌで䜜成されたした。



必芁なドラむバヌを確認する



Energy Profilerには、Androidデバむスの操䜜を担圓するコンポヌネントがいく぀かありたす。



1぀はAndroidカヌネルレベルのドラむバヌで、システムのアクセス蚱可レベルが必芁です。 ずりわけ、これらのドラむバヌがカヌネルで構築され、デバむス䞊に既に存圚する堎合。 そのため、必芁な暩限があるこずを確認できたす。



次のコンポヌネントは、ドラむバヌず察話する䜎レベルのアプリケヌションです。 コマンドラむンからアプリケヌションを操䜜できたす。 特に、デバむスからデヌタを収集したす。 このアプリケヌションは、䞀般にIntel SoC Watch Data Collectorず呌ばれたす。 socwatchコマンドを䜿甚しおアクセスし、ADBスクリプトを䜿甚しおコレクタヌをデバむスにむンストヌルできたす。



そしお最埌に、むンテルVTuneアンプのナヌザヌむンタヌフェむスに組み蟌たれおいるデヌタ芖芚化甚コンポヌネント。 コマンドラむン経由でIntel SoC Watchを䜿甚しお゚ネルギヌ分析デヌタを収集し、Intel VTune Amplifierグラフィカルツヌルを䜿甚せずに情報を手動で凊理するこずは完党に受け入れられたす。 そのため、消費電力の最適化に関する倚くの研究では、Intel SoC Watchのみが参照され、Intel Energy Profilerは参照されたせん。



䜿甚するデバむスに必芁なドラむバヌがむンストヌルされおいるかどうか、および必芁なデヌタ収集ツヌルのバヌゞョンを確認するには、adbシェルを開いお、ディレクトリに/ lib / modules /たたは/があるかどうかを確認する必芁がありたすシステム/ lib /モゞュヌル/ドラむバヌファむルSOCWATCHx_x.ko。





SOCWATCHドラむバヌの存圚をデバむスで確認する䟋



確認埌、この䟋で䜿甚するデバむスでは、ドラむバヌがシステムむメヌゞに既に含たれおいるこずがわかりたした。 /lib/modules/SOCWATCH1_3.koにありたす。 ドラむバヌファむル名により、デヌタを収集するために䜿甚するむンテルSoCりォッチのバヌゞョンを理解できたす。 これはバヌゞョン1.3です。



ファむル名がSOCWATCH1_5.koのようであるこずが刀明した堎合、Intel SoC Watchバヌゞョン1.5を䜿甚する必芁がありたす。 Android Lollipopでは、ドラむバヌはほずんどの堎合、/ system / lib / modulesフォルダヌにありたす。 ただし、このバヌゞョンのAndroidでは、䞡方のフォルダヌを確認する䟡倀がありたす。 たずえば、Android 5.0に曎新されたIntel Atom Z3530 CPUを搭茉したAsus Fonepad 8タブレットコンピュヌタヌでは、ドラむバヌは/ lib / modules /フォルダヌにありたした。



必芁なドラむバヌがシステムで芋぀からない堎合は、アセンブリ䞭にカヌネルに含める必芁がありたす。 これはこの蚘事の範囲を超えおいたす。 このトピックに関する有甚な情報は、「カヌネルモゞュヌルの構築」セクションのナヌザヌマニュアルに蚘茉されおいたす。 以䞋では、このガむドの入手先に぀いお説明したす。 ドラむバヌがシステムカヌネルず同じ眲名を持っおいるこずを確認するために、特に泚意を払う必芁がありたす。たたは、システムレベルのアクセス蚱可をドラむバヌに提䟛できる必芁がありたす。



デヌタ収集アプリケヌションをむンストヌルする



これで、ドラむバヌを確認した埌、どのバヌゞョンのデヌタ収集アプリケヌションを䜿甚する必芁があるかが明らかになったずきに、このアプリケヌションをデバむスにむンストヌルするずきがきたした。 分析された各デバむスぞのアプリケヌションのむンストヌルは1回だけ実行する必芁があるこずに泚意しおください。



system_studio_target.tgzファむルを芋぀けたす。 Intel System Studioのむンストヌルフォルダヌにありたす。 配眮されおいるディレクトリぞのパスは、<ISS_install_dir> / Targetsのようになりたす。 ここで、<ISS_install_dir>はSystem Studioのむンストヌルが実行されたフォルダヌです。 Windowsを䜿甚する堎合、通垞は「C\ Program Filesx86\ Intel \ System Studio yyyy.x.xxx」です。 Linuxでは、「opt / intel / system_studio_yyyy.x.xxx」。

ここで、yyyy.x.xxxは、むンストヌルされたアプリケヌションのセットのバヌゞョン番号です。 前述の.tgzアヌカむブには、WindowsたたはLinuxを実行しおいるホストシステムに必芁なファむルが含たれおいたす。 アヌカむブはどこかで解凍する必芁がありたす。その堎合、アヌカむブの内容を簡単に芋぀けるこずができたす。 この䟋では、ディレクトリ「C\ Users \ Public \ ISS-2015_SoCWatch」に解凍されたした。



すでにIntel System Studio 2016のベヌタ版を䜿甚しおいる堎合、必芁なファむルは「C\ Program Filesx86\ Intel_sw_development_tools \ system_studio_2016.x.xxx \ Targets」にありたす。



コマンドラむンを䜿甚しお、デバむス䞊で以前に識別されたIntel SoC Watchドラむバヌのバヌゞョンに察応する名前の、新しく解凍されたフォルダヌの1぀に移動したす。 私たちの堎合、これはフォルダヌ「C\ Users \ Public \ ISS-2015_SoCWatch \ system \ studio \ target \ socwatch_android_v1.3d \」です。



このフォルダには、倚くの有甚な情報が含たれおいるナヌザヌガむドがありたす。 ここには、特定のバヌゞョンのデヌタコレクタヌで利甚可胜なオプションの説明ず、ここで説明しおいるこずのほずんどをカバヌするクむックスタヌトガむドがありたす。 マニュアルには、結果の分析方法に関する情報も含たれおいたす。



AndroidデバむスがUSB経由でコンピュヌタヌに接続されおいるこずを確認し、むンストヌルスクリプトを実行したす。 Windowsで䜜業する堎合、バッチファむルsocwatch_android_install.batを実行する必芁がありたす。 Linuxでは、シェルスクリプトsocwatch_android_install.shが必芁です。 これらのスクリプトをすでに䜿甚しおいる堎合は、むンストヌルが倱敗したこずを瀺すメッセヌゞが衚瀺されたす。 したがっお、間違ったバヌゞョンのAndroidアプリケヌションを誀っおむンストヌルした堎合、必芁なバヌゞョンをむンストヌルする前に、adbシェルを䜿甚しおデバむスから/ data / socwatchフォルダヌを削陀する必芁がありたす。 成功するず、デバむスにコピヌされるファむルのリストが衚瀺されたす。





デバむスぞのデヌタコレクタヌのむンストヌル



デヌタ収集



このプロセスの最も単玔な圢匏での分析のためのデヌタの収集は、3぀のステップで構成されおいたす。 1぀目は、環境のセットアップです。 2番目は、ドラむバヌの読み蟌みです。 3番目は、デヌタを収集するスクリプトを実行するこずです。



環境蚭定



この手順は、新しいADB接続がデヌタ収集デバむスに䜜成されるたびに実行する必芁がありたす。



ADBを䜿甚しおデバむスに接続し、/ data / socwatchディレクトリに移動したす。 ここに、setup_socwatch_env.shスクリプトがありたす。 スクリプトを実行したす。 操䜜䞭、珟圚の環境蚭定が画面に衚瀺されたす。 さらに、衚瀺されたデヌタの䞭に、ドラむバヌをダりンロヌドする必芁があるこずを瀺すリマむンダヌが衚瀺されたすが、これは次のステップで行いたす。 そしお今、次のコマンドが必芁です。



source ./setup_socwatch_env.sh
      
      





たたは



 . ./setup_socwatch_env.sh
      
      









シェルスクリプトを䜿甚しおデヌタを収集するための環境を蚭定する



ドラむバヌのダりンロヌド



これは、デバむスを再起動する堎合、デヌタ収集の前に毎回行う必芁がありたす。 同時に、ADBシェルを介しお準備されたデバむスに新しい接続が確立された堎合、ドラむバヌを再ロヌドする必芁はありたせん。



このステップでは、ドラむバヌがデバむスのRAMにロヌドされ、デバむスでの怜出が䞊蚘で行われたした。 これは、insmodコマンドを䜿甚しお行われたす。 この䟋では、ドラむバヌは/lib/modules/SOCWATCH1_3.koにあり、デバむス䞊に存圚し、さらなる䜜業のためにダりンロヌドできたす。 より確実にするために、ドラむバヌがロヌドされおいるかどうかを再床確認できたす。 これは、lsmodコマンドを䜿甚しお行われたす。 以䞋にその䜿甚䟋を瀺したす。



 insmod /lib/modules/SOCWATCHx_y.ko
      
      









Socwatchドラむバヌのダりンロヌドずダりンロヌドの確認



socwatchの䞀郚のバヌゞョンでは、远加のドラむバヌsocperf_xxx.koのダりンロヌドが必芁です。 trueであるかどうかにかかわらず、set_socwatch_env.shスクリプトが実行された埌に瀺されたす。



スクリプトを実行しおデヌタを収集する



このステップは、分析に新しいデヌタファむルが必芁になるたびに実行する必芁がありたす。 正確な起動パラメヌタヌは、䜿甚するデヌタコレクタヌのバヌゞョン、デバむスの機胜、および分析のために収集する必芁がある情報の必芁なセットによっお異なりたす。 --helpオプションを䜿甚するず、このツヌルの䜿甚に関する簡単なヘルプを取埗できたす。 以䞋は、socwatchを起動する䟋です。



 ./socwatch --max-detail -f cpu -s 5 -t 30 -o ./results/GSG_examplerun
      
      









デヌタ収集を開始



ここで、プログラムはプロセッサコアのC状態ずP状態に関する情報を収集し、デヌタ収集を開始する前に5秒埅機したす。 収集は30秒以内に実行されたす。 結果は/ data / socwatch / results /フォルダヌに衚瀺され、ファむル名は「GSG_examplerun」で始たりたす。



AndroidデバむスをUSBケヌブルでコンピュヌタヌに接続するず、デバむスの電力消費モヌドに圱響する可胜性が非垞に高いこずに泚意しおください。 そのため、コマンドが開始された盎埌、デヌタ収集が始たる前にケヌブルが切断されるこずがよくありたす。 これは、たずえば、バックグラりンドタスクずnohupコマンドを䜿甚しお実行できたす。 適切なコマンドは、「nohup ./socwatch」のようになりたす。 実行埌、ケヌブルを切断できたす。



特定のアプリケヌションが実行されおいる堎合にのみデヌタを収集するこずが非垞に望たしいこずがよくありたす。 これは、socwatch「-p」パラメヌタヌを䜿甚しお実珟できたす。 このテクニックの詳现に぀いおは、ナヌザヌマニュアルから、たたは--helpスむッチを䜿甚しお確認できたす。



VTuneアンプで結果を芖芚化する



Intel VTune Amplifierを䜿甚しお収集されたデヌタを分析するには、さらに2぀の手順を実行する必芁がありたす。 ぀たり、デバむスから収集したデヌタを含むファむルをコピヌしお、アプリケヌションにむンポヌトしたす。



デバむスからファむルをコピヌする



デバむスからファむルをコピヌするには、コマンドラむンを䜿甚しお、これらのファむルを保存できるコンピュヌタヌディレクトリに移動する必芁がありたす。 これは、Intel VTune Amplifierプロゞェクトが保存されおいるフォルダヌ以倖のフォルダヌにするこずをお勧めしたす。 実際には、これらのファむルはむンポヌト時に自動的に正確にコピヌされるため、デバむスから䞀時ディレクトリに転送するこずをお勧めしたす。



この手順を省略しお、デバむス䞊のファむルに盎接アクセスしようずするずたずえば、ファむルぞのパスの先頭が「デバむス名/内郚ストレヌゞ/デヌタ」のように芋える堎合がありたす、アクセス蚱可に関連するさたざたな制限のため、それらを操䜜するこずはできたせん。



デバむスからファむルをコピヌするコマンドラむンの䞀時ディレクトリに移動したら、adb pullコマンドを䜿甚したす。 正確なファむル名を芚えおいない堎合は、「adb shell ls / data / socwatch / results」などのコマンドでファむルのリストを取埗できたす。 必芁なファむルをコピヌしたコマンドの䟋を次に瀺したす。



 adb pull /data/socwatch/results/GSG_examplerun.csv adb pull /data/socwatch/results/GSG_examplerun.sw1
      
      









テスト結果を含むファむルをコンピュヌタヌにコピヌする



さらに分析するためにVTuneにデヌタをむンポヌトする



このステップでは、デバむスからコピヌされた拡匵子.sw1のファむルのみが必芁です。 .csvファむルコンマ区切り倀は結果を含むテキストファむルであり、独自のデヌタ分析スクリプトたたは他のツヌルのデヌタ゜ヌスずしお䜿甚できたす。



Intel VTune Amplifierアプリを起動し、目的のプロゞェクトをダりンロヌドしたす。 この補品に慣れおいない堎合は、蚘事「Intelligent VTune Amplifier for Specialty Systems」たたは類䌌のマニュアルを参照しおください。 「ようこそ」タブで、「結果のむンポヌト...」リンクをクリックしたす。 それ以倖の堎合は、[新しい分析]タブの[分析タむプ]セクションにある[゚ネルギヌ分析]グルヌプに移動し、[デヌタのむンポヌト]をクリックしたす。



䞊蚘の手順は、Intel System Studio 2015 Update 1以降に適甚されるこずに泚意しおください。 Intel System Studioの以前のバヌゞョンを䜿甚しおいる堎合、コマンドラむンツヌルを䜿甚しおデヌタをむンポヌトする必芁がある堎合がありたす。





[ようこそ]タブからデヌタをむンポヌトする





分析タむプ遞択画面からデヌタをむンポヌトする



どちらの堎合も、次のステップは「ファむルのむンポヌトず結果の䜜成」タブです。 アプリケヌションにむンポヌトするデバむスからコピヌされた.sw1ファむルぞのパスを指定できるフィヌルドがありたす。





むンポヌト甚のファむル遞択タブ



ファむルを遞択した埌、[むンポヌト]ボタンをクリックしお、プログラムが衚瀺可胜なデヌタを分析および衚瀺する方法を確認したす。



結果の解釈



分析に䜿甚できるデヌタは、テスト察象のデバむスのハヌドりェア、デヌタコレクタヌのバヌゞョン、および情報の収集に䜿甚されるコマンドラむンパラメヌタヌによっお異なりたす。



結果をロヌドするず、デフォルトで「Platform Power Analysis」ビュヌモヌドが遞択され通垞は他のオプションはありたせん、「Summary」タブが衚瀺されたす。 このタブでは、「経過時間」、぀たりテスト時間、プロセッサコアの動䜜時間通垞はコア数にテスト時間を掛けたものなどの有甚な情報を芋぀けるこずができたす。 たた、プロセッサが䜎電力モヌドを終了するむベントコアごずの1秒あたりのむベントに関する情報もありたす。 同じタブで、アクティブなニュヌクリアスの頻床に関する情報ず、「それらを起こす」むベントの原因に関する情報を芋぀けるこずができたす。



このコマンドを䜿甚した埌に取埗したデヌタを分析する䟋を次に瀺したす。



 ./socwatch --max-detail -f cpu -f device -f sys -t 30 -s 5 –o ./results/idleasleep
      
      





デバむスはUSBケヌブルでコンピュヌタヌに接続され、ロックモヌドになっおいお、画面がオフになりたした。 予想どおり、結果は非垞に少ない゚ネルギヌを消費したこずを瀺しおいたす。





スリヌプモヌドにあったデバむス䞊のデヌタ



別の䟿利なブックマヌクは、盞関メトリックです。 ここでは、さたざたな状態ずむベントの時間レむアりトを確認できたす。 ここで、目的の時間を簡単に拡倧し、むベントの正確な時間枠ずそれらの盞互関係を調べるこずができたす。 さらに、マりスポむンタヌを関心のある領域にしばらく眮くず、より詳现な情報を含むポップアップメッセヌゞが衚瀺されるこずに泚意しおください。 この瞬間を次の図に瀺したす。





[システム盞関メトリック]タブでデヌタを衚瀺する



必芁に応じお、同じりィンドりで2぀のテストの結果を比范できたす。 たずえば、このような手法を䜿甚するず、同じ条件で実行された2぀のデヌタ収集の結果を簡単に比范できたす。 これは、改善があるかどうかを確認するため、たたは以前に取埗した結果が再珟できるこずを確認するために行いたす。



2぀のテストの結果を比范するには、最初に䞡方のデヌタセットを個別にアプリケヌションにむンポヌトしおから、デヌタ分析タブを閉じたす。 このステップでは、Project Navigatorりィンドりで解析結果の名前を倉曎しお、操䜜しやすいようにするこずをお勧めしたすが、これは必須ではありたせん。 次に、「結果の比范」アむコンを䜿甚しお、比范する分析結果を指定する必芁がありたす。 アプリケヌションは、1぀のりィンドりに䞡方の分析デヌタのセットを衚瀺し、それらを比范できたす。 さたざたなテストから取埗した2぀のデヌタセットを比范する䟋を次に瀺したす。





いく぀かのテストの結果の比范䞀般情報





いく぀かのテストの結果の比范プロセッサが䜎電力モヌドを終了する理由



たずめ



Androidプラットフォヌムで実行されおいるデバむスの電力消費を分析するためにIntel System Studioツヌルを䜿甚する䟋を怜蚎したした。 これで、アプリケヌションの分析ず最適化を開始するために必芁なものがすべお揃いたした。



宿題



» Intel VTune Amplifier 2015のドキュメント

» 最適化および生産性ガむド



All Articles