App que acha sozinho os melhores pontos da sua placa NVIDIA. Você deixa uma carga rodando (FurMark, um jogo, o que for), escolhe o que quer buscar — undervolt, overclock ou eficiência — e ele varre, mede e ranqueia os candidatos. No fim, salva o escolhido como perfil do MSI Afterburner.
Suporta RTX 40xx (Ada) e RTX 50xx (Blackwell). Nada é hardcoded por modelo: o app lê da própria placa a curva V/F, os limites de power e o range de memória que o driver permite.
Ferramentas de tuning mostram sliders; nenhuma responde "qual é o melhor ponto da MINHA placa?". Achar isso na mão é dezenas de ciclos de aplicar → medir → anotar → repetir — e é fácil medir errado sem perceber. Este app automatiza o ciclo e carrega as guardas que impedem medição falsa.
- Abra o GPU-Z (é dele que sai a tensão real — sem isso não dá pra validar undervolt) e o RTSS/overlay do Afterburner (fps).
- Rode
GPUTuner.bat(pede admin — precisa pra power limit e trava de clock). - Medir stock pra estabelecer a referência → escolha o modo → BUSCAR.
- Clique num resultado → Salvar como perfil → vai pro slot do Afterburner que você
escolher. Aplicar depois:
MSIAfterburner.exe -ProfileN.
O app abre e fecha a carga sozinho (FurMark, se instalado) — você não precisa preparar nada. Se preferir medir dentro de um jogo (mais realista que FurMark), deixe o jogo rodando e escolha ele em "Medir usando"; nesse caso o app não mexe no processo, só mede.
- Monitor ao vivo: tensão, clock de core/memória, watts, temp da GPU e da VRAM, carga
e fps, a cada segundo. Mostra a fonte (
GPU-Z= com tensão real,nvidia-smi= sem). - Medir perfil atual — mede o que estiver aplicado sem alterar nada. É como você descobre quanto rende o perfil que já usa.
- Medir stock (referência) — aplica stock, mede e guarda como referência. A partir daí a tabela ganha a coluna %stock e o log mostra delta de watts e eficiência.
Slider de 0-100% que faz duas coisas:
- Aplica na hora que você solta o slider — dá pra usar como controle de fan avulso, independente de estar buscando algo.
- Vale durante as buscas e no perfil salvo — o fan escolhido é gravado no perfil.
Tem também a caixa automático, que devolve o controle pra curva da placa (zero-RPM em idle volta a funcionar).
O fan é aplicado via NVAPI, não pelo campo de perfil do Afterburner — em várias placas o Afterburner simplesmente ignora o fan gravado no perfil.
| Modo | O que faz | Quando usar |
|---|---|---|
| Undervolt | Menor tensão que segura o desempenho (você define a perda máxima aceita, ex. 3%) | Menos calor/consumo mantendo fps |
| Overclock | Sobe o alvo de clock até parar de ganhar fps ou dar problema | Máximo desempenho |
| Eficiência | Varre o power limit e acha o melhor fps/W + o "joelho" da curva | Melhor performance por watt |
Placas com muita folga de potência (ex.: BIOS de 800W num modelo de 575W) podem ignorar o cap de tensão — a placa roda alto mesmo com a curva capada. O app detecta isso (coluna
cap) e avisa pra usar o modo Eficiência, que age via power limit e sempre morde.
Cada guarda existe porque o artefato correspondente já invalidou medições reais durante o desenvolvimento:
| # | Artefato | Guarda |
|---|---|---|
| 1 | Janela da carga redimensionada → fps incomparável | Mede o tamanho da janela; invalida se mudar |
| 2 | Duas instâncias de FurMark → carga dupla | Conta instâncias antes e durante |
| 3 | Cap de tensão que não morde → mede stock achando que mediu OC | Compara tensão real (GPU-Z) com o setpoint |
| 4 | Perfil escrito no cfg errado (cross-flash muda o subsystem) | Descobre o cfg pelo device/subsystem atual |
| 5 | Deriva térmica entre rodadas | Re-mede a âncora (stock) a cada busca |
- Windows + Python 3 (usa só a stdlib —
tkinterjá vem junto) - MSI Afterburner (o app escreve a curva V/F no cfg dele)
- GPU-Z aberto (tensão real) e RTSS (fps) — opcionais, mas sem eles a busca perde precisão
- Driver NVIDIA (
nvidia-smino PATH) - Rodar como administrador
gputuner.py GUI (tkinter, sem dependência externa)
gputuner_core.py detecção, telemetria, guardas, aplicação de perfil
gputuner_search.py motores de busca (undervolt / overclock / eficiência)
GPUTuner.bat launcher com elevação
tools/ utilitários CLI independentes:
nvfan.py fan via NVAPI (o Afterburner ignora fan de perfil em várias placas)
gpuz_read.py lê sensores do GPU-Z pela memória compartilhada
gpu_monitor.py monitor CLI (nvidia-smi + fps do RTSS)
gpupower.py power limit, inclusive abaixo do piso do vBIOS (via cap de clock)
- Undervolt/OC instável pode travar ou reiniciar o PC. Não danifica, mas salve seu trabalho antes. O app restaura o stock ao terminar e tem botão Restaurar stock.
- FurMark é ótimo pra térmica/potência, mas tolera clock que jogo real crasha. Valide o perfil escolhido em jogo (ou OCCT com detecção de erro) antes de adotar.
- O app usa o slot 4 do Afterburner como rascunho durante a busca — não guarde nada importante nele.
- Testado a fundo numa RTX 5090. Em RTX 40xx a lógica é a mesma (nada hardcoded), mas o comportamento do cap de tensão costuma ser mais previsível que na 50xx.
MIT