☰
︎

Высокие задержки DPC в видеокартах NVIDIA GTX 10-х серий и метод решения этой проблемы

В видеокартах NVIDIA GTX 10-х серий GTX 1060, GTX 1070, GTX 1080 существует, и по сей день нерешенная компанией NVIDIA серьезная проблема высоких задержек DPC. Которая приводит к фризам, зависаниям в играх, даже при работе системы без больших нагрузок. В статье приводится метод решения этой проблемы.
1 июня 2021, вторник 00:18

Текст опубликован в личном блоге и его автор не имеет отношения к администрации сайта

 До сих пор еще, очень много пользователей имеют в своих компьютерах видеокарты Nvidia 10-ой серии GTX 1060, GTX 1070, GTX 1080. Их владельцы по причине массового безумства, называемого майнингом, так и не смогли их поменять на видеокарты 20 и 30 серии по известным причинам. Потому данная серия видеокарт на сегодняшний день является актуальной для пользователей. И я не являюсь исключением, у меня есть компьютер с видеокартой PALIT JETSTREAM GTX 1070. 


 Майнинг нас всех вынудил сделать шаг назад по поколениям комплектующих. В начале 2020 года я думал, что моя видеокарта доживает уже последние дни своей актуальности. А сейчас понимаю, что она полностью актуальна на сегодняшний день, в связи со сложившейся ситуацией на рынке видеокарт.

 В этой статье хочу поделиться с читателями о том, как компания NVIDIA в очередной раз «села в лужу» с видеокартами 10-й серии, причем конкретно так села, и до сих пор так и не смогла устранить имеющиеся с ними проблемы. Видеокарты Nvidia 10 серии прославились фризами и подвисаниями в играх, несмотря на высокие значения FPS при этом. Разбираться с этим вопросом я стал после того, как сам столкнулся с такими проблемами на своей видеокарте GTX 1070. Причем изменение настроек в любых их вариантах проблему не решило, фризы никуда не исчезли. Единственная настройка в драйвере видеокарты (в панели управления NVIDIA), которая хотя бы несколько уменьшила фризы, это включение на «ультра» режима низкой задержки. 

 И да, лучше бы у меня была видеокарта AMD RX 580 8 Gb, в каком ни будь ее топовом исполнении. У них подобных проблем не наблюдалось. При попытке выяснить причину этих фризов при помощи технических форумов, я увидел, что эта проблема высоких задержек видеокарт 10-й серии носит массовый характер, причем еще с момента выхода видеокарт этой серии в народные массы, и имеет название «High DPC Latency on Pascal GPUs». Проблема эта возникает из-за неправильной работы системных таймеров прерываний в драйвере, или из-за заложенных ошибок в GPU «Pascal». До сих пор, так окончательно и не выяснено, является ли это проблемой железа, которая была заложена в него на стадии проектирования архитектуры GPU «Pascal», или все же это программный дефект. Но судя по результату жалоб пользователей, и по частичному признанию компанией NVIDIA этой проблемы, и ее неудачными попытками решить эту проблему программным методом, путем выпуска драйверов, начиная с версии 386.95 и последующих версий с хост-фиксом (горячее исправление), можно сделать вывод, что все, же это проблема железа. 


                                                    Ответ компании NVIDIA, что проблема решена..


 

 

                                   Последующая  жалоба в компанию NVIDIA о нерешенной проблеме.

 Никакие программные ухищрения к устранению данной проблемы не привели. А драйвера начиная с версии 386.95 с хост-фиксом, это такая себе полумера, для отвода глаз, которая проблему окончательно так и не решила, и после выпуска этого драйвера жалобы так и не прекратились. У меня вообще сложилось впечатление, что компания NVIDIA специально, осознанно «завалила» этот параметр задержек, чтобы за счет его ухудшения улучшить другие, по которым оценивается производительность в синтетических тестах, таким образом, для значительного повышения FPS они и создали эту неправильную работу системных таймеров прерываний. И получается, что в тестах все прекрасно, а играть невозможно. 

 Данную проблему еще усугубляет «количество подготовленных кадров», опция этого параметра так же находится в панели управления NVIDIA. Подготовленные кадры, так сказать кадры, хранящиеся в запасе, необходимы для того, чтобы поступление их на рендеринг в видеокарту от центрального процессора было непрерывным, даже если центральный процессор «затупит», и не успеет подготовить очередной кадр в срок по какой-либо причине. Эта функция не позволяет видеокарте простаивать в момент отсутствия очередного кадра от центрального процессора, кадр берется из запаса. Так же эта функция повышает FPS (количество кадров в секунду), но она значительно увеличивает задержки DPC, и для уменьшения задержек необходимо эту функцию отключить, или свести к минимуму количество подготовленных кадров. 

 Приведу для примера измерение задержек в своем компьютере с помощью программы «LatencyMon». Она в режиме реального времени проводит измерение задержек, и в случае превышения задержек, в скобках указывает виновника.

 В первом случае отключаю драйвер видеокарты NVIDIA путем отключения устройства «NVIDIA GeForce GTX 1070» в диспетчере устройств, видеокарта в этом случае будет работать без драйвера, и провожу измерение задержек.


 И по результату измерений видно, что программа «LatencyMon» ничего касающегося видеокарты, как виновника больших задержек не указала. А указала сетевой драйвер (network driver interface specification). 

 Теперь включаю драйвер видеокарты NVIDIA путем включения устройства «NVIDIA GeForce GTX 1070» в диспетчере устройств, и провожу повторно измерение.



 И теперь видно, что программа «LatencyMon» указала виновника в больших задержках, которые составляют 551 мкс. И это драйвер видеокарты NVIDIA версии 465.89. 

 Что бы хотелось посоветовать для уменьшения эффекта фризов в видеокартах NVIDIA GTX 10-х серий:

 1. В настройках панели управления NVIDIA, в режиме управления электропитанием установить режим максимальной производительности.

 2. В настройках панели управления NVIDIA, режим низкой задержки обязательно включить на «ультра».

 3. В настройках панели управления NVIDIA, максимальное количество заранее подготовленных кадров установить на минимум.

 Сталкивались ли вы с такой проблемой в видеокартах NVIDIA GTX 10-х серий? И как вы их решили? Пишите в комментариях.