Сейчас я расскажу очень странную историю. Тяжело представить, что происходит это в 2017 году, да еще и с продуктом от компании Nvidia, где работает бесчисленное число программистов, регулярно обновляющих как драйвера, так и свои программные продукты (например, Geforce Experience).
Решил я ради спортивного интереса протестировать производительность SLI. Давно меня привлекала данная технология, а тут как раз попала в руки видеокарта GTX 690. Видеокарточка слегка устаревшая (в основном из-за 2Гб оперативки на каждое ядро), но за счет SLI всё еще актуальная во многих современных играх.
В качестве объекта тестирования я выбрал Metro 2033 Benchmark и протестировал игру в максимально тяжелом режиме как в режиме Single-GPU, так и при активации SLI.
Напомню, GTX 690 представляет собой два полноценных ядра GTX680 с чуть сниженными частотами (порядка 10%).
Итак, в программе были выставлены следующие настройки:
Тест был повторен порядка 100 раз, а результаты (Avg FPS) оказались следующими:
SLI on: ~62,9 FPS
SLI off: ~45,8 FPS
Как видно по цифрам, прирост от SLI составил всего лишь 37%.
Я знал, что SLI не даст 100% прибавка, но меньше 50%? Этого я никак не мог ожидать.
Посмотрел загрузку ядер в GPU-Z, она составила порядка 60-80%. При этом, ядра процессора i7-7700K использовались менее 50%.
А затем я просто стал экспериментировать - нужно же было выяснить причину, что мешать игре полностью нагрузить видеокарту.
Обновил и переустановил полностью драйвера на видеокарту.
Покопался в панели управления Nvidia, попробовал разные настройки.
Отключил Fraps.
Выгрузил GPU-Z.
Закрыл браузер.
Отключил оверлей стима
... ничего не помогало.
И оставалась последняя "опция", о которой я всерьез и не думал - отключить оверлей Geforce Experience (опция называется "внутриигровое наложение").
К слову, Geforce Experience я ставил вместе с драйвером, но использовал её лишь для записи игрового процесса - очень уж полезная функция, которая почти не нагружает CPU и GPU (число кадров в секунду падает совсем незначительно - максимум на пару процентов). Никаких "оптимизаций" игровых настроек с её помощью никогда не использовал, как и отключил сразу же "режим повтора" (который умеет записывать и "держать в памяти" последние 15 минут игрового процесса).
Какую нагрузку на видеокарту мог нести включенный оверлей Geforce Experience? Да никакой, теоретически.
Однако на практике оказалось, что оверлей Geforce Experience серьезно ограничивал производительность SLI.
Итак, после выключения опции "внутриигровое наложение" использование ядер GPU моментально выросло... до 98-99% по каждому ядру!
Avg.FPS вырос следующим образом:
SLI on: 62,9 77 FPS
SLI off: 45,8 FPS
Прирост от SLI: 68%.
Это уже вполне реальные цифры.
Виновник был найден, но я до сих пор не могу поверить, как программисты NVidia могли до такого "докатиться". Версия драйвера, панели Nvidia и виновника проблемы Geforce Experience - последние. Впрочем, откат на установку версии полугодичной давности эффекта не дал.