Anda dapat memantau penggunaan, performa, dan kondisi GPU dengan mengonfigurasi GKE untuk mengirim metrik NVIDIA Data Center GPU Manager (DCGM) ke Cloud Monitoring.
Saat Anda mengaktifkan metrik DCGM, GKE akan menginstal alat DCGM-Exporter, menginstal driver GPU yang dikelola Google, dan men-deploy resource ClusterPodMonitoring untuk mengirim metrik ke Google Cloud Managed Service for Prometheus.
Anda juga dapat mengonfigurasi DCGM mandiri jika ingin menyesuaikan kumpulan metrik DCGM atau jika memiliki cluster yang tidak memenuhi persyaratan untuk metrik DCGM terkelola.
Apa yang dimaksud dengan DCGM
NVIDIA Data Center GPU Manager (DCGM) adalah serangkaian alat dari NVIDIA yang memungkinkan Anda
mengelola dan memantau GPU NVIDIA. DCGM mengekspos berbagai struktur observabilitas
dan penghitung menggunakan apa yang disebut sebagai fields
. Setiap kolom memiliki ID simbolis dan nomor kolom.
Anda dapat menemukan daftar lengkapnya di Daftar ID Kolom DCGM NVIDIA.
Jika Anda mengaktifkan metrik DCGM di GKE, metrik yang didukung akan otomatis tersedia di Cloud Monitoring. Metrik tersebut memberikan gambaran komprehensif tentang pemakaian, performa, dan kondisi GPU.
- Metrik penggunaan GPU adalah indikasi seberapa sibuk GPU yang dipantau dan apakah GPU tersebut digunakan secara efektif untuk memproses tugas. Hal ini mencakup metrik untuk pemrosesan inti, memori, I/O, dan penggunaan daya.
- Metrik performa GPU mengacu pada seberapa efektif dan efisien GPU dapat melakukan tugas komputasi. Hal ini mencakup metrik untuk kecepatan clock dan temperatur.
- Metrik I/O GPU seperti NVlink dan PCIe mengukur bandwidth transfer data.
Sebelum memulai
Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Aktifkan Google Kubernetes Engine API
- Jika ingin menggunakan Google Cloud CLI untuk tugas ini,
instal lalu
lakukan inisialisasi
gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan
gcloud components update
.
Persyaratan untuk metrik NVIDIA Data Center GPU Manager (DCGM)
Untuk mengumpulkan metrik NVIDIA Data Center GPU Manager (DCGM), cluster GKE Anda harus memenuhi persyaratan berikut:
- GKE versi 1.30.1-gke.1204000 atau yang lebih baru
- Pengumpulan Metrik sistem harus diaktifkan
- Koleksi terkelola Google Cloud Managed Service for Prometheus harus diaktifkan
- Node pool harus menjalankan driver GPU yang dikelola GKE. Artinya,
Anda harus membuat node pool menggunakan
default
ataulatest
untuk--gpu-driver-version
. - Metrik pembuatan profil hanya dikumpulkan untuk GPU NVIDIA H100 80 GB.
Mengonfigurasi pengumpulan metrik DCGM
Anda dapat mengaktifkan GKE untuk mengumpulkan metrik DCGM untuk cluster yang ada menggunakan konsol Google Cloud, gcloud CLI, atau Terraform.
Konsol
-
Anda harus menggunakan Default atau Latest untuk Penginstalan Driver GPU.
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Klik nama cluster Anda.
Di samping Cloud Monitoring, klik edit.
Pilih
SYSTEM
danDCGM
.Klik Simpan.
gcloud
Buat node pool GPU.
Anda harus menggunakan
default
ataulatest
untuk--gpu-driver-version
.Update cluster Anda:
gcloud container clusters update CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --enable-managed-prometheus \ --monitoring=SYSTEM,DCGM
Ganti kode berikut:
CLUSTER_NAME
: nama cluster yang ada.COMPUTE_LOCATION
: Lokasi Compute Engine cluster.
Terraform
Untuk mengonfigurasi pengumpulan metrik DCGM menggunakan Terraform, lihat blok monitoring_config
di registry Terraform untuk google_container_cluster
.
Untuk informasi umum tentang penggunaan Google Cloud dengan Terraform, lihat Terraform dengan Google Cloud.
Menggunakan metrik DCGM
Anda dapat melihat metrik DCGM menggunakan dasbor di konsol Google Cloud atau langsung di halaman ringkasan cluster dan detail cluster. Untuk mengetahui informasinya, lihat Melihat metrik kemampuan observasi.
Anda dapat melihat metrik menggunakan dasbor metrik DCGM Grafana. Untuk mengetahui informasi selengkapnya, lihat Membuat kueri menggunakan Grafana. Jika Anda mengalami error, lihat Kompatibilitas API.
Harga
Metrik DCGM menggunakan Google Cloud Managed Service for Prometheus untuk memuat metrik ke Cloud Monitoring. Biaya Cloud Monitoring untuk penyerapan metrik ini didasarkan pada jumlah sampel yang diserap. Namun, metrik ini gratis untuk cluster terdaftar yang termasuk dalam project yang telah mengaktifkan edisi GKE Enterprise.
Untuk mengetahui informasi selengkapnya, lihat harga Cloud Monitoring.
Kuota
Metrik DCGM menggunakan kuota Permintaan penyerapan deret waktu per menit dari Cloud Monitoring API. Sebelum mengaktifkan paket metrik, periksa penggunaan puncak terbaru dari kuota tersebut. Jika memiliki banyak cluster dalam project yang sama atau sudah mendekati batas kuota tersebut, Anda dapat meminta peningkatan batas kuota sebelum mengaktifkan salah satu paket observabilitas.
Metrik DCGM
Nama metrik Cloud Monitoring dalam tabel ini harus diawali dengan
prometheus.googleapis.com/
. Awalan tersebut telah dihilangkan dari
entri dalam tabel.
Bersama dengan label pada resource yang dimonitor prometheus_target
, semua metrik DCGM yang dikumpulkan di GKE memiliki label berikut yang dilampirkan ke metrik tersebut:
Label GPU:
UUID
: UUID perangkat GPUdevice
: nama perangkat GPU.-
gpu
: nomor indeks sebagai bilangan bulat perangkat GPU di node. Misalnya, jika ada 8 GPU yang terpasang, nilai ini dapat berkisar dari0
hingga7
. modelName
: nama model perangkat GPU, sepertiNVIDIA L4
.
Label Kubernetes:
container
: nama penampung Kubernetes yang menggunakan perangkat GPU.-
namespace
: namespace Kubernetes Pod dan penampung yang menggunakan perangkat GPU. pod
: Pod Kubernetes yang menggunakan perangkat GPU.
Nama metrik PromQL Nama metrik Cloud Monitoring |
|
---|---|
Jenis, Tipe, Unit
Resource yang dimonitor Versi GKE yang diperlukan |
Deskripsi |
DCGM_FI_DEV_FB_FREE DCGM_FI_DEV_FB_FREE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Buffer Frame Kosong dalam MB. |
DCGM_FI_DEV_FB_TOTAL DCGM_FI_DEV_FB_TOTAL/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Total Buffer Frame GPU dalam MB. |
DCGM_FI_DEV_FB_USED DCGM_FI_DEV_FB_USED/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Buffer Frame yang Digunakan dalam MB. |
DCGM_FI_DEV_GPU_TEMP DCGM_FI_DEV_GPU_TEMP/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Pengukuran suhu saat ini untuk perangkat (dalam °C). |
DCGM_FI_DEV_GPU_UTIL DCGM_FI_DEV_GPU_UTIL/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Pemakaian GPU (dalam %). |
DCGM_FI_DEV_MEM_COPY_UTIL DCGM_FI_DEV_MEM_COPY_UTIL/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Penggunaan memori (dalam %). |
DCGM_FI_DEV_MEMORY_TEMP DCGM_FI_DEV_MEMORY_TEMP/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Suhu memori untuk perangkat (dalam °C). |
DCGM_FI_DEV_POWER_USAGE DCGM_FI_DEV_POWER_USAGE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Penggunaan daya untuk perangkat (dalam Watt). |
DCGM_FI_DEV_SM_CLOCK DCGM_FI_DEV_SM_CLOCK/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Frekuensi clock SM (dalam MHz). |
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION/counter |
|
CUMULATIVE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Total konsumsi energi untuk GPU dalam mJ sejak driver terakhir kali dimuat ulang. |
DCGM_FI_PROF_DRAM_ACTIVE DCGM_FI_PROF_DRAM_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Rasio siklus antarmuka memori perangkat yang aktif mengirim atau menerima data. |
DCGM_FI_PROF_GR_ENGINE_ACTIVE DCGM_FI_PROF_GR_ENGINE_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Rasio waktu mesin grafis aktif. |
DCGM_FI_PROF_NVLINK_RX_BYTES DCGM_FI_PROF_NVLINK_RX_BYTES/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Kecepatan data rx (baca) NvLink aktif dalam byte, termasuk header dan payload. |
DCGM_FI_PROF_NVLINK_TX_BYTES DCGM_FI_PROF_NVLINK_TX_BYTES/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Kecepatan data tx (transmisi) NvLink aktif dalam byte, termasuk header dan payload. |
DCGM_FI_PROF_PCIE_RX_BYTES DCGM_FI_PROF_PCIE_RX_BYTES/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Kecepatan data rx (baca) PCIe aktif dalam byte, termasuk header dan payload. |
DCGM_FI_PROF_PCIE_TX_BYTES DCGM_FI_PROF_PCIE_TX_BYTES/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Kecepatan data tx (transmisi) PCIe aktif dalam byte, termasuk header dan payload. |
DCGM_FI_PROF_PIPE_FP16_ACTIVE DCGM_FI_PROF_PIPE_FP16_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Rasio siklus saat pipe fp16 aktif. |
DCGM_FI_PROF_PIPE_FP32_ACTIVE DCGM_FI_PROF_PIPE_FP32_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Rasio siklus saat pipa fp32 aktif. |
DCGM_FI_PROF_PIPE_FP64_ACTIVE DCGM_FI_PROF_PIPE_FP64_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Rasio siklus saat pipa fp64 aktif. |
DCGM_FI_PROF_PIPE_TENSOR_ACTIVE DCGM_FI_PROF_PIPE_TENSOR_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Rasio siklus yang aktif untuk setiap pipeline tensor. |
DCGM_FI_PROF_SM_ACTIVE DCGM_FI_PROF_SM_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Rasio siklus SM yang memiliki setidaknya 1 warp yang ditetapkan. |
Untuk membantu Anda memahami cara menggunakan metrik ini, kami telah mengelompokkan metrik tersebut sebagai berikut:
Penggunaan Komputasi atau Core
Metrik ini memungkinkan Anda mengidentifikasi perangkat yang kurang digunakan dan menyesuaikan alokasi komputasi atau GPU untuk mengoptimalkan penggunaan. Penggunaan yang rendah berarti Anda mungkin membayar kapasitas GPU yang lebih besar daripada yang diperlukan. Metrik ini dapat membantu menghemat biaya dengan menggabungkan komputasi di lebih sedikit perangkat.
DCGM_FI_DEV_GPU_UTIL
Metrik ini menunjukkan pecahan waktu GPU aktif.
Penggunaan yang diharapkan: Memberikan ringkasan penggunaan GPU rata-rata. Metrik ini mirip dengan DCGM_FI_PROF_GR_ENGINE_ACTIVE, yang dapat menjadi metrik yang lebih akurat untuk penggunaan GPU.
DCGM_FI_PROF_GR_ENGINE_ACTIVE
Metrik ini menunjukkan seberapa sibuk Graphics Engine untuk setiap interval sampling. Nilai ini berasal dari jumlah rata-rata siklus aktif dibandingkan dengan siklus maksimum yang tersedia selama interval pengambilan sampel. Misalnya, jika selama interval pengambilan sampel satu detik, 1.000 siklus tersedia dan rata-rata 324 siklus benar-benar aktif (melakukan pekerjaan), nilai metrik yang dihasilkan adalah 0,324. Hal ini secara kasar dapat ditafsirkan sebagai (0,324 x 100) 32,4% penggunaan.
Penggunaan yang diharapkan: Memberikan ringkasan penggunaan GPU rata-rata. Nilai penggunaan yang tinggi secara konsisten menunjukkan bahwa GPU mungkin merupakan bottleneck yang menyebabkan masalah performa sistem. Nilai penggunaan yang konsisten rendah menunjukkan bahwa aplikasi tidak menggunakan daya pemrosesan yang tersedia sepenuhnya.
DCGM_FI_PROF_PIPE_FP16_ACTIVE
, DCGM_FI_PROF_PIPE_FP32_ACTIVE
,
DCGM_FI_PROF_PIPE_FP64_ACTIVE
, DCGM_FI_PROF_PIPE_TENSOR_ACTIVE
Metrik ini mewakili rasio siklus yang aktif pada pipe GPU tertentu di atas siklus yang berlalu dan berkelanjutan.
Penggunaan yang diharapkan: Mengukur seberapa efektif berbagai pipeline komputasi di GPU digunakan.
DCGM_FI_PROF_SM_ACTIVE
Metrik ini menunjukkan pecahan waktu saat setidaknya satu warp aktif di SM(Streaming Multiprocessor),
rata-rata di semua SM. Misalnya, jika GPU memiliki 80 SM yang tersedia, dan selama
periode sampling, 16 SM mengeksekusi warp, nilai sm_active
yang dihasilkan
akan menjadi (16/80) 0,20, yang dapat ditafsirkan sebagai 20% SM yang tersedia memiliki
warp yang dieksekusi.
Penggunaan yang diharapkan: Memberikan ukuran bagaimana paralelisme GPU digunakan.
Penggunaan Memori
Penggunaan utama metrik ini adalah untuk mendeteksi kapan perangkat GPU tidak memiliki memori yang memadai untuk aplikasi. Aplikasi tersebut mungkin akan mendapatkan manfaat dari mengalokasikan lebih banyak kapasitas GPU.
DCGM_FI_DEV_FB_FREE
, DCGM_FI_DEV_FB_USED
, DCGM_FI_DEV_FB_TOTAL
Metrik ini ditujukan untuk memori buffer frame, yaitu memori di GPU. Metrik melaporkan memori bebas, memori yang digunakan, yang dijumlahkan menjadi total. Selain itu, total memori yang tersedia.
Penggunaan yang diharapkan: Menentukan pola penggunaan memori GPU. Hal ini memungkinkan Anda menghubungkan penggunaan memori di GPU yang sebenarnya dengan penggunaan yang diharapkan untuk menentukan efisiensi memori aplikasi.
DCGM_FI_DEV_MEM_COPY_UTIL
Metrik ini mewakili fraksi waktu selama periode sampel sebelumnya saat memori global (perangkat) sedang dibaca atau ditulis.
Penggunaan yang diharapkan: Menentukan pola transfer data ke dan dari memori GPU. Nilai tinggi metrik ini, yang dikombinasikan dengan nilai rendah metrik penggunaan komputasi, mungkin menunjukkan bahwa transfer memori adalah bottleneck dalam aplikasi yang sedang berjalan.
DCGM_FI_PROF_DRAM_ACTIVE
Metrik ini menunjukkan rasio siklus antarmuka memori GPU yang mengirim atau menerima data. Hal ini mencakup pemuatan dan penyimpanan dari thread yang dieksekusi di SM, serta salinan memori ke dan dari memori GPU. Nilai yang lebih tinggi menunjukkan tingkat traffic memori yang lebih tinggi.
Penggunaan yang diharapkan: Metrik ini mirip dengan metrik DCGM_FI_DEV_MEM_COPY_UTIL
dan metrik ini dapat lebih presisi.
Penggunaan I/O
Metrik berikut memberikan insight tentang penggunaan transmisi data antara GPU dan host, atau antara beberapa perangkat GPU. Salah satu cara untuk menggunakan metrik tersebut adalah dengan mendeteksi saat aplikasi membebani interconnect. Karena sifat burst yang melekat pada transmisi tersebut, sebaiknya pelajari data dengan resolusi lebih tinggi (misalnya, distribusi) untuk memberikan gambaran yang lebih mendetail tentang perilaku interconnect.
DCGM_FI_PROF_NVLINK_RX_BYTES
, DCGM_FI_PROF_NVLINK_TX_BYTES
Metrik ini mewakili throughput transmisi (tx) dan penerimaan (rx) NVLink dalam byte.
Penggunaan yang diharapkan: Melacak beban pada konektor NVLink (antara chip GPU). Jika nilai metrik ini mendekati total bandwidth NVLink yang tersedia dan metrik penggunaan komputasi rendah, hal ini mungkin menunjukkan bahwa NVLink adalah bottleneck dalam aplikasi yang sedang berjalan.
DCGM_FI_PROF_PCIE_RX_BYTES
, DCGM_FI_PROF_PCIE_TX_BYTES
Metrik ini mewakili throughput transmisi (tx) dan penerimaan (rx) PCIe dalam byte, dengan tx adalah GPU yang mengirimkan data, dan rx adalah GPU yang menerima data.
Penggunaan yang diharapkan: Melacak beban pada bus PCIe (antara CPU dan GPU). Jika nilai metrik ini dekat dengan total bandwidth bus PCIe dan metrik penggunaan komputasi rendah, hal ini mungkin menunjukkan bahwa bus PCIe adalah bottleneck dalam aplikasi yang sedang berjalan.
Penggunaan Daya
Metrik berikut memberikan insight tentang penggunaan daya GPU, yang terkadang penting untuk performa dan efisiensi workload.
DCGM_FI_DEV_GPU_TEMP
Metrik ini menunjukkan suhu rata-rata di semua core GPU.
Penggunaan yang diharapkan: Melacak kapan GPU hampir mengalami panas berlebih, terutama untuk berkorelasi dengan throttling clock. Anda juga dapat menggunakan metrik ini untuk mengidentifikasi GPU yang rentan terhadap panas berlebih untuk beban yang lebih ringan dalam aplikasi yang lebih canggih.
DCGM_FI_DEV_POWER_USAGE
Metrik ini menunjukkan konsumsi daya GPU dalam watt. Anda mungkin ingin melacak penggunaan daya sebagai metrik kesibukan GPU. GPU NVIDIA menyesuaikan clock mesin berdasarkan jumlah pekerjaan yang dilakukan. Seiring meningkatnya kecepatan clock (dan penggunaan), konsumsi daya juga meningkat.
Penggunaan yang diharapkan: Melacak jumlah daya yang digunakan GPU untuk aplikasi pengguna.
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION
Metrik ini mewakili total konsumsi energi GPU dalam millijoule (mJ) setelah driver dimuat ulang terakhir kali. Rasio yang dihitung berdasarkan metrik ini harus sesuai dengan metrik konsumsi daya.
Penggunaan yang diharapkan: Melacak jumlah daya yang digunakan GPU untuk aplikasi pengguna.
Metrik Performa GPU
Performa GPU mengacu pada seberapa efektif dan efisien GPU dapat melakukan tugas komputasi.
DCGM_FI_DEV_MEMORY_TEMP
Metrik ini menunjukkan suhu rata-rata blok memori.
Penggunaan yang diharapkan: Untuk menampilkan suhu blok memori dan berkorelasi dengan suhu GPU.
DCGM_FI_DEV_SM_CLOCK
Metrik ini menunjukkan kecepatan clock rata-rata di semua SM. Metrik ini dihitung selama interval waktu yang ditentukan.
Penggunaan yang diharapkan: Melacak kecepatan clock untuk mendeteksi throttling dan berkorelasi dengan performa aplikasi.
Langkah selanjutnya
- Pelajari cara Melihat metrik kemampuan observasi.