[GPU] nvidia-smi์˜ ์‹œ๋Œ€๋Š” ๊ฐ”๋‹ค?

Posted by Euisuk's Dev Log on September 13, 2024

[GPU] nvidia-smi์˜ ์‹œ๋Œ€๋Š” ๊ฐ”๋‹ค?

์›๋ณธ ๊ฒŒ์‹œ๊ธ€: https://velog.io/@euisuk-chung/nvidia-smi์˜-์‹œ๋Œ€๋Š”-๊ฐ”๋‹ค

์•ˆ๋…•ํ•˜์„ธ์š”! ๋ฆฌ๋ˆ…์Šค ์‚ฌ์šฉ์ž์ด์ž GPU ํ™œ์šฉ์— ๊ด€์‹ฌ์ด ๋งŽ์€ ๋ถ„๋“ค์„ ์œ„ํ•œ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ์„ ์†Œ๊ฐœํ•ด ๋“œ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ NVIDIA GPU ๋ชจ๋‹ˆํ„ฐ๋ง ๋„๊ตฌ๋กœ ํฐ ์ธ๊ธฐ๋ฅผ ๋Œ๊ณ  ์žˆ๋Š” nvtop๊ณผ ํ•จ๊ป˜, ๊ทธ๋ณด๋‹ค ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” nvitop์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ๋ถ„๋“ค์ด nvidia-smi๋ฅผ ํ†ตํ•ด GPU ์ƒํƒœ๋ฅผ ํ™•์ธํ•ด ์˜ค์…จ์„ ํ…๋ฐ์š”, nvtop๊ณผ nvitop์€ nvidia-smi๋ฅผ ๋„˜์–ด์„œ๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๊ณผ ์ง๊ด€์ ์ธ UI๋ฅผ ์ œ๊ณตํ•˜๋Š” ํˆด์ž…๋‹ˆ๋‹ค. ์ €๋„ ์ง€๊ธˆ๊นŒ์ง€ nvidia-smi๋ฅผ ์‚ฌ์šฉํ•ด์™”์ง€๋งŒ, ์ตœ๊ทผ ๋“ค์–ด์„œ ๋Œ€์„ธ(?)๋ผ๋Š” nvtop๊ณผ nvitop์„ ์‚ฌ์šฉํ•ด๋ณด๋ ค๊ณ  ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!! ๐Ÿค—

๊ทธ๋Ÿผ ์ด ๋‘ ๊ฐ€์ง€ ๋„๊ตฌ๋ฅผ ๋น„๊ตํ•˜๋ฉฐ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!


nvtop์ด๋ž€?

nvtop์€ NVIDIA GPU๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€ํ™”ํ˜• ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. htop๊ณผ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์œผ๋กœ, ํ„ฐ๋ฏธ๋„์—์„œ ์ง๊ด€์ ์ธ ๊ทธ๋ž˜ํ”ฝ UI๋ฅผ ์ œ๊ณตํ•˜์—ฌ GPU์˜ ์ƒํƒœ๋ฅผ ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ GPU ํ™˜๊ฒฝ์—์„œ๋„ ๊ฐ๊ฐ์˜ GPU ์‚ฌ์šฉ๋ฅ , ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ, ํ”„๋กœ์„ธ์Šค ๋“ฑ์„ ๋™์‹œ์— ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ

  • ์‹ค์‹œ๊ฐ„์œผ๋กœ GPU ์‚ฌ์šฉ๋ฅ ๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ๋ชจ๋‹ˆํ„ฐ๋ง
  • GPU์— ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค ์ •๋ณด ์ œ๊ณต
  • ๋‹ค์ค‘ GPU ๋ชจ๋‹ˆํ„ฐ๋ง ์ง€์›
  • ํŒฌ ์†๋„, ์ „๋ ฅ ์†Œ๋น„๋Ÿ‰ ๋“ฑ ํ•˜๋“œ์›จ์–ด ์ •๋ณด ํ™•์ธ ๊ฐ€๋Šฅ

nvitop์ด๋ž€?

nvitop์€ nvtop๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ NVIDIA GPU ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•œ ๋Œ€ํ™”ํ˜• ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ, nvitop์€ nvtop๋ณด๋‹ค ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ, GPU ๋ชจ๋‹ˆํ„ฐ๋ง๊ณผ ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ์™€ GPU ์ •๋ณด ํ‘œ์‹œ ์ธก๋ฉด์—์„œ ๋” ์„ธ๋ฐ€ํ•œ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

