Pembuatan profil terkelola dengan XProf
Anda dapat menggunakan pembuatan profil XProf terkelola saat menggunakan pemantauan workload ML Diagnostics, CLI ML Diagnostics, atau SDK ML Diagnostics. XProf terkelola adalah instance XProf dengan backend skalabel yang disediakan dan dikelola oleh platform ML Diagnostics di projectGoogle Cloud Anda, sedangkan XProf yang dihosting sendiri mengharuskan Anda men-deploy dan mengelola instance XProf Anda sendiri secara manual untuk melihat profil Anda.
XProf adalah alat pembuatan profil dan analisis performa open source untuk workload machine learning (ML) dan merupakan bagian dari ekosistem OpenXLA. Dibandingkan dengan XProf yang dihosting sendiri, XProf terkelola menyediakan fitur berikut:
- Tanpa penyiapan: Tidak memerlukan penginstalan atau konfigurasi manual server visualisasi XProf atau dependensinya.
- Akses sesi profil multi-run terpusat: Memuat sesi profil di berbagai operasi ML dengan satu instance XProf terkelola per project.
- Penskalaan otomatis dan pemuatan cepat: Mempercepat pemuatan profil besar dan menskalakan resource backend secara otomatis saat beberapa pengguna melihat profil secara bersamaan.
- Kolaborasi dan keamanan bawaan: Membuat link yang dapat dibagikan untuk sesi profil sekaligus melindungi instance pembuatan profil dari kerentanan keamanan.
- Beberapa mode pengambilan profil: Mendukung pengambilan multi-host, pembuatan profil on-demand, pembuatan profil berkelanjutan dalam mode snapshot, dan pengambilan profil otomatis dari pemantauan workload.
- Tanpa biaya infrastruktur tambahan: Menyediakan resource komputasi XProf terkelola tanpa biaya tambahan, tidak seperti menghosting sendiri instance XProf.
Jalur deployment
Anda dapat men-deploy dan mengaktifkan XProf terkelola menggunakan ML Diagnostics SDK, pemantauan workload, atau ML Diagnostics CLI.
Platform ML Diagnostics men-deploy satu instance XProf terkelola dengan backend yang skalabel per project. Anda dapat menggunakan instance ini untuk melihat semua sesi profil yang diambil di semua operasi ML dalam project. Pengambilan profil juga memerlukan bucket Cloud Storage yang terkait dengan ML run untuk menyimpan data profil yang diambil.
Anda dapat mengaktifkan XProf terkelola dan mengaitkan bucket Cloud Storage dengan operasi ML Anda dengan salah satu cara berikut:
- ML Diagnostics SDK: Saat Anda men-deploy
operasi ML pertama menggunakan SDK, platform ML Diagnostics akan otomatis
mengaktifkan dan men-deploy instance XProf terkelola di project Anda. Anda menentukan bucket Cloud Storage untuk menyimpan profil dengan menetapkan parameter
gcs_pathsaat menentukan operasi ML di SDK. - Pemantauan workload: Pemantauan workload tidak mengaktifkan XProf terkelola secara default. Sebagai gantinya, saat pertama kali pengambilan profil otomatis memicu sesi profil di project Anda, platform ML Diagnostics akan otomatis menyediakan dan mengaktifkan instance XProf terkelola. Secara default, ML Diagnostics juga menyediakan bucket Cloud Storage regional di project Anda.
- ML Diagnostics CLI: Anda dapat memperbarui ML run apa pun untuk mengaktifkan alat XProf, yang men-deploy instance XProf terkelola di project Anda, dan mengaitkan bucket Cloud Storage dengan ML run.
Mengambil profil
ML Diagnostics mendukung empat metode untuk mengambil profil XProf: pengambilan terprogram, pembuatan profil on-demand, pembuatan profil berkelanjutan dalam mode snapshot, dan pengambilan profil otomatis dari pemantauan workload. Metode ini berbeda dalam cara pemicuan pengambilan dan rentang waktu yang dicatat.
Tabel berikut membandingkan metode pengambilan profil:
| Metode pengambilan | Deskripsi | Framework yang didukung |
|---|---|---|
| Pengambilan terprogram |
Menyematkan perintah pembuatan profil langsung dalam kode workload Anda untuk memulai dan menghentikan perekaman data profil pada langkah atau fungsi pelatihan tertentu. Gunakan metode ini jika Anda menginginkan profil yang dapat direproduksi dari langkah-langkah pelatihan yang diketahui atau bagian kode tertentu. |
JAX, vLLM, Tunix, TorchTPU |
| Pembuatan profil sesuai permintaan |
Memicu pengambilan profil langsung dari konsol Google Cloud atau gcloud CLI selama durasi yang Anda tentukan saat workload sedang berjalan. Gunakan metode ini jika Anda ingin memeriksa workload yang sedang berjalan secara real time tanpa mengubah rentang langkah atau memulai ulang workload. |
JAX, vLLM, Tunix, TorchTPU |
| Pembuatan profil berkelanjutan dalam mode snapshot (Pratinjau) |
Merekam profil trace perangkat sebesar 2 GB secara terus-menerus dalam buffer melingkar di host TPU Anda dan menyimpan buffer 2 GB terbaru ke bucket Cloud Storage Anda saat Anda memicu snapshot. Gunakan metode ini saat Anda perlu memeriksa aktivitas workload yang menyebabkan perlambatan atau anomali yang terjadi sesekali. |
JAX, vLLM, Tunix |
| Pengambilan profil otomatis dari pemantauan workload (Pratinjau) |
Secara otomatis memicu pengambilan profil XProf saat penganalisis penurunan performa pemantauan workload melaporkan status Gunakan metode ini jika Anda ingin ML Diagnostics mengambil data rekaman aktivitas saat performa menurun tanpa menunggu Anda memicu pengambilan secara manual. |
JAX, vLLM, Tunix, TorchTPU |
Pengambilan terprogram
Dengan pengambilan terprogram, Anda menyematkan perintah pembuatan profil langsung dalam kode workload untuk menentukan secara eksplisit kapan harus memulai dan berhenti merekam data profil. Setiap profil yang ditulis ke bucket Cloud Storage yang ditentukan oleh parameter gcs_path untuk ML run Anda akan otomatis muncul sebagai sesi profil di instance XProf terkelola project Anda, yang dapat Anda lihat di konsolGoogle Cloud atau menggunakan Google Cloud CLI.
Anda dapat mengonfigurasi pengambilan terprogram dengan salah satu cara berikut:
- ML Diagnostics SDK:
Gunakan metode
profdi SDK. Metode ini menggabungkan API pembuatan profil tingkat framework yang mendasarinya, sehingga kode pembuatan profil Anda tetap konsisten di JAX, vLLM, Tunix, dan TorchTPU. - API pembuatan profil native framework: Panggil metode pembuatan profil bawaan framework ML Anda secara langsung dan simpan output ke bucket Cloud Storage operasi ML Anda:
Pembuatan profil on-demand
Pembuatan profil on-demand memungkinkan Anda memicu pengambilan profil secara real time saat workload berjalan. Memicu pengambilan on-demand akan merekam profil selama durasi yang Anda tentukan. Anda dapat mengaktifkan pembuatan profil on-demand secara langsung di kode workload atau menggunakan ML Diagnostics SDK.
Prasyarat
Sebelum mengambil profil on-demand, selesaikan langkah-langkah penyiapan berikut:
Mulai server XProf di port
9999dalam workload Anda agar merespons pemicu pengambilan on-demand:Langsung di JAX: Panggil metode
profiler.start_serverdi port9999:profiler.start_server(port=9999)ML Diagnostics SDK: Tetapkan
on_demand_xprof=Truedimachinelearning_runsaat Anda menentukan operasi ML.
Konfigurasikan orchestrator cluster atau lingkungan komputasi Anda:
- Google Kubernetes Engine (GKE) atau Kubernetes yang dikelola sendiri: Deploy operator dan webhook atau DaemonSet Diagnostik ML.
- Slurm yang dikelola Cluster Director atau Slurm yang dikelola sendiri: Deploy daemon ML Diagnostics menggunakan skrip prolog Slurm.
- Compute Engine: Deploy daemon ML Diagnostics menggunakan skrip startup instance.
Merekam profil on-demand
Anda dapat memicu pengambilan profil on-demand dari Google Cloud console atau gcloud CLI. Saat memicu pengambilan, tentukan parameter berikut:
- Duration: Durasi perekaman, dalam milidetik atau detik. Durasi maksimum yang dapat Anda rekam bergantung pada karakteristik workload dan jumlah data yang sesuai dengan batas profil 2 GB.
- Targets: Node target tempat Anda ingin mengambil profil:
- Google Cloud console: Semua node yang menjalankan workload akan diisi secara otomatis, dan Anda dapat memilih semua atau sebagian node.
- gcloud CLI: Buat daftar target profiler untuk workload, lalu picu pengambilan untuk semua atau sebagian target tersebut.
- Tingkat pelacak perangkat, host, dan Python: Tingkat detail yang akan diambil untuk trace perangkat, host, dan Python.
Pembuatan profil berkelanjutan dalam mode snapshot
Jika pembuatan profil berkelanjutan diaktifkan, platform ML Diagnostics akan terus merekam profil 2 GB dalam buffering sirkular di host TPU Anda. Saat Anda memicu snapshot, ML Diagnostics akan menyimpan profil 2 GB terbaru dari buffer sebagai sesi profil di bucket Cloud Storage Anda. Snapshot ini memungkinkan Anda memeriksa aktivitas workload yang mengarah ke masalah. Pembuatan profil berkelanjutan hanya mendukung pelacakan perangkat; pembuatan profil ini tidak mengumpulkan trace host atau Python.
Prasyarat
Sebelum memulai pembuatan profil berkelanjutan, pastikan lingkungan Anda memenuhi persyaratan berikut:
- Versi library yang didukung:
libtpuversi0.0.43atau yang lebih baru.jaxversi0.11.0atau yang lebih baru.
- Penyiapan lingkungan komputasi atau orchestrator cluster:
- GKE atau Kubernetes yang dikelola sendiri: Deploy DaemonSet ML Diagnostics.
- Slurm yang dikelola Cluster Director atau Slurm yang dikelola sendiri: Deploy daemon ML Diagnostics menggunakan skrip prolog Slurm.
- Compute Engine: Deploy daemon ML Diagnostics menggunakan skrip startup instance.
Mulai server XProf dalam kode workload Anda dengan memanggil
profiler.start_server(port=9999), atau tetapkan on_demand_xprof=True di
machinelearning_run saat menggunakan ML Diagnostics
SDK.
Memulai pembuatan profil berkelanjutan
Anda dapat memulai pembuatan profil berkelanjutan langsung di kode workload, menggunakan gcloud CLI, atau di konsol Google Cloud . Setelah dimulai, continuous profiling akan mencatat profil 2 GB dalam buffering sirkular pada host TPU yang ditentukan.
Saat Anda memulai pembuatan profil berkelanjutan menggunakan gcloud CLI atau konsolGoogle Cloud , tentukan parameter berikut:
- Targets: Node target yang akan diprofilkan secara berkelanjutan:
- Google Cloud console: Semua node yang menjalankan workload akan diisi secara otomatis, dan Anda dapat memilih semua atau sebagian node.
- gcloud CLI: Buat daftar target profiler untuk workload, lalu mulai pembuatan profil berkelanjutan untuk semua atau sebagian target tersebut.
- Device tracer level: Tingkat pelacakan perangkat yang akan diambil secara terus-menerus. Pelacakan host dan Python dinonaktifkan selama pembuatan profil berkelanjutan.
Anda dapat memulai pembuatan profil berkelanjutan langsung dari kode workload Python, di gcloud CLI, atau di konsol Google Cloud .
Kode workload Python
Untuk memulai pembuatan profil berkelanjutan langsung dari kode workload Python, panggil fungsi start_continuous_profiling:
from xprof.api import continuous_profiling_snapshot
continuous_profiling_snapshot.start_continuous_profiling('localhost:9999', {})
Untuk mengetahui informasi selengkapnya, lihat Pembuatan profil JAX XProf.
gcloud CLI
Untuk memulai pembuatan profil berkelanjutan dari gcloud CLI, cantumkan target profiler yang aktif dan mulai pembuatan profil berkelanjutan di seluruh node tersebut menggunakan perintah berikut:
PROJECT_ID="PROJECT_ID"
LOCATION="LOCATION"
RUN_ID="RUN_ID"
# 1. Discover active ProfilerTarget IDs on the ML run:
TARGETS=$(gcloud alpha mldiagnostics profiler-target list \
--machine-learning-run="${RUN_ID}" \
--location="${LOCATION}" \
--project="${PROJECT_ID}" \
--format="csv[no-heading](name.basename())" | paste -sd, -)
# 2. Start continuous profiling across the target nodes:
gcloud alpha mldiagnostics machine-learning-run start-continuous-profiling \
--machine-learning-run="${RUN_ID}" \
--location="${LOCATION}" \
--project="${PROJECT_ID}" \
--targets="${TARGETS}" \
--device-tracer-level=enabled
Ganti kode berikut:
PROJECT_ID: Project ID Google Cloud Anda.LOCATION: region tempat ML run Anda berada.RUN_ID: ID operasi ML Anda.
KonsolGoogle Cloud
Untuk memulai pembuatan profil berkelanjutan di konsol Google Cloud , selesaikan langkah-langkah berikut:
- Di konsol Google Cloud , buka Cluster Director atau GKE > AI/ML > Run Diagnostics, lalu pilih ML run Anda.
- Buka tab Profiles.
- Di panel tindakan atas, klik Start continuous profiling.
- Pilih node yang akan diprofilkan dan level pelacak perangkat, lalu klik Start.
Setelah pembuatan profil berkelanjutan dimulai, banner Capturing continuous profiles akan
menampilkan waktu mulai sesi sebagai Since START_TIME,
dan panel tindakan akan menampilkan Take snapshot dan Stop continuous profiling.
Mengambil snapshot
Saat pembuatan profil berkelanjutan berjalan, Anda dapat mengambil snapshot untuk menyimpan profil 2 GB terbaru dari buffering sirkular sebagai sesi profil di bucket Cloud Storage Anda. Anda dapat mengambil snapshot menggunakan gcloud CLI atau di konsol Google Cloud .
Saat Anda mengambil snapshot pembuatan profil berkelanjutan, tentukan parameter berikut:
- Targets: Semua atau sebagian node target tempat pembuatan profil berkelanjutan
berjalan:
- Google Cloud console: Semua node yang dikonfigurasi untuk pembuatan profil berkelanjutan akan diisi secara otomatis, dan Anda dapat memilih semua atau sebagian node.
- gcloud CLI: Tentukan semua atau sebagian target profiler tempat pembuatan profil berkelanjutan berjalan.
- Nama sesi profiler: Nama untuk sesi snapshot yang diambil.
Anda dapat mengambil snapshot menggunakan gcloud CLI atau di konsolGoogle Cloud .
gcloud CLI
Untuk mengambil snapshot pembuatan profil berkelanjutan menggunakan gcloud CLI, jalankan perintah berikut:
PROJECT_ID="PROJECT_ID"
LOCATION="LOCATION"
RUN_ID="RUN_ID"
gcloud alpha mldiagnostics profiler-session capture "SNAPSHOT_NAME" \
--machine-learning-run="${RUN_ID}" \
--location="${LOCATION}" \
--project="${PROJECT_ID}" \
--targets="TARGET_NODES" \
--kind=snapshot
Ganti kode berikut:
PROJECT_ID: Project ID Google Cloud Anda.LOCATION: region tempat ML run Anda berada.RUN_ID: ID operasi ML Anda.SNAPSHOT_NAME: nama untuk sesi profil yang diambil.TARGET_NODES: daftar node target yang dipisahkan koma untuk direkam.
KonsolGoogle Cloud
Untuk mengambil snapshot pembuatan profil berkelanjutan di konsol Google Cloud , selesaikan langkah-langkah berikut:
- Di konsol Google Cloud , buka Cluster Director atau GKE > AI/ML > Run Diagnostics, pilih ML run Anda, dan buka tab Profiles.
- Di panel tindakan atas, klik Take snapshot.
- Di panel Capture continuous profiling snapshot, masukkan nama profil, pilih node target, lalu klik Submit.
Snapshot akan muncul di tabel Profiles. Jika link tidak langsung muncul, klik Refresh.
Pengambilan profil otomatis dari pemantauan workload
Dengan pengambilan profil otomatis dari pemantauan workload, ML Diagnostics
otomatis mengambil profil XProf saat penganalisis penurunan performa
melaporkan status "bad", daripada menunggu Anda memicu pengambilan
sesuai permintaan secara manual setelah terjadi masalah. Anda dapat mengonfigurasi pengambilan profil otomatis untuk memicu pengambilan on-demand atau, jika pembuatan profil berkelanjutan diaktifkan, snapshot pembuatan profil berkelanjutan. Proses ini memungkinkan Anda mendiagnosis
akar masalah menggunakan profil yang diambil pada saat peristiwa terjadi.
Untuk petunjuk penyiapan dan prasyarat, lihat Pengambilan profil otomatis dalam dokumentasi pemantauan workload.
Analisis profil AI agentic
Analisis profil AI agentic otomatis menganalisis profil performa XProf yang diambil untuk workload TPU dan membuat laporan analisis HTML dari data pelacakan XProf mentah. Dengan menggunakan model Gemini di Vertex AI, agen analisis menjalankan alat pembuatan profil XProf, meringkas bottleneck performa, dan merekomendasikan perubahan kode atau konfigurasi. Setelah API yang diperlukan diaktifkan, ML Diagnostics akan membuat laporan analisis profil AI agentic untuk setiap profil yang diambil di platform.
Analisis profil AI agentic menggunakan alat dan kemampuan dasar yang sama dengan
repositori keterampilan XProf
open source.
Daripada menggunakan file skill secara langsung atau menginstal CLI XProf yang diperlukan
oleh skill open source, ML Diagnostics mengimpor implementasi alat XProf
yang mendasarinya sehingga agen dapat memanggilnya secara langsung. Hasilnya, output analisis di Diagnostik ML setara dengan menjalankan keterampilan XProf open source dengan XProf CLI pada file xplane lokal.
Prasyarat
Sebelum menggunakan analisis profil AI agentic, selesaikan langkah-langkah penyiapan berikut di project Google Cloud Anda.
Aktifkan API yang diperlukan
Aktifkan Vertex AI API (aiplatform.googleapis.com) agar agen analisis dapat menjalankan model Gemini dalam project Anda:
- Google Cloud console: Di API Library, aktifkan Vertex AI API.
gcloud CLI: Jalankan perintah berikut:
gcloud services enable aiplatform.googleapis.com
Memberikan peran IAM
Berikan salah satu peran Identity and Access Management (IAM) berikut ke akun pengguna Anda:
- Cluster Director Viewer (
roles/hypercomputecluster.viewer): Memberikan akses hanya baca ke resource Cluster Director dan ML Diagnostics, termasuk laporan analisis yang dihasilkan di konsol Google Cloud di bagian Run Diagnostics > Profiles. - Peran khusus (
hypercomputecluster.locations.analysis): Memberikan izin untuk melihat laporan analisis yang dihasilkan di konsol Google Cloud di bagian Run Diagnostics > Profiles saat ditambahkan ke peran khusus.
Cara kerjanya
Saat pengambilan profil terprogram, on-demand, berkelanjutan, atau otomatis selesai, tugas latar belakang yang terisolasi akan menjalankan alur kerja analisis berikut pada profil XProf:
- Pengumpulan data yang luas: Menjalankan 15 alat XProf secara paralel untuk mengumpulkan snapshot kondisi yang mencakup waktu langkah, pemanfaatan hardware, penggunaan memori, batas roofline, operasi paling lambat, dan inefisiensi compiler. Langkah ini menormalisasi pengaturan waktu per langkah pelatihan dan memisahkan operasi yang sehat dari bottleneck.
- Investigasi AI terfokus: Meninjau ringkasan kondisi yang dikumpulkan. Jika
workload memiliki pemakaian komputasi yang tinggi, overhead komunikasi dan tidak ada aktivitas yang rendah,
serta risiko kehabisan memori yang rendah, agen akan melewati panggilan alat tambahan dan
membuat laporan
OPTIMAL. Jika bottleneck terdeteksi, agen akan membentuk hipotesis dan menjalankan hingga empat pemeriksaan lanjutan yang ditargetkan menggunakan alat XProf tambahan untuk memeriksa operasi di sekitarnya dalam grafik komputasi, penundaan linimasa di seluruh host, dan kernel kustom. - Pembuatan laporan: Menggabungkan metrik dari XProf dengan analisis akar masalah dan perbaikan yang direkomendasikan agen AI. Laporan
summary.htmlyang dihasilkan disimpan ke bucket Cloud Storage Anda dan ditampilkan di konsolGoogle Cloud di bagian Run Diagnostics > Profiles.
Alur kerja ini menjaga data dan analisis profil Anda tetap pribadi dalam project Anda. Trace profiler mentah dan laporan HTML yang dihasilkan disimpan di bucket Cloud Storage Anda, dan semua panggilan model AI dijalankan melalui Vertex AI di project Google Cloud Anda.
Alat XProf
Tabel berikut menjelaskan alat XProf yang dijalankan agen selama analisis:
| Kategori | Alat XProf | Deskripsi |
|---|---|---|
| Ringkasan workload dan pengaturan waktu langkah |
get_xprof_overview,
get_step_trace,
get_kpi_metrics,
get_device_information,
get_hosts,
get_utilization_viewer,
get_smart_suggestions
|
Alat ini berjalan selama pengumpulan data yang luas, dan alat
|
| Roofline dan operasi paling lambat |
get_roofline_model,
get_hlo_op_profile
|
Alat ini berjalan selama pengumpulan data yang luas dan investigasi AI yang terfokus untuk memeriksa hal berikut:
|
| Pendeteksi inefisiensi compiler |
detect_layout_mismatch_copies,
detect_unfused_reshapes,
detect_unnecessary_convert_reduce,
list_hlo_modules
|
Alat ini berjalan selama pengumpulan data yang luas untuk memeriksa hal berikut:
|
| Risiko memori dan OOM |
get_memory_profile,
get_peak_allocations
|
Alat ini berjalan selama pengumpulan data yang luas untuk memeriksa hal berikut:
|
| Penjelajah grafik komputasi | get_hlo_neighborhood |
Alat ini berjalan selama investigasi AI yang terfokus untuk memeriksa operasi segera sebelum dan setelah operasi lambat dalam grafik XLA dan mengidentifikasi hal yang memblokir penggabungan compiler atau memaksa pemindahan data. |
| Linimasa dan pengaturan waktu kernel |
aggregate_xplane_events,
get_kernel_stats
|
Alat ini berjalan selama investigasi AI terfokus untuk memeriksa hal berikut:
|
| Profiler kernel kustom |
llo_load,
llo_query
|
Alat ini berjalan selama investigasi AI yang terfokus untuk memeriksa trace eksekusi tingkat rendah untuk kernel kustom, seperti Pallas atau Mosaic, yang tampak buram bagi pembuatan profil tingkat tinggi standar. |
Laporan analisis profil AI
Setelah analisis selesai untuk profil yang diambil, ML Diagnostics akan menyimpan
laporan summary.html yang dihasilkan ke bucket Cloud Storage Anda dan menampilkannya
di konsol Google Cloud di bagian Run Diagnostics > Profiles. Anda dapat
menggunakan laporan ini untuk meninjau kondisi keseluruhan workload, memeriksa bottleneck
performa teratas, dan mengidentifikasi perubahan kode atau konfigurasi
yang direkomendasikan.
Setiap laporan yang dibuat mencakup bagian berikut:
- Ringkasan analisis: Menampilkan status keseluruhan
OPTIMALatauNEEDS_ATTENTION, ringkasan 3 hingga 5 kalimat, dan metrik performa utama seperti waktu langkah, penggunaan memori, dan efisiensi Roofline. - Bottleneck yang diprioritaskan dan perbaikan yang dapat ditindaklanjuti: Mencantumkan temuan yang diprioritaskan
dari
P0untuk masalah kritis hinggaP2untuk masalah kecil. Setiap temuan mencakup:- Yang terjadi: Penjelasan tentang akar masalah, termasuk bentuk dan tata letak tensor jika relevan.
- Bukti: Kutipan langsung dari metrik dan operasi XProf tempat bottleneck diukur.
- Dampak dan perbaikan yang diharapkan: Jumlah waktu langkah atau memori yang terpengaruh, dipasangkan dengan perubahan framework, sharding, atau compiler yang direkomendasikan.
- Analisis alat XProf mendetail: Memberikan data pendukung dan perincian
mendetail dari analisis berikut:
- Analisis roofline
- Analisis memori
- Analisis profil operasi High-Level Optimizer (HLO)
- Statistik eksekusi kernel
- Analisis pengoptimal tingkat rendah dan kernel kustom