Ubuntu) GPU 확인 방법
2021. 7. 31. 13:57ㆍ꿀팁 분석 환경 설정/Linux 관련 팁
목차
GPU 사용량 보기
nvidia-smi
모니터링 방법 (1)
# 0.5초 간격으로 모니터링
watch -n 0.5 nvidia-smi
모니터링 방법 (2)
# 1초마다 갱신(개인적으로 방법 1을 선호)
nvidia-smi -l 1
GPU를 사용 중인 PID 정보 얻기
ps -up `nvidia-smi -q -x | grep pid | sed -e 's/<pid>//g' -e 's/<\/pid>//g' -e 's/^[[:space:]]*//'`
파이썬) GPU 정보, device별, pid 별로 얻기
pip install pynvml
pip install beautifulsoup4
pip install lxml
import pynvml , pandas as pd
pynvml.nvmlInit()
result = []
for dev_id in range(pynvml.nvmlDeviceGetCount()):
handle = pynvml.nvmlDeviceGetHandleByIndex(dev_id)
for proc in pynvml.nvmlDeviceGetComputeRunningProcesses(handle):
result.append([proc.pid, proc.usedGpuMemory, dev_id])
gpu_usage = pd.DataFrame(result,columns=["pid","bytes of memory", "device"])
gpu_usage["MB of memory"] = gpu_usage["bytes of memory"] / (1024*1024)
gpu_usage["GB of memory"] = gpu_usage["bytes of memory"] / (1024*1024*1024)
pid 별로 얻기
현재 아쉬운 점) `GPU를 사용중인 PID 정보 얻기` 있는 결과물을 뽑아낼 수 있다면 각 pid 마다 어떤 코드인지를 확인할 수 있는데, 이것을 파이썬에서 어떻게 해야 할지를 아직 잘 모르겠다........
gpu_usage_by_id_r = gpu_usage.groupby("pid").apply(lambda x : ", ".join([str(i) for i in x["device"].tolist()])).reset_index(drop=False)
gpu_usage_by_id_r.columns = ["pid","device_list"]
gpu_usage_by_id_l = gpu_usage.groupby("pid").agg({"MB of memory" : "sum","GB of memory" : "sum",}).reset_index(drop=False)
gpu_usage_by_id = gpu_usage_by_id_l.merge(gpu_usage_by_id_r,on="pid",how="left")
gpu_usage_by_id
device 별로 얻기
from pynvml.smi import nvidia_smi
import numpy as np
total_gpu_usage = pd.DataFrame([list(i.values())[0] for i in nvsmi.DeviceQuery('memory.free, memory.total, memory.id')["gpu"]])
total_gpu_usage["device"] = np.arange(len(total_gpu_usage))
d = gpu_usage.groupby(["device","device_name"]).agg({"MB of memory" : "sum","GB of memory" : "sum",})
d = d.reset_index(drop=False)
device_gpusage = d.merge(total_gpu_usage,on="device",how="left")
device_gpusage
content | url |
pid를 통해서 돌아가는 script 확인 | https://stackoverflow.com/questions/50264491/how-to-customize-nvidia-smi-s-output-to-show-pid-username |
728x90
'꿀팁 분석 환경 설정 > Linux 관련 팁' 카테고리의 다른 글
Linux) GLIBCXX_3.4.26 not found 에러 해결하기(100%는 아님) (4) | 2022.03.19 |
---|---|
git 에러) remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. ... The requested URL returned error (0) | 2021.12.02 |
Linux) sudo password 없이 사용하기 (2) | 2021.07.19 |
How to: Linux / UNIX create soft link with ln command (3) | 2021.07.18 |
mpi4py 설치 에러 해결하기 (0) | 2021.03.28 |