nvitop์€ nvidia-smi์˜ ์ •๋ณด ์ œ๊ณต ๋Šฅ๋ ฅ, gpustat์˜ ์ปฌ๋Ÿฌ๋ง, ๊ทธ๋ฆฌ๊ณ  nvtop์˜ ๋Œ€ํ™”ํ˜• ๋ชจ๋‹ˆํ„ฐ๋ง ๊ธฐ๋Šฅ์„ ๊ฒฐํ•ฉํ•œ ์›์Šคํ†ฑ ์†”๋ฃจ์…˜์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ GPU ์‚ฌ์šฉ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•  ๋ฟ ์•„๋‹ˆ๋ผ, ํŠธ๋ฆฌ ๋ทฐ๋กœ ํ”„๋กœ์„ธ์Šค ๊ตฌ์กฐ๋ฅผ ํ™•์ธํ•˜๊ฑฐ๋‚˜, ํŠน์ • GPU์˜ ์ƒํƒœ๋งŒ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๋“ฑ์˜ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ๋„ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ

  1. ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง: GPU ์‚ฌ์šฉ๋ฅ , ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰, ์˜จ๋„ ๋“ฑ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธ ๊ฐ€๋Šฅ
  2. ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ: GPU์—์„œ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ •๋ ฌ, ํ•„ํ„ฐ๋ง, ์ข…๋ฃŒ ๊ฐ€๋Šฅ
  3. ํŠธ๋ฆฌ ๋ทฐ: ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์™€ ์ž์‹ ํ”„๋กœ์„ธ์Šค ๊ด€๊ณ„๋ฅผ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ํ‘œ์‹œ
  4. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํ™•์ธ: ํ”„๋กœ์„ธ์Šค์˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‰ฝ๊ฒŒ ํ™•์ธ ๊ฐ€๋Šฅ
  5. ์‚ฌ์šฉ์ž ์นœํ™”์  ์ธํ„ฐํŽ˜์ด์Šค: ์ •๋ณด๊ฐ€ ํ’๋ถ€ํ•œ ์ปฌ๋Ÿฌ ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต

nvtop ์„ค์น˜ ๋ฐฉ๋ฒ•

๋ฆฌ๋ˆ…์Šค ๋ฐฐํฌํŒ์— ๋”ฐ๋ผ ์„ค์น˜ ๋ฐฉ๋ฒ•์ด ์กฐ๊ธˆ ๋‹ค๋ฅด์ง€๋งŒ, ์ผ๋ฐ˜์ ์œผ๋กœ Ubuntu/Debian ๊ณ„์—ด์—์„œ๋Š” ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1
sudo apt install nvtop

๋‹ค๋ฅธ ๋ฐฐํฌํŒ์—์„œ๋Š” ์†Œ์Šค๋ฅผ ์ง์ ‘ ๋นŒ๋“œํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

1
2
3
4
5
6
sudo apt install cmake libncurses5-dev libncursesw5-dev git
git clone https://github.com/Syllo/nvtop.git
mkdir -p nvtop/build && cd nvtop/build
cmake ..
make
sudo make install

nvitop ์„ค์น˜ ๋ฐฉ๋ฒ•

nvitop์€ pip๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Python ํ™˜๊ฒฝ์—์„œ ์„ค์น˜๊ฐ€ ๋งค์šฐ ๊ฐ„๋‹จํ•˜๋ฉฐ, ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”:

1
pip install --upgrade nvitop

๋˜ํ•œ, conda ํ™˜๊ฒฝ์—์„œ๋„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ€์ƒ ํ™˜๊ฒฝ์— ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

1
conda install -c conda-forge nvitop

์‚ฌ์šฉ๋ฒ• ๋น„๊ต

nvtop ์‚ฌ์šฉ๋ฒ•

1
nvtop

