Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Jelajahi data keluaran profil yang divisualisasikan di UI SageMaker Profiler
Bagian ini berjalan melalui UI SageMaker Profiler dan memberikan tips tentang cara menggunakan dan mendapatkan wawasan darinya.
Memuat profil
Saat Anda membuka UI SageMaker Profiler, halaman Load profile akan terbuka. Untuk memuat dan menghasilkan Dashboard dan Timeline, lakukan prosedur berikut.
Untuk memuat profil pekerjaan pelatihan
-
Dari bagian Daftar pekerjaan pelatihan, gunakan kotak centang untuk memilih pekerjaan pelatihan yang ingin Anda muat profilnya.
-
Pilih Muat. Nama pekerjaan akan muncul di bagian Profil yang dimuat di bagian atas.
-
Pilih tombol radio di sebelah kiri nama Job untuk menghasilkan Dashboard dan Timeline. Perhatikan bahwa ketika Anda memilih tombol radio, UI secara otomatis membuka Dasbor. Perhatikan juga bahwa jika Anda menghasilkan visualisasi saat status pekerjaan dan status pemuatan masih tampak sedang berlangsung, UI SageMaker Profiler akan menghasilkan plot Dasbor dan Garis Waktu hingga data profil terbaru yang dikumpulkan dari pekerjaan pelatihan yang sedang berlangsung atau data profil yang dimuat sebagian.
Tip
Anda dapat memuat dan memvisualisasikan satu profil sekaligus. Untuk memuat profil lain, Anda harus terlebih dahulu membongkar profil yang dimuat sebelumnya. Untuk membongkar profil, gunakan ikon tempat sampah di ujung kanan profil di bagian Profil yang dimuat.
![Screenshot dari halaman Load profile di SageMaker Profiler UI](images/profiler/sagemaker-profiler-ui-load-data.png)
Dasbor
Setelah Anda selesai memuat dan memilih tugas pelatihan, UI membuka halaman Dasbor yang dilengkapi dengan panel berikut secara default.
-
Waktu aktif GPU - Diagram lingkaran ini menunjukkan persentase waktu aktif GPU versus waktu idle GPU. Anda dapat memeriksa GPUs apakah Anda lebih aktif daripada menganggur di seluruh pekerjaan pelatihan. Waktu aktif GPU didasarkan pada titik data profil dengan tingkat pemanfaatan lebih besar dari 0%, sedangkan waktu idle GPU adalah titik data yang diprofilkan dengan pemanfaatan 0%.
-
Pemanfaatan GPU dari waktu ke waktu - Grafik garis waktu ini menunjukkan tingkat pemanfaatan GPU rata-rata dari waktu ke waktu per node, menggabungkan semua node dalam satu bagan. Anda dapat memeriksa apakah GPUs memiliki beban kerja yang tidak seimbang, masalah pemanfaatan yang kurang, kemacetan, atau masalah menganggur selama interval waktu tertentu. Untuk melacak tingkat pemanfaatan pada tingkat GPU individu dan menjalankan kernel terkait, gunakan file. Antarmuka garis waktu Perhatikan bahwa pengumpulan aktivitas GPU dimulai dari tempat Anda menambahkan fungsi starter profiler
SMProf.start_profiling()
dalam skrip latihan, dan berhenti di.SMProf.stop_profiling()
-
Waktu aktif CPU - Bagan lingkaran ini menunjukkan persentase waktu aktif CPU versus waktu idle CPU. Anda dapat memeriksa CPUs apakah Anda lebih aktif daripada menganggur di seluruh pekerjaan pelatihan. Waktu aktif CPU didasarkan pada titik data yang diprofilkan dengan tingkat pemanfaatan lebih besar dari 0%, sedangkan waktu idle CPU adalah titik data yang diprofilkan dengan pemanfaatan 0%.
-
Pemanfaatan CPU dari waktu ke waktu - Grafik garis waktu ini menunjukkan tingkat pemanfaatan CPU rata-rata dari waktu ke waktu per node, menggabungkan semua node dalam satu bagan. Anda dapat memeriksa CPUs apakah macet atau kurang dimanfaatkan selama interval waktu tertentu. Untuk melacak tingkat pemanfaatan yang CPUs selaras dengan pemanfaatan GPU individu dan menjalankan kernel, gunakan. Antarmuka garis waktu Perhatikan bahwa metrik pemanfaatan dimulai dari awal dari inisialisasi pekerjaan.
-
Waktu yang dihabiskan oleh semua kernel GPU — Bagan lingkaran ini menunjukkan semua kernel GPU yang dioperasikan selama pekerjaan pelatihan. Ini menunjukkan 15 kernel GPU teratas secara default sebagai sektor individu dan semua kernel lainnya dalam satu sektor. Arahkan kursor ke sektor untuk melihat informasi lebih rinci. Nilai menunjukkan total waktu kernel GPU yang dioperasikan dalam hitungan detik, dan persentasenya didasarkan pada seluruh waktu profil.
-
Waktu yang dihabiskan oleh 15 kernel GPU teratas — Bagan lingkaran ini menunjukkan semua kernel GPU yang dioperasikan selama pekerjaan pelatihan. Ini menunjukkan 15 kernel GPU teratas sebagai sektor individual. Arahkan kursor ke sektor untuk melihat informasi lebih rinci. Nilai menunjukkan total waktu kernel GPU yang dioperasikan dalam hitungan detik, dan persentasenya didasarkan pada seluruh waktu profil.
-
Jumlah peluncuran semua kernel GPU - Bagan lingkaran ini menunjukkan jumlah hitungan untuk setiap kernel GPU yang diluncurkan selama pekerjaan pelatihan. Ini menunjukkan 15 kernel GPU teratas sebagai sektor individu dan semua kernel lainnya dalam satu sektor. Arahkan kursor ke sektor untuk melihat informasi lebih rinci. Nilai menunjukkan jumlah total kernel GPU yang diluncurkan, dan persentasenya didasarkan pada seluruh hitungan semua kernel.
-
Jumlah peluncuran dari 15 kernel GPU teratas - Bagan lingkaran ini menunjukkan jumlah hitungan setiap kernel GPU yang diluncurkan selama pekerjaan pelatihan. Ini menunjukkan 15 kernel GPU teratas. Arahkan kursor ke sektor untuk melihat informasi lebih rinci. Nilai menunjukkan jumlah total kernel GPU yang diluncurkan, dan persentasenya didasarkan pada seluruh hitungan semua kernel.
-
Distribusi waktu langkah — Histogram ini menunjukkan distribusi durasi langkah pada. GPUs Plot ini dibuat hanya setelah Anda menambahkan anotator langkah dalam skrip pelatihan Anda.
-
Distribusi presisi kernel — Diagram lingkaran ini menunjukkan persentase waktu yang dihabiskan untuk menjalankan kernel dalam tipe data yang berbeda seperti FP32,, FP16 INT32, dan INT8.
-
Distribusi aktivitas GPU - Diagram lingkaran ini menunjukkan persentase waktu yang dihabiskan untuk aktivitas GPU, seperti menjalankan kernel, memori (
memcpy
danmemset
), dan sinkronisasi ().sync
-
Distribusi operasi memori GPU - Diagram lingkaran ini menunjukkan persentase waktu yang dihabiskan untuk operasi memori GPU. Ini memvisualisasikan
memcopy
kegiatan dan membantu mengidentifikasi apakah pekerjaan pelatihan Anda menghabiskan waktu berlebihan untuk operasi memori tertentu. -
Buat histogram baru — Buat diagram baru dari metrik khusus yang Anda anotasi secara manual selama. Langkah 1: Sesuaikan skrip pelatihan Anda menggunakan modul SageMaker Profiler Python Saat menambahkan anotasi khusus ke histogram baru, pilih atau ketik nama anotasi yang Anda tambahkan dalam skrip pelatihan. Misalnya, dalam skrip pelatihan demo di Langkah 1,,
step
,Forward
,Backward
Optimize
, danLoss
merupakan anotasi khusus. Saat membuat histogram baru, nama anotasi ini akan muncul di menu tarik-turun untuk pemilihan metrik. Jika Anda memilihBackward
, UI menambahkan histogram waktu yang dihabiskan untuk lintasan mundur sepanjang waktu yang diprofilkan ke Dasbor. Jenis histogram ini berguna untuk memeriksa apakah ada outlier yang memakan waktu lebih lama secara tidak normal dan menyebabkan masalah bottleneck.
Tangkapan layar berikut menunjukkan rasio waktu aktif GPU dan CPU serta tingkat pemanfaatan GPU dan CPU rata-rata sehubungan dengan waktu per node komputasi.
![Screenshot dari halaman Dashboard di UI SageMaker Profiler](images/profiler/sagemaker-profiler-ui-dashboard-1.png)
Tangkapan layar berikut menunjukkan contoh diagram lingkaran untuk membandingkan berapa kali kernel GPU diluncurkan dan mengukur waktu yang dihabiskan untuk menjalankannya. Dalam Waktu yang dihabiskan oleh semua kernel GPU dan jumlah Peluncuran semua panel kernel GPU, Anda juga dapat menentukan bilangan bulat ke bidang input untuk k untuk menyesuaikan jumlah legenda yang akan ditampilkan di plot. Misalnya, jika Anda menentukan 10, plot menunjukkan 10 kernel teratas yang paling banyak dijalankan dan diluncurkan masing-masing.
![Screenshot dari halaman Dashboard di UI SageMaker Profiler](images/profiler/sagemaker-profiler-ui-dashboard-2.png)
Tangkapan layar berikut menunjukkan contoh histogram durasi waktu langkah, dan diagram lingkaran untuk distribusi presisi kernel, distribusi aktivitas GPU, dan distribusi operasi memori GPU.
![Screenshot dari halaman Dashboard di UI SageMaker Profiler](images/profiler/sagemaker-profiler-ui-dashboard-3.png)
Antarmuka garis waktu
Untuk mendapatkan tampilan rinci ke sumber daya komputasi pada tingkat operasi dan kernel yang dijadwalkan pada CPUs dan berjalan di GPUs, gunakan antarmuka Timeline.
Anda dapat memperbesar dan memperkecil dan menggeser ke kiri atau kanan di antarmuka garis waktu menggunakan mouse, [w, a, s, d]
tombol, atau empat tombol panah pada keyboard.
Tip
Untuk tips lebih lanjut tentang pintasan keyboard untuk berinteraksi dengan antarmuka Timeline, pilih Pintasan keyboard di panel kiri.
Trek garis waktu diatur dalam struktur pohon, memberi Anda informasi dari tingkat host ke tingkat perangkat. Misalnya, jika Anda menjalankan N
instance dengan masing-masing delapan GPUs , struktur garis waktu setiap instance adalah sebagai berikut.
-
algo-i node - Inilah tag SageMaker AI untuk menetapkan pekerjaan ke instance yang disediakan. Digit i node ditetapkan secara acak. Misalnya, jika Anda menggunakan 4 instance, bagian ini diperluas dari algo-1 ke algo-4.
-
CPU - Di bagian ini, Anda dapat memeriksa tingkat pemanfaatan CPU rata-rata dan penghitung kinerja.
-
GPUs— Di bagian ini, Anda dapat memeriksa tingkat pemanfaatan GPU rata-rata, tingkat pemanfaatan GPU individu, dan kernel.
-
Pemanfaatan SUM — Tingkat pemanfaatan GPU rata-rata per instans.
-
HOST-0 PID-123 — Nama unik yang ditetapkan untuk setiap trek proses. Akronim PID adalah ID proses, dan nomor yang ditambahkan padanya adalah nomor ID proses yang direkam selama pengambilan data dari proses. Bagian ini menunjukkan informasi berikut dari proses.
-
num_gpuPemanfaatan GPU-i — Tingkat pemanfaatan GPU ke-i dari waktu ke waktunum_gpu.
-
num_gpuPerangkat GPU-i — Kernel berjalan pada perangkat GPU num_gpu ke-i.
-
stream i cuda_stream — CUDA stream yang menunjukkan kernel berjalan pada perangkat GPU. Untuk mempelajari lebih lanjut tentang aliran CUDA, lihat slide dalam PDF di CUDA C/C++ Streams
and Concurrency yang disediakan oleh NVIDIA.
-
-
Host GPU-i - Kernel diluncurkan pada num_gpu host GPU num_gpu ke-i.
-
-
-
Beberapa tangkapan layar berikut menunjukkan Timeline profil pekerjaan pelatihan yang dijalankan pada ml.p4d.24xlarge
instance, yang masing-masing dilengkapi dengan 8 NVIDIA A100 Tensor Core. GPUs
Berikut ini adalah tampilan profil yang diperbesar, mencetak selusin langkah termasuk pemuat data intermiten antara step_232
dan step_233
untuk mengambil kumpulan data berikutnya.
![Halaman timeline di UI SageMaker Profiler, yang memvisualisasikan profil pekerjaan pelatihan sampel.](images/profiler/sagemaker-profiler-ui-timeline-1.png)
Untuk setiap CPU, Anda dapat melacak pemanfaatan CPU dan penghitung kinerja, seperti "clk_unhalted_ref.tsc"
dan"itlb_misses.miss_causes_a_walk"
, yang merupakan indikasi instruksi yang dijalankan pada CPU.
Untuk setiap GPU, Anda dapat melihat timeline host dan timeline perangkat. Peluncuran kernel ada di timeline host dan kernel berjalan ada di timeline perangkat. Anda juga dapat melihat anotasi (seperti maju, mundur, dan mengoptimalkan) jika Anda telah menambahkan skrip pelatihan di timeline host GPU.
Dalam tampilan timeline, Anda juga dapat melacak launch-and-run pasangan kernel. Ini membantu Anda memahami bagaimana peluncuran kernel yang dijadwalkan pada host (CPU) dijalankan pada perangkat GPU yang sesuai.
Tip
Tekan f
tombol untuk memperbesar kernel yang dipilih.
Tangkapan layar berikut adalah tampilan yang diperbesar ke dalam step_233
dan step_234
dari tangkapan layar sebelumnya. Interval timeline yang dipilih dalam tangkapan layar berikut adalah AllReduce
operasi, langkah komunikasi dan sinkronisasi penting dalam pelatihan terdistribusi, dijalankan pada perangkat GPU-0. Dalam tangkapan layar, perhatikan bahwa peluncuran kernel di host GPU-0 terhubung ke kernel yang dijalankan di aliran perangkat GPU-0 1, ditunjukkan dengan panah dalam warna cyan.
![Screenshot dari halaman Timeline di UI SageMaker Profiler](images/profiler/sagemaker-profiler-ui-timeline-2.png)
Juga dua tab informasi muncul di panel bawah UI saat Anda memilih interval garis waktu, seperti yang ditunjukkan pada tangkapan layar sebelumnya. Tab Seleksi Saat Ini menunjukkan rincian kernel yang dipilih dan peluncuran kernel yang terhubung dari host. Arah koneksi selalu dari host (CPU) ke perangkat (GPU) karena setiap kernel GPU selalu dipanggil dari CPU. Tab Connections menunjukkan pasangan peluncuran dan jalankan kernel yang dipilih. Anda dapat memilih salah satu dari mereka untuk memindahkannya ke tengah tampilan Timeline.
Tangkapan layar berikut memperbesar lebih jauh ke peluncuran AllReduce
operasi dan menjalankan pasangan.
![Screenshot dari halaman Timeline di UI SageMaker Profiler](images/profiler/sagemaker-profiler-ui-timeline-3.png)
Informasi
Di Informasi, Anda dapat mengakses informasi tentang pekerjaan pelatihan yang dimuat, seperti jenis instans, Amazon Resource Names (ARNs) sumber daya komputasi yang disediakan untuk pekerjaan, nama node, dan hyperparameter.
Pengaturan
Instans aplikasi SageMaker AI Profiler UI dikonfigurasi untuk dimatikan setelah 2 jam waktu idle secara default. Di Pengaturan, gunakan pengaturan berikut untuk menyesuaikan timer shutdown otomatis.
-
Aktifkan shutdown otomatis aplikasi - Pilih dan atur ke Diaktifkan agar aplikasi mati secara otomatis setelah jumlah jam waktu idle yang ditentukan. Untuk mematikan fungsi auto-shutdown, pilih Dinonaktifkan.
-
Ambang batas shutdown otomatis dalam hitungan jam - Jika Anda memilih Diaktifkan untuk Aktifkan shutdown otomatis aplikasi, Anda dapat mengatur batas waktu dalam beberapa jam agar aplikasi dimatikan secara otomatis. Ini diatur ke 2 secara default.