Если вы сравниваете производительность (например, как я наш Vulkan-бэкенд vs PyTorch), важно обеспечить воспроизводимость бенчмарков, исключив влияние системных факторов. Например динамическое управление частотами или рандомизации памяти. Вот минимальный набор команд для Linux-систем с NVIDIA GPU с которых можно начать:
🖥️ GPU (NVIDIA)
# Включить persistence mode (чтобы драйвер не «усыплял» GPU)
sudo nvidia-smi --persistence-mode=1
# Зафиксировать частоты (пример для RTX 4070)
sudo nvidia-smi --lock-gpu-clocks=3105 # MHz (core)
sudo nvidia-smi --lock-memory-clocks=8001 # MHz (VRAM)
> ⚠️ Значения частот подбирайте под вашу модель GPU. Их можно найти в выводе
nvidia-smi -q -d SUPPORTED_CLOCKS.⚙️ CPU
# Переключиться в режим максимальной производительности
sudo cpupower frequency-set -g performance
# Зафиксировать минимальную частоту (например, 3.9 ГГц)
sudo cpupower frequency-set -d 3900000
> Это позволяет задать более-менее предсказуемый диапазон частот для процессора.
🧠 Дополнительно: уменьшаем системный «шум»
# Отключить ASLR (Address Space Layout Randomization)
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
>Это повышает воспроизводимость времени запуска и распределения памяти — особенно важно при микро-бенчмарках.
💡 Другие рекомендации:
- Закройте фоновые приложения
- Отключите энергосбережение в BIOS/UEFI (C-states, P-states)
- Запускайте тесты несколько раз и берите медиану
- Используйте
taskset или numactl, чтобы изолировать ядра CPU- Для серверных GPU: отключите коррекцию ошибок ECC (`nvidia-smi -e 0`), если это не критично.
Такой подход позволяет добиться воспроизводимых результатов — без него сравнение «на глаз» может ввести в заблуждение.
P.S. Эти настройки временные — после перезагрузки всё вернётся к стандартному поведению. ⚠️ Не применяйте их на продакшен-машинах без понимания последствий!
#GPU #Benchmarking #Vulkan #PyTorch #ML #Linux #Performance #Adept