#pytorch #gpu
#pytorch #gpu
Вопрос:
Ответ №1:
Вы можете использовать команды pytorch, например, torch.cuda.memory_stats
для получения информации о текущем использовании памяти GPU, а затем создать временной график на основе этих отчетов.
Ответ №2:
Я думаю, что это лучшее
torch.cuda.mem_get_info
он возвращает глобальную свободную и общую память GPU, занятую для данного устройства, используя cudaMemGetInfo.
Ответ №3:
Используется другой метод nvidia-smi
, который выглядит следующим образом
-----------------------------------------------------------------------------
| NVIDIA-SMI 450.66 Driver Version: 450.66 CUDA Version: 11.0 |
|------------------------------- ---------------------- ----------------------
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=============================== ====================== ======================|
| 0 GeForce GTX 1080 Off | 00000000:01:00.0 On | N/A |
| 0% 50C P8 12W / 215W | 1088MiB / 8113MiB | 0% Default |
| | | N/A |
------------------------------- ---------------------- ----------------------
-----------------------------------------------------------------------------
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 1091 G /usr/lib/xorg/Xorg 24MiB |
| 0 N/A N/A 1158 G /usr/bin/gnome-shell 48MiB |
-----------------------------------------------------------------------------
И используйте subprocess
, чтобы получить строку, например
import subprocess
import re
command = 'nvidia-smi'
while True:
p = subprocess.check_output(command)
ram_using = re.findall(r'bd MiB /', str(p))[0][:-5]
ram_total = re.findall(r'/ bd MiB', str(p))[0][3:-3]
ram_percent = int(ram_using) / int(ram_total)
Или просто разделите строку str(p).split('n')
и посчитайте длину строки