Использование GPU MHZ

Я занимаюсь разработкой агента мониторинга для карт с графическим процессором, который способен обеспечивать телеметрию в реальном времени с использованием библиотек CUDA и NVML.

Я хочу немного больше понять работу ядра GPU по сравнению с тем, как работают ядра Intel/AMD CPU.

Одна из формул, которую можно использовать для процессоров: (cpumhz или средняя пиковая загрузка процессора (МГц)) следующим образом:

((CPUSPEED * CORES) /100) * CPULOAD = Workload average peak CPU utilization

Более подробная информация здесь https://vikernel.wordpress.com/tag/vmware-formulas/

Поэтому было бы правильно, чтобы та же формула могла быть применена к графическим процессорам. Исключение составляют ядра / шейдеры CUDA вместо "CORES", или я мог бы просто умножить текущую тактовую частоту на фактическое использование тактовой частоты процессора, поскольку у графического процессора есть тактовая частота ядра для 1000 ядер / шейдеров.

Например:

((GRAPHICS_MHZ * CUDA_CORES) /100) * GPU_LOAD = GPU MHZ utilization

2 ответа

Проверьте gpustat, это обертка nvidia-smi,


И GPUtil, он может получить максимальную текущую относительную нагрузку для графического процессора

Я думаю, что нашел свой ответ, основываясь на том, как работает видеокарта. Благодаря тому, что каждое ядро ​​работает параллельно, они работают намного эффективнее, чем ядро ​​процессора из того, что я прочитал.

С ядром процессора вы можете использовать приведенную выше формулу, но если вы хотите увидеть МГц, используемый на карте GPU, вы можете просто использовать:

(GRAPHICS_MHZ * /100) * GPU_LOAD = GPU MHZ utilization

Хорошо, что возвращаемый вами GPU_LOAD - это другой расчет, предоставляемый с карты GPU, чем тот, который вы получаете с карты CPU. Если у кого-то другое мнение, я бы с удовольствием его услышал.

Другие вопросы по тегам