์ด ๋ช…๋ น์–ด๋กœ nvtop์„ ์‹คํ–‰ํ•˜๋ฉด GPU ์‚ฌ์šฉ๋ฅ , ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰, ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค, ์˜จ๋„, ์ „๋ ฅ ์†Œ๋น„๋Ÿ‰ ๋“ฑ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ๋‹ค์–‘ํ•œ ๋‹จ์ถ•ํ‚ค๋ฅผ ํ†ตํ•ด ๋ชจ๋‹ˆํ„ฐ๋ง ํ™˜๊ฒฝ์„ ์‰ฝ๊ฒŒ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • F2: ์„ค์ • ์ฐฝ ์—ด๊ธฐ (Setup Window)
  • F12: ์„ค์ • ์ €์žฅ
  • q ๋˜๋Š” Esc: ์ข…๋ฃŒ
  • h: ๋„์›€๋ง ํ‘œ์‹œ

nvitop ์‚ฌ์šฉ๋ฒ•

1
nvitop

๊ธฐ๋ณธ์ ์œผ๋กœ nvitop ๋ช…๋ น์–ด๋กœ GPU ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ํ†ตํ•ด ๋” ์„ธ๋ฐ€ํ•œ ์ •๋ณด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠน์ • GPU๋งŒ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ฑฐ๋‚˜, ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1
2
nvitop -1 -o 0 1  # GPU 0๊ณผ 1๋งŒ ํ‘œ์‹œ
nvitop -t         # ํŠธ๋ฆฌ ๋ทฐ ํ™œ์„ฑํ™”

nvitop์€ Python API๋„ ์ œ๊ณตํ•˜์—ฌ, ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ GPU ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์ฃผ์š” ์ฐจ์ด์ 

ํŠน์ง• nvtop nvitop
์„ค์น˜ ๋ฐฉ๋ฒ• ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ๋˜๋Š” ์†Œ์Šค ๋นŒ๋“œ pip ๋˜๋Š” conda ์„ค์น˜
์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ์ง๊ด€์ ์ธ ๊ทธ๋ž˜ํ”ฝ UI ํ’๋ถ€ํ•œ ์ •๋ณด์™€ ๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ์ œ๊ณตํ•˜๋Š” UI
ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ GPU ์ž์› ์‚ฌ์šฉ ํ”„๋กœ์„ธ์Šค ์ •๋ณด ์ œ๊ณต ํŠธ๋ฆฌ ๋ทฐ, ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์กฐํšŒ, ํ”„๋กœ์„ธ์Šค ํ•„ํ„ฐ๋ง ๋“ฑ
์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ ์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ ๊ฐ€๋Šฅ ์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ + ๋” ๋งŽ์€ ์„ธ๋ถ€ ์ •๋ณด ์ œ๊ณต
๋‹ค์ค‘ GPU ์ง€์› ์ง€์› ์ง€์›

๊ฒฐ๋ก 

nvtop๊ณผ nvitop์€ ๋ชจ๋‘ NVIDIA GPU ๋ชจ๋‹ˆํ„ฐ๋ง์— ๋งค์šฐ ์œ ์šฉํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

๋‘ ๋„๊ตฌ ๋ชจ๋‘ ์ง๊ด€์ ์ธ UI๋ฅผ ์ œ๊ณตํ•˜๊ณ , ์‹ค์‹œ๊ฐ„์œผ๋กœ GPU ์‚ฌ์šฉ๋Ÿ‰์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์—ฌ๋Ÿฌ GPU ํ™˜๊ฒฝ์—์„œ๋„ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • nvtop์€ ๊ฐ„๋‹จํ•˜๊ณ  ์ง๊ด€์ ์ธ UI๋กœ GPU ์ƒํƒœ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ธฐ์— ์ ํ•ฉํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
  • nvitop์€ ๋” ๋งŽ์€ ๊ธฐ๋Šฅ๊ณผ ์„ธ๋ฐ€ํ•œ ์กฐ์ •์ด ๊ฐ€๋Šฅํ•œ ๊ณ ๊ธ‰ ๋„๊ตฌ๋กœ, ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ๋‚˜ ํŠธ๋ฆฌ ๋ทฐ, API ์ง€์›์ด ํ•„์š”ํ•œ ํ™˜๊ฒฝ์— ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ž์‹ ์˜ ํ•„์š”์— ๋”ฐ๋ผ nvtop ๋˜๋Š” nvitop์„ ์„ ํƒํ•ด GPU ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•ด๋ณด์„ธ์š”!



-->