Analisa Offline CPU-Bound dengan Intel Graphics Performance Analyzers (GPA) – Platform Analyzer


* Artikel ini adalah hasil kerja sama dengan Intel Developer Zone. Artikel asli bisa dilihat di link ini.

Bagi yang belum tahu, Intel Graphics Performance Analyzers (Intel GPA) Platform Analyzer memvisualisasikan profil eksekusi dari tugas-tugas yang ada dalam kodinganmu pada seluruh platform baik pada CPU maupun GPU. Ini akan membantumu memahami isu-isu berbasis tugas dalam game kamu sehingga membuat kamu dapat mengoptimalkan tugas komputasi dan rendering baik di CPU maupun GPU.

Intel GPA Platform Analyzer menggunakan trace data yang diambil ketika aplikasi dijalankan untuk menyajikan analisa detail tentang bagaimana kodinganmu dieksekusi di seluruh thread dan mengkorelasikan beban CPU dengan GPU.

Sebelumnya, sudah pernah dibahas tentang bagaimana cara membuat analisa menggunakan Intel GPA Frame Analyzer for DirectX. Di artikel ini kita akan melakukan walkthrough tentang bagaimana cara melakukan analisa offline CPU-Bound dari alur kerjanya.

Menganalisa sebuah tangkapan trace menggunakan Intel Graphics Performance Analyzers Platform Analyzer

Klik Analyze Application seperti yang ditunjukkan di bawah ini. Fitur ini membuatmu dapat melihat-lihat biner dari game-nya yang ingin kita analisa dan dijalankan. Monitor Intel GPA akan menginjeksi kodingan ke dalam game untuk mendapatkan data profil.

Analisa Offline CPU-Bound dengan Intel Graphics Performance Analyzers (GPA) - Platform Analyzer

Gambar 1. Menganalisa jendela aplikasi

Jika aplikasimu terikat dengan CPU, ambil sebuah trace sehingga kamu dapat membukanya di Intel GPA Platform Analyzer dan melakukan profilisasi untuk aplikasinya. Jika aplikasinya terikat dengan GPU ambil sebuah frame. Jika kamu menggunakan Intel GPA System Analyzer, klik tombol kamera untuk mengambil frame atau klik tombol perekam yang berwarna merah untuk mengambil trace. Jika kamu ingin menggunakan tombol pintas HUD bisa menekan Ctrl+Shift+C untuk frame dan Ctrl+Shift+T untuk mengambil trace.

Kita akan mengambil trace untuk dianalisa menggunakan Intel GPA Platform Analyzer seperti di bawah ini.

Analisa Offline CPU-Bound dengan Intel Graphics Performance Analyzers (GPA) - Platform Analyzer

Gambar 2. Intel GPA System Analyzer

Buka Intel GPA Platform Analyzer dan di bagian kiri akan ada daftar trace. Klik dua kali pada trace terbaru yang diambil. Ketika trace-nya terbuka, kamu akan melihat beberapa tampilan berbeda seperti di bawah ini.

Analisa Offline CPU-Bound dengan Intel Graphics Performance Analyzers (GPA) - Platform Analyzer

Gambar 3. Intel GPA Platform Analyzer: membuka trace

Setelah trace-nya dimuat, tampilan utama akan menampilkan timeline dari semua data yang berhubungan dengan waktu.

  • Di bagain bawah tampilha kamu dapat melihat semua metrik yang dikatifkan dan sedang mereka ketika mengambil trace.
  • Di bagian tengah layar kamu akan meliaht semua thread yang sedang berjalan ketika waktu pengambilan.
  • Di bagian atas kamu dapat melihat pembatas frame GPU dan tugas-tugas apa yang terjadi.

Mari fokus pada analisa offline CPU. Perhatikan bahwa durasi dari trace-nya adalah sekitar 5 detik. Ini dapat dimodifikasi di bagian profil dari pemantau grafik.

Mari perbesar untuk melihat bagian yang lebih kecil dari trace ini. Mengklik dan menyeret sebuah bagian (menggunakan tombol mouse sebelah kiri dan kemudian melepasnya)  akan memperbesar area tersebut. PErbesar hingga mendapatkan tiga frame dengan data seperti di bawah ini.

Analisa Offline CPU-Bound dengan Intel Graphics Performance Analyzers (GPA) - Platform Analyzer

Gambar 4. Memperbesar and memilih frame

Analisa Offline CPU-Bound dengan Intel Graphics Performance Analyzers (GPA) - Platform Analyzer

Gambar 5. Intel GPA Platform Analyzer

Sekarang setelah kita perbesar ke tiga frame tersebut, mari kita lihat masing-masing kolom.

Kolom frame

