domingo, 25 de abril de 2021

O uso de drivers DCH da nVidia impacta na performance? Fiz os testes

 Até ontem (literalmente) eu não tinha sequer ouvido falar em "driver DCH". E como eu acompanho o setor de hardware para PCs e placas de vídeo diariamente há décadas, me pergunto quantos nesse meio conhecem. E fiquei sabendo por acaso, poderia passar a vida sem saber. O tipo de driver instalado,  DCH ou não, é praticamente transparente para o usuário comum, e muito provavelmente vai ser o DCH. Este artigo é uma curiosidade técnica, que deve interessar mais aos entusiastas. 

Fiquei sabendo deste tipo de driver por acaso. Estava instalando o Nicehash miner também apenas por curiosidade, para conhecer e me divertir, e recebi a mensagem do aplicativo que o driver DCH tinha sido detectado e era preferível usar o driver Standard. E digo que o motivo de experimentar o Nicehash era apenas brincadeira, para conhecer e aprender na prática as diferenças de minerar direto na pool (que é o que eu normalmente faço), para reforçar o quanto improvável foi ter esbarrado nesse termo DCH. A placa de vídeo usada é uma nVidia GTX 1080, e o que descrevo a seguir se refere a drivers nVidia, mas pelo que entendi o mesmo pode ocorrer de forma análoga com AMD.

Antes de mais nada, o que são drivers DCH? Não vai ser objetivo deste artigo se aprofundar nisso, mas apenas para deixar as referências, é um padrão criado pela Microsoft a partir de determinada build do Windows 10 e requer compatibilidade com a Universal Windows Platform (UWP). DCH vem de "Declarative Componentized Hardware", o driver de hardware deve ser declarativo e "componentizado" (mas aparentemente não existe esta última palavra em português... então leia-se "em componentes"). Mais detalhes sobre o assunto na documentação da Microsoft e da Dell. O que eu acho importante ter em mente disso tudo que a MS, fabricantes e integradores estão reforçando este padrão.

E de fato, isso explica porque não tinha conhecimento dele. Os drivers não-DCH da nVidia já estão bem escondidos. Normalmente não nos deparamos com esta opção de DCH ou Standard. Se instalamos o Windows 10 do zero e ligamos na Internet, normalmente o próprio Windows já instala algum driver da placa de vídeo, e vai ser o DCH, que é o padrão que eles estão querendo reforçar. Não confundir com o "Standard" (padrão) da nomenclatura da nVidia. E por outro lado, se vamos no site da nVidia e navegamos para buscar os últimos drivers para instalar, caímos em uma página em que nem existe a opção não-DCH (Standard).

Mas ela (ainda) existe. Seguindo os tutoriais da Nicehash é indicado um link direto para o site da nVidia, cuja página tem o título "Advanced Driver Search", e que reproduzo em parte na imagem abaixo. Note o combo box com o título "Windows Driver Type" e o valor "Standard", que também pode ser "DCH". E assim que se baixa o driver não-DCH, ou Standard. Nesta ocasião também aprendi sobre a existência de outro tipo de driver, o "Studio", em contraposição ao "Game Ready". Ele não aparece para selecionar na busca, mas na lista de resultado aparecerão drivers desses dois tipos. Não é exatamente o tópico deste artigo, mas apenas para não ficar no ar, os drivers Studio são mais voltados para criadores de conteúdo e tentam ser mais estáveis neste cenário de uso, enquanto que os Game Ready recebem melhorias mais frequentes para alcançar performance conforme novos títulos de jogos vão sendo lançados. Mas existem drivers Standard e DCH tanto dos tipos Game Ready quanto Studio, ou seja, todas as combinações.




Para saber qual tipo de driver está instalado no momento no seu PC com placa de vídeo nVidia, basta abrir o painel nVidia e clicar no link  "Informações sobre o Sistema", embaixo da barra lateral esquerda. Aparece uma janela como esta abaixo, onde vemos na lista "Detalhes", na segunda linha, que o PC no momento está com o driver Standard. Isso depois que eu fiz o procedimento a descrito a seguir para mudar, pois os dois PCs que tenho estavam inicialmente com drivers DCH.





Baixei o driver Standard  primeiro naquele PC em que instalei o app da Nicehash e a mensagem de alerta sumiu. O processo de instalação é trabalhoso, porque requer desinstalar todo o software nVidia existente. Para isso recomenda-se desligar da Internet (se for cabo Ethernet, desconectando o cabo ou desativando a conexão no painel de controle, se for Wifi basta ir no ícone da conexão na barra de tarefas) justamente para evitar o Windows de já baixar o driver DCH automaticamente nesse meio tempo, como vimos antes. É necessário reiniciar o Windows algumas vezes até completar o desinstalação. Parece que existe um aplicativo de desinstalação de drivers no site guru3D (o DDU), mas eu nunca usei e normalmente não preciso desinstalar tudo (a minha prática normal é atualizar por cima pelo nVidia Experience) achei melhor não instalar mais nada no PC. Na realidade me revoltei e desta vez não instalei o Experience também, que requer login e a única coisa dele que eu uso é justamente a atualização de driver. Não é necessário desinstalar o Painel nVidia.

Mas a dúvida que fiquei logo em seguida foi a do título deste artigo. Será que o driver DCH impacta positivamente ou negativamente de alguma forma na performance? Em nome da ciência me dispus a repetir o processo enfadonho descrito acima em outro PC, mas rodando o 3DMark antes e depois. 

Inicialmente rodei o benchmark Time Spy com o driver original DCH, fechando antes todas as demais aplicações, menos o Steam, que é necessário para o 3DMark. Em seguida refiz o processo de desinstalação manual e reinstalei o driver Standard, também sem o Experience, e na mesma versão do DCH (466.11). Os resultados podem ser vistos abaixo:

Teste: Time Spy
Configuração do PC: Ryzen 7 3700X, 32 GB RAM @ 3200, nVidia GTX 1080
                                
Driver DCH           Geral: 7.616        GPU: 7.402
                                         CPU: 9.109

Driver Standard      Geral: 7.651        GPU: 7.442
                                         CPU: 9.277 

Em tempo, naquele primeiro PC da mineração também nào observei mudança no hash rate antes e depois da troca do driver. A restrição da Nicehash quanto ao DCH provavelmente é apenas referente à incompatibilidades.

Eu confesso que gostaria de achar uma diferença significativa, apesar de racionalmente já poder prever que isso não iria fazer sentido. A nVidia não iria penalizar a performance do driver "game ready" mesmo sendo DCH. O fato é que a diferença é insignificante e pode ser considerada dentro de uma margem de erro. Eu poderia ter rodado mais vezes para tirar média nos dois casos, mas só lembrei disso depois e acho que seria um esforço metodológico desnecessário para esta situação. Outro teste interessante seria comparar os driver Studio com o Game Ready. Mas para esta comparação talvez mostrar alguma diferença deveriam ser feitas baterias de testes em jogos AAA recentes, o que para mim é inviável, mas fica a dica para quem quiser tentar.

Concluindo, nada se perde em performance por usar o driver Standard (o que é uma boa noticia para quem minera no PC gamer com o Nicehash nas horas de inatividade), mas também nada se ganha e não vale a pena trocar o driver DCH a não ser em situações bem específicas como essa do minerador. E alguém pode ter notado o "ainda" entre parêntesis alguns parágrafos acima, que foi uma ironia. Ao que me parece o driver Standard só está disponível por compatibilidade, mas a tendência é isso desaparecer assim que versões mais antigas do Windows saiam do ciclo de vida.