Saya mencoba memantau proses yang menggunakan cuda dan MPI, adakah cara saya bisa melakukan ini, seperti perintah "atas" tetapi itu juga memantau GPU?
cuda
resource-monitor
natorro
sumber
sumber
Jawaban:
Menurut saya gpustat sangat berguna. In dapat diinstal dengan
pip install gpustat
, dan mencetak rincian penggunaan oleh proses atau pengguna.sumber
watch gpustat -cp
Anda dapat melihat statistik terus menerus tetapi warna hilang. Bagaimana Anda memperbaikinya? @Alleowatch -c
. @Roman Orac, Terima kasih, ini juga berfungsi untuk saya di redhat 8 ketika saya mendapatkan beberapa kesalahan karena mengimpor _curses di python.watch -c gpustat -cp --color
watch -n 0.5 -c gpustat -cp --color
--watch
opsi:gpustat -cp --watch
Untuk mendapatkan wawasan waktu nyata tentang sumber daya yang digunakan, lakukan:
nvidia-smi -l 1
Ini akan memutar dan memanggil tampilan setiap detik.
Jika Anda tidak ingin menyimpan jejak panggilan berulang di riwayat konsol, Anda juga dapat melakukan:
watch -n0.1 nvidia-smi
Di mana 0,1 adalah interval waktu, dalam detik.
sumber
Saya tidak mengetahui apa pun yang menggabungkan informasi ini, tetapi Anda dapat menggunakan
nvidia-smi
alat tersebut untuk mendapatkan data mentah, seperti itu (terima kasih kepada @jmsu untuk tip tentang -l):sumber
watch -n 0.5 nvidia-smi
, yang menghindari mengisi terminal Anda dengan outputUnduh dan instal driver CUDA stabil terbaru (4.2) dari sini . Di linux, nVidia-smi 295.41 memberikan apa yang Anda inginkan. gunakan
nvidia-smi
:EDIT: Di driver NVIDIA terbaru, dukungan ini terbatas pada Tesla Cards.
sumber
untuk bantuan lebih lanjut, silakan ikuti
sumber
Cukup gunakan
watch nvidia-smi
, ini akan menampilkan pesan dengan interval 2s secara default.Misalnya seperti gambar di bawah ini:
Anda juga dapat menggunakan
watch -n 5 nvidia-smi
(interval -n 5 kali 5s).sumber
Pendekatan pemantauan berguna lainnya adalah dengan menggunakan
ps
proses yang difilter yang menggunakan GPU Anda. Saya sering menggunakan yang ini:Itu akan menunjukkan semua proses yang menggunakan GPU nvidia dan beberapa statistik tentangnya.
lsof ...
mengambil daftar semua proses menggunakan nvidia GPU yang dimiliki oleh pengguna saat ini, danps -p ...
menampilkanps
hasil untuk proses tersebut.ps f
menunjukkan pemformatan yang bagus untuk hubungan / hierarki proses anak / orang tua, dan-o
menetapkan pemformatan kustom. Yang itu mirip dengan hanya melakukanps u
tetapi menambahkan ID grup proses dan menghapus beberapa bidang lainnya.Satu keuntungan dari ini
nvidia-smi
adalah bahwa itu akan menampilkan garpu proses serta proses utama yang menggunakan GPU.Namun, satu kelemahannya adalah terbatas pada proses yang dimiliki oleh pengguna yang menjalankan perintah. Untuk membukanya ke semua proses yang dimiliki oleh setiap pengguna, saya menambahkan
sudo
sebelumlsof
.Terakhir, saya menggabungkannya dengan
watch
untuk mendapatkan pembaruan berkelanjutan. Jadi, pada akhirnya, ini terlihat seperti:Yang memiliki keluaran seperti:
sumber
sudo
seperti ini:nvidia-smi --query-compute-apps=pid --format=csv,noheader
nvidia-smi
tidak mencantumkan semua proses, jadi Anda berakhir dengan memori yang digunakan oleh proses yang tidak terdaftar di sana. Ini adalah cara utama saya dapat melacak dan menghentikan proses tersebut.pmem
diberikan olehps
memperhitungkan total memori GPU tetapi dari CPU karenaps
tidak mengetahui "Nvidia GPU"Anda dapat mencoba
nvtop
, yang mirip dengan alat yang banyak digunakanhtop
tetapi untuk GPU NVIDIA. Berikut adalah tangkapan layarnyanvtop
saat beraksi.sumber
Ini mungkin tidak elegan, tetapi Anda bisa mencobanya
Saya juga mencoba metode oleh @Edric, yang berfungsi, tetapi saya lebih suka tata letak asli
nvidia-smi
.sumber
nvidia-smi -l 2
. Atau untuk mencegah keluaran konsol berulang,watch -n 2 'nvidia-smi'
Jika Anda hanya ingin mencari proses yang berjalan di gpu, Anda cukup menggunakan perintah berikut:
Bagi saya
nvidia-smi
danwatch -n 1 nvidia-smi
cukup dalam banyak kasus. Kadang-kadangnvidia-smi
tidak menunjukkan proses tetapi memori gpu digunakan jadi saya perlu menggunakan perintah di atas untuk menemukan proses.sumber
Di Linux Mint, dan kemungkinan besar Ubuntu, Anda dapat mencoba "nvidia-smi --loop = 1"
sumber
Ada Prometheus GPU Metrics Exporter (PGME) yang memanfaatkan biner nvidai-smi. Anda dapat mencobanya. Setelah Anda menjalankan pengekspor, Anda dapat mengaksesnya melalui http: // localhost: 9101 / metrics . Untuk dua GPU, hasil sampel terlihat seperti ini:
sumber
Anda dapat menggunakan
nvidia-smi pmon -i 0
untuk memantau setiap proses di GPU 0. termasuk mode komputasi, penggunaan sm, penggunaan memori, penggunaan encoder, penggunaan decoder.sumber
Anda dapat menggunakan program pemantauan sekilas dengan plug-in pemantauan GPU :
sudo apt-get install -y python-pip; sudo pip install glances[gpu]
sudo glances
Itu juga memonitor CPU, disk IO, ruang disk, jaringan, dan beberapa hal lainnya:
sumber
Saya membuat file batch dengan kode berikut di mesin windows untuk memantau setiap detik. Ini berhasil untuk saya.
nvidia-smi exe biasanya terletak di "C: \ Program Files \ NVIDIA Corporation" jika Anda ingin menjalankan perintah hanya sekali.
sumber