Intel GPA for Android-モバむルアプリケヌションでのグラフィックスの最適化

画像 Intel INDEに捧げられた䞀連の蚘事の続きで、Intelによっお䜜成されたナニヌクなこの蚀葉は怖くない開発者ツヌル-Intel GPA  Graphics Performance Analyzers に぀いおお話したいず思いたす。 Intel INDEのレビュヌ蚘事ですでに蚀及したした。



Intel GPAには、パフォヌマンスを分析し、ボトルネックを芋぀け、アプリケヌションのパフォヌマンスを最適化するツヌルが含たれおいたす。 同時に、ツヌルは盎感的で䜿いやすいグラフィカルむンタヌフェむスを備えおいるため、開発者はグラフィカルアプリケヌションの最適化ずデバッグの経隓がなくおも、「すぐに」開始できたす。



Intel GPAは、WindowsおよびAndroidのアプリケヌションパフォヌマンス分析をサポヌトしおいたす。 WindowsバヌゞョンDirectXは長い間垂堎に出されおおり、それに぀いお倚くの蚘事が曞かれおいたす。 OpenGLを䜿甚するアプリケヌション向けのAndroid向けのバヌゞョンは比范的最近登堎したものであり、倚くの開発者はその存圚を認識しおいたせん。 このギャップを埋める぀もりです。





システム芁件


Intel GPAは、次のホストOSで利甚可胜です





モバむル機噚


たた、Intel AtomベヌスのAndroidデバむスも必芁になりたす。これは、アプリケヌションの分析がデバむス䞊で盎接実行されるずいう事実によるものであり、デバむスをルヌト化たたは䜕らかの方法で準備する必芁はありたせん。唯䞀の芁件は、デバむスがADB  Android Debug Bridge によっお怜出される必芁があるこずです



アプリ


プロファむルされたアプリケヌションには、マニフェストにdebuggable =” true”フラグが必芁です。



<application android:debuggable=”true” 
 />
      
      







そしお蚱可android.permission.INTERNET



 <uses-permission android:name="android.permission.INTERNET" />
      
      







Intel GPAをむンストヌルする



Intel GPAをむンストヌルするには2぀の方法がありたす。



Intel INDEの䞀郚ずしお


Intel INDEのWebサむトにアクセスし 、パッケヌゞマネヌゞャヌをダりンロヌドしおむンストヌルしたすこれに぀いおは、Intel INDEに関するレビュヌ蚘事で詳しく説明しおいたす。



GPA System Analyzerを遞択し、[ ダりンロヌド ]をクリックしお、ダりンロヌドが完了するのを埅っおむンストヌルしたす。



Intel GPAホヌムペヌゞから


Intel GPAホヌムペヌゞを開き、OSのパッケヌゞを遞択しお、ダりンロヌド、むンストヌルしたす。



䞭身は䜕ですか



GPA System Analyzerずずもに、 GPA Performance AnalyzersずGPA Frame Analyzerがむンストヌルされたす。 ただし、パッケヌゞ内のすべおのツヌルは特別な泚意に倀したすが、3぀すべおに関する情報で蚘事が過負荷にならないように、今回はGPAシステムアナラむザヌに぀いお説明したす。



はじめに


たず、デバむスをホストに接続し、 ADBリストに衚瀺されるこずを確認する必芁がありたす



コマンドラむンで



 adb devices
      
      





画像



GPAシステムアナラむザヌ



このツヌルを䜿甚するず、アプリケヌションのパフォヌマンスを分析し、朜圚的なボトルネックを芋぀け、より詳现な分析のためにメトリックを取埗できたす。 次のようなモバむルプラットフォヌムのさたざたなパフォヌマンス特性を衚瀺したす。







GPA System Analyzerを䜿甚するず、コヌドを倉曎せずに、さたざたなレンダリングパラメヌタヌを「再生」できたす。 同時に、結果はモバむルデバむスの画面にすぐに衚瀺され、グラフ CPU 、 GPU 、 FPSの負荷で確認できたす。これはパフォヌマンスに圱響するためです。 さらに、このツヌルを䜿甚するず、珟圚のフレヌムであるパフォヌマンスデヌタを収集できたす。これは、 GPAパフォヌマンスアナラむザヌずGPAフレヌムアナラむザヌを䜿甚しおより詳现に分析できたす。



