Mengumpulkan dan melihat metrik DCGM


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:

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

  1. Buat node pool GPU.

    Anda harus menggunakan Default atau Latest untuk Penginstalan Driver GPU.

  2. Buka halaman Google Kubernetes Engine di konsol Google Cloud.

    Buka Google Kubernetes Engine

  3. Klik nama cluster Anda.

  4. Di samping Cloud Monitoring, klik .

  5. Pilih SYSTEM dan DCGM.

  6. Klik Simpan.

gcloud

  1. Buat node pool GPU.

    Anda harus menggunakan default atau latest untuk --gpu-driver-version.

  2. Update cluster Anda:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --enable-managed-prometheus \
        --monitoring=SYSTEM,DCGM
    

    Ganti kode berikut:

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 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 GPU
  • device: nama perangkat GPU.
  • gpu: nomor indeks sebagai bilangan bulat perangkat GPU di node. Misalnya, jika ada 8 GPU yang terpasang, nilai ini dapat berkisar dari 0 hingga 7.
  • modelName: nama model perangkat GPU, seperti NVIDIA 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

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Buffer Frame Kosong dalam MB.
DCGM_FI_DEV_FB_TOTAL
DCGM_FI_DEV_FB_TOTAL/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Total Buffer Frame GPU dalam MB.
DCGM_FI_DEV_FB_USED
DCGM_FI_DEV_FB_USED/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Buffer Frame yang Digunakan dalam MB.
DCGM_FI_DEV_GPU_TEMP
DCGM_FI_DEV_GPU_TEMP/gauge

GAUGEDOUBLE1 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

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Pemakaian GPU (dalam %).
DCGM_FI_DEV_MEM_COPY_UTIL
DCGM_FI_DEV_MEM_COPY_UTIL/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Pemakaian memori (dalam %).
DCGM_FI_DEV_MEMORY_TEMP
DCGM_FI_DEV_MEMORY_TEMP/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Suhu memori untuk perangkat (dalam °C).
DCGM_FI_DEV_POWER_USAGE
DCGM_FI_DEV_POWER_USAGE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Penggunaan daya untuk perangkat (dalam Watt).
DCGM_FI_DEV_SM_CLOCK
DCGM_FI_DEV_SM_CLOCK/gauge

GAUGEDOUBLE1 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

CUMULATIVEDOUBLE1 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

GAUGEDOUBLE1 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

GAUGEDOUBLE1 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

GAUGEDOUBLE1 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

GAUGEDOUBLE1 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

GAUGEDOUBLE1 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

GAUGEDOUBLE1 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

GAUGEDOUBLE1 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

GAUGEDOUBLE1 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

GAUGEDOUBLE1 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

GAUGEDOUBLE1 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

GAUGEDOUBLE1 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