Pada kolom frame kamu dapat melihat frame timing GPU dan CPU individual. Perhatikan bahwa warnanya berkolerasi ke frame CPU dan GPU yang sama. Sebagai contoh, frame 112 CPU memiliki warna yang sama dengan frame 112 GPU.

Analisa Offline CPU-Bound dengan Intel Graphics Performance Analyzers (GPA) - Platform Analyzer

Gambar 6. Intel GPA Platform Analyzer: frame GPU

Analisa Offline CPU-Bound dengan Intel Graphics Performance Analyzers (GPA) - Platform Analyzer

Gambar 7. Intel GPA Platform Analyzer: frame CPU

Kita dapat melihat durasi individu dan juga mengkalkulasi perbedaan antara ketika frame CPU dimulai dan ketika frame GPU dimulai.

Kolom render and GPGPU

Semua yang berada di atas garis titik-titik dieksekusi pada GPU. Area yang diarsir merah seperti di bawah ini adalah present call. Kamu dapat melakukan pelacakan present call mulai dari di mana ia berasal hingga kapan ia dieksekusi.

Kamu akan melihat kapan present call dieksekusi dan kapan frame GPU selesai yang akan membantumu mengkalkulasi latency dari sebuah frame. Kamu dapat melihat present call yang dikirimkan ke CPU dan kapan ia diselesaikan oleh GPU.

You will see when a present call is executed and when the GPU frame is finished, which helps calculate the single frame latency. You can see when the present call is submitted by the CPU and when it is completed by the GPU.

Analisa Offline CPU-Bound dengan Intel Graphics Performance Analyzers (GPA) - Platform Analyzer

Gambar 8. Intel GPA Platform Analyzer: Kolom render and GPGPU

Jendela thread

Kamu dapat melihat thread mana yang berjalan, kapan sistem operasi diperlukan untuk mengalihkan konteks, dan kapan terjadi sinkronisasi. Sebagai tambahan, kamu dapat melihat hasil kerja GPU yang diperlihatkan di atas thread yang dapat membantu mengkorelasikan kapan GPU atau CPU-nya sedang sibuk, mengidentifikasi apakah beban kerjaan terakit ke CPU atau GPU. Kamu dapat melihat setiap panggilan DirectX API dan juga panggilan yang ditetapkan oleh pengguna jika tersedia.

Analisa Offline CPU-Bound dengan Intel Graphics Performance Analyzers (GPA) - Platform Analyzer

Gambar 9. Intel Platform Analyzer: Kolom thread

Metrik Platform

Metrik-metrik yang ditampilkan di sini adalah metrik yang kita set di profil HUD. Jika sebuah trace diambil menggunakan Intel GPA System Analyzer, metriknya adalah yang digunakan oleh Intel GPA System Analyzer pada waktu tersebut.

Analisa Offline CPU-Bound dengan Intel Graphics Performance Analyzers (GPA) - Platform Analyzer

Gambar 10. Intel GPA Platform Analyzer: Kolom metrik platform

Jendela Statistik

Jendela ini akan memperbarui dan mensinkronisasi dengan pilihan kamu. Tergantung dengan apa yang kamu pilih, jendela ini menampilkan penggunaan GPU, kernel OpenCL, atau pekerjaan seperti fungsi yang didefinisikan oleh pengguna atau panggilan DirectX.

Jendela ini juga dapat mengidentifikasi titik panas pada dearh tertentu dalam sebuah trace. Sebagai contoh, jika kamu menyoroti sebuah bagian, jendela statistik akan berubah seperti di bawah ini. Kamu dapat melihat waktu pekerjaan dari area yang diseleksi, waktu GPU, dan waktu antri GPU.

Analisa Offline CPU-Bound dengan Intel Graphics Performance Analyzers (GPA) - Platform Analyzer

Gambar 11. Intel GPA Platform Analyzer: Kolom statistik

Analisa Offline CPU-Bound dengan Intel Graphics Performance Analyzers (GPA) - Platform Analyzer

Gambar 12. Memilih sebuah area dan perubahan jendela statistik

Area legenda

Kamu dapat mematikan beberapa bagian untuk membuat antarmukanya terlihat lebih sederhana. Kamu dapat menghilangkan centang di beberapa boks centang untuk menghilangkan bagian yang tidak kamu inginkan,

Analisa Offline CPU-Bound dengan Intel Graphics Performance Analyzers (GPA) - Platform Analyzer

Gambar 13. Intel GPA Platform Analyzer: Jendela legenda

Analisa Offline CPU-Bound dengan Intel Graphics Performance Analyzers (GPA) - Platform Analyzer

Gambar 14. Intel GPA Platform Analyzer setelah dihapus centang Platform Metric dari jendela legenda

* Artikel ini adalah hasil kerja sama dengan Intel Developer Zone. Artikel asli bisa dilihat di link ini.