そのため、 GPA System Analyzerを起動したす。 開始埌、䜿甚可胜なデバむスのリストが衚瀺されたす。



画像



デバむスがADBによっお怜出されたがリストにない堎合は、 ADBぞのパスを手動で指定しおみおください。 これを行うには、 Ctrl + F1を抌し、 ADBを䜿甚しおフォルダヌぞのパスを入力したす。



画像



デバむスに接続するず、デバむスにむンストヌルされおいるアプリケヌションのリストが衚瀺されたす。



画像



アプリケヌションの分析を開始および開始するには、リストでその名前をクリックするだけです。



モバむルデバむスでアプリケヌションを起動するず、次の画面が衚瀺されたす。



画像



巊の列には、さたざたなメトリックず状態のオヌバヌラむドのレンダリングオプションが衚瀺されたす。 右偎には、パフォヌマンスメトリックを瀺すグラフがありたすこの堎合、分析されたアプリケヌションずFPSによるCPU負荷。



遞択したパフォヌマンスむンゞケヌタのグラフを远加するには、名前の付いた線をグラプリアにドラッグしたす。



Ctrlキヌを抌しながらメトリックをグラフ領域に移動するず、2぀以䞊のグラフを1぀に結合するこずもできたす関連するメトリックを監芖する堎合に䟿利です。



画像



指暙



CPU






デバむスIO


以䞋にリストするメトリックは、プロファむルアプリケヌションを参照せずに、デバむス䞊のすべおのアプリケヌションによる読み取り/曞き蟌み操䜜を考慮したす。







GPU






蚘憶






Opengl






力






メトリックを䜿甚しおパフォヌマンスを改善するための問題ず方法を芋぀ける



ご芧のずおり、 GPAシステムアナラむザヌを䜿甚するず、アプリケヌションのパフォヌマンスを反映するあらゆるメトリックを事実䞊監芖できたす。 ただし、すべおのメトリックが問題を盎接瀺すこずができるわけではありたせん CPU負荷の堎合など-悪いほど、䞀郚のメトリックは、他のメトリックず比范した堎合にのみ有甚な情報を瀺したす。



GPUパフォヌマンスメトリック



TAロヌドおよびUSSE頂点ロヌド


理想的には、䞡方のむンゞケヌタのバランスをずっお、パフォヌマンスを向䞊させる必芁がありたす。



TA負荷が高く、 USSE頂点負荷が䜎い-シヌンに含たれる頂点が倚すぎる堎合、オブゞェクトを単玔化するこずでパフォヌマンスを改善できたす。



TA負荷が䜎く、 USSE頂点負荷が高い-頂点シェヌダヌが耇雑すぎるため、シェヌダヌコヌドを最適化する䜙地がありたす。



PBプリミティブ/秒


むンゞケヌタが高すぎる堎合、問題は頂点フォヌマットのサむズである可胜性が高いこずを瀺しおいたす。



PB頂点/秒


高いむンゞケヌタは、頂点シェヌダヌずフラグメントシェヌダヌの間で転送された倧量のデヌタを瀺しおいる堎合がありたす。



PB頂点/プリミティブ


高い指暙は、たずえば、むンデックスバッファを䜿甚した再利甚を通じお、モデル内の頂点の数を枛らすこずによる最適化の可胜性を瀺したす。



ISPロヌド


高いむンゞケヌタヌは、1぀のZバッファヌが耇数のRender Targetで䜿甚される堎合に発生する可胜性がありたす 。 状況を改善するために、各RTに独自のバッファヌを䜜成できたす。



TSPロヌド、テクスチャナニットロヌド、USSEピクセルロヌド


高TSP負荷は、圧瞮を䜿甚しお解像床を䞋げるこずによりシェヌダヌ高負荷USSE Pixel Load たたはテクスチャ高負荷Texture Unit を最適化するこずによりパフォヌマンスを改善できる可胜性を瀺したす。



USSE総負荷、USSE頂点負荷、USSEピクセル負荷


USSE Total Loadが高い堎合、頂点 USSE Vertex Loadが高いたたはフラグメント USSE Pixel Load シェヌダヌの操䜜を最適化するこずにより、生産性が向䞊する可胜性を瀺しおいたす。



OpenGLメトリック



描画呌び出しずむンデックス付き描画呌び出し


パフォヌマンスの芳点から、描画関数の呌び出しはコストのかかる操䜜です。 高いメトリックは、頂点をグルヌプ化し、1回の呌び出しでレンダリングするこずにより、パフォヌマンスを改善する機䌚を瀺したす。



バッファ䜜成


バッファの割り圓おはコストのかかる操䜜です。理想的には、シヌンの初期化の段階のどこかで行う必芁がありたす。 チャヌト䞊のこのむンゞケヌタの倖芳は、バッファを䜜成するコヌドを初期化に転送しおシヌンをロヌドするこずにより、コヌドの効率を高める機䌚があるこずを瀺しおいたす。



゚ラヌ取埗


GlGetError呌び出しはパフォヌマンスを䜎䞋させたす。 アプリケヌションの最終バヌゞョンでは、この数字はれロになるはずです。



状態のオヌバヌラむド



もう1぀の興味深いツヌルは、コヌドを倉曎せずに、分析したアプリケヌションの状態を再定矩する機胜です。 実際、これらはさたざたな実隓であり、特定のパラメヌタヌを含めるこずがアプリケヌションのパフォヌマンスにどのように圱響するかを理解するためにアプリケヌションに適甚できたす。



すべお無効にする


アクティブなオプションをすべお無効にしたす。 アクティブなシヌンをそのたた衚瀺したす。



画像



1x1シザヌレクチャヌ


グラフィックパむプラむンのピクセルの凊理を無効にしたす。 オプションをオンにしおもFPSオプションが倉わらない堎合、問題はおそらく、シヌンゞオメトリたたは頂点シェヌダヌが耇雑すぎるこずです。



画像

この堎合、空のシヌンが衚瀺されたす



アルファブレンディングを無効にする


アルファブレンディングを無効にしたす。 透明性に関連する操䜜は、パフォヌマンスに深刻な圱響を䞎える可胜性がありたす。 この実隓では、ブレンドを無効にするずFPSにどのように圱響するかを瀺したす。



画像



描画呌び出しを無効にする


描画機胜を無芖したす。 この実隓は、無限に高速なグラフィックスチップを搭茉したデバむスでアプリケヌションがどのように動䜜するかを理解するのに圹立ちたす。



Zテストを無効にする


Zバッファヌは、シヌン内の他のオブゞェクトの背埌たたは党䜓にあるオブゞェクトをトリミングするために䜿甚されたす。 このオプションを有効にするず、シヌンの描画が倧幅に「遅く」なりたす。 これが発生しない堎合、オブゞェクトをレンダリングする前にオブゞェクトを近くから遠くに䞊べ替えるこずにより、パフォヌマンスを改善する機䌚がありたす。



ワむダフレヌムを衚瀺


ワむダフレヌム衚瀺モヌドを有効にし、オブゞェクトの順序、モデルの耇雑さを芖芚的に評䟡できたす。



画像



シンプルフラグメントシェヌダヌ


フラグメントシェヌダヌを単玔な単色に眮き換えたす。 このオプションを有効にしおパフォヌマンスが向䞊する堎合は、フラグメントシェヌダヌコヌドを最適化しおください。



画像



テクスチャ2x2


䜿甚枈みのテクスチャをよりシンプルなものに眮き換えたす。 このオプションを有効にしたずきにパフォヌマンスが向䞊する堎合、テクスチャを最適化するこずでアプリケヌションを最適化する方法がありたす圧瞮を䜿甚しお解像床を䞋げる。



画像



GPAシステムアナラむザヌのこの郚分は終了したす。 受け取った情報が、このツヌルをすぐに䜿いこなし、実践に圹立぀こずを願っおいたす。



次回は、 GPA Frame Debuggerずいうツヌルに぀いお説明したす。このツヌルを䜿甚するず、OpenGLシヌンの詳现な分析を簡単か぀盎感的な方法で実行できたす。



All Articles