Undervolt GPU, come farlo e perché (GPU Nvidia mobile e desktop)

18 settembre 2021

Come ottenere un boost prestazionale mantenendo nei limiti temperature e consumi? Semplice, grazie all'undervolt! In questa guida illustreremo come effettuare al meglio l'undervolt sulle GPU Nvdia.

Ads

Qual è l’ideologia che accomuna molti, se non tutti, i PC gamer? Sfruttare al massimo il proprio hardware e allo stesso modo contenere le temperature. Per raggiungere questi risultati spesso si è disposti a qualsiasi soluzione, che sia un overclock estremo o un programma “miracoloso” che ci promette vantaggi esponenziali ed utopici. A tal proposito, ecco perchè sarebbe meglio evitare quest’ultimi.

Col passare degli anni, grazie allo sviluppo tecnologico e il miglioramento dei processi produttivi, ci vengono consegnate GPU sempre più potenti e con meno indice di overclockabilità, le quali spesso vanno incontro a consumi e temperature piuttosto alte. Panacea di questi mali è l’undervolt, tecnica che, come dice il nome stesso, ci permette di abbassare la tensione utilizzata dal core della nostra GPU.

Come si effettua l’undervolt? Quali sono i vantaggi e i rischi che questa operazione comporta?

Andiamo per gradi. (Possibilmente in calo).

# Che cos’è l’undervolt?

L’undervolt è una tecnica che rende possibile ridurre la tensione operativa di una componente, al fine di migliorarne efficienza energetica e temperature. Ogni componente del nostro PC opera a tensioni prestabilite, le quali influiscono su temperature e consumi del nostro hardware: in generale maggiore è la tensione, maggiori saranno i consumi e di conseguenza le temperature. L’undervolt non è una tecnica applicabile solo alla GPU, questo può essere applicato anche ad altri componenti hardware (CPU e RAM). In questa guida affronteremo esclusivamente il tema dell’undervolt su GPU NVIDIA in ambiente Windows, che siano esse desktop o mobile.

Spiegato l’undervolt, il prossimo punto da affrontare è perchè nasce la necessità di praticarlo e i suoi vantaggi pratici. Prima di tutto chiariamo i termini silicon lottery e binning:

Breve spiegazione di cosa sia il binning

Non tutti i chip sono uguali. Il binning crea delle macro-classi in cui raccoglierli: una sorta di gara a premi delle prestazioni ed efficienza.

La produzione porta ogni chip ad avere prestazioni diverse: GPU e CPU della stessa famiglia e nomenclatura possono avere prestazioni e risultati differenti. Pertanto per i produttori diventa impossibile riuscire a ottimizzare i consumi di ogni singolo chip con una tensione ad hoc. Subentrano quindi dei valori standard applicati allo stesso modo su tutti i chip.

Il lavoro dei partner AIB (Add-In-Board, vedi Asus o MSI) sarà poi di lavorare ulteriormente alle frequenze e tensioni varie sulle schede custom e alla dissipazione delle stesse. Per assicurare una stabilità vicina al 100% dei casi e delle gpu, le tensioni e valori applicati generalmente saranno quindi approssimative, ma spesso anche troppo alte e non ottimizzate.

Riassumendo: ogni GPU ha potenzialità diverse ma vengono applicati valori operativi standard per garantire la stabilità degli stessi.

Alla luce di tutto ciò, se i produttori non hanno tempo per ottimizzare al meglio le GPU, perchè non farlo noi?

RTX 3060 T

# Preparazione

La prima cosa da fare prima di cimentarsi nel processo di undervolting è procurarsi gli strumenti necessari:

Superposition e 3D Mark si sostituiscono a vicenda. Nota: MSI Afterburner è solo una skin marchiata MSI, ma funziona perfettamente con tutti i marchi esistenti (come con la nostra Gigabyte Gaming OC) e con GPU Nvidia come AMD.

Superposition è scaricabile gratuitamente, alcune funzioni saranno bloccate ma non saranno necessarie ai fini di questa guida. 3D Mark è scaricabile da Steam gratuitamente come demo. Anche in questo caso la demo è ottimale per l’utilizzo in questa guida, in quanto ci mette a disposizione Time Spy (uno dei benchmark della suite 3D Mark).

N.B: In questa guida il benchmark utilizzato è 3D Mark Time Spy.

# Calcolo dei valori stock

Iniziamo aprendo un foglio di lavoro su Sheets, qui annoteremo i vari risultati dei test:

Il foglio dovrebbe essere composto così

Impostato il nostro foglio di lavoro non ci resta che aprire HWinfo così da poter monitorare i valori di nostro interesse (evidenziati in rosso nello screen seguente): GPU Clock, GPU Core Voltage, GPU Power, GPU Temperature.

161436eee1ff23.jpeg

Conclusa la preparazione non ci resta che avviare il primo benchmark. Questo primo test va effettuato con la scheda alle impostazioni di fabbrica, quindi stock perché in caso contrario avremo dei risultati falsati.

Effettuiamo 3 benchmark consecutivi, annotiamo il risultato da ognuno dei 3 test e ricaviamo la media dei 3 punteggi (in Time Spy fare riferimento unicamente al Graphic Score) per poi scriverla nella colonna punteggio in corrispondenza della dicitura “stock” (colonna tweak). Ora, su HWinfo, andiamo a controllare lo stato dei valori prima citati leggendo il valore massimo raggiunto da ogni attributo (in verde nello screen precendente). Questo permetterà anche ai programmi come MSI Afterburner di immagazzinare dati sul funzionamento della scheda video.

Il primo valore da prendere in considerazione è il GPU Clock Max: annotiamolo in una colonna libera del nostro foglio di lavoro, quello sarà il nostro valore target in merito al Core Clock. I restanti 3 valori, GPU Core Voltage Max, GPU Power Max e GPU Temperature Max, possiamo annotarli in corrispondenza della rispettiva colonna del nostro foglio di lavoro.

Effettuati i test sulla configurazione stock ci dovremmo ritrovare in una situazione simile

161446f258a45d.jpeg

Arrivati a questo punto abbiamo tutti i dati utili per capire come la nostra scheda lavora con le sue impostazioni di fabbrica, non ci resta che iniziare ad undervoltare!

# Fase di undervolting

Apriamo MSI Afterburner, scaricato in precedenza, e appena ne vediamo la schermata principale premiamo CTRL+F. Ci ritroveremo una schermata simile

16144699d8b214.jpeg

Il seguente grafico rappresenta la curva tensione/frequenza, ovvero il rapporto che intercorre tra la frequenza e la tensione della nostra scheda video. Detta in parola semplici questo grafico imposta una tensione X che la GPU deve mantenere nel momento in cui debba raggiungere una frequenza Y target. Nello screen il punto selezionato sul grafico è in corrispondenza di 1980MHz (asse delle Y) e 1.05V (asse delle X): nel primo test con GPU stock a 1.05V di tensione massima è corrisposta una frequenza massima di 1980MHz. Come possiamo vedere tutto torna. Cosa significa quindi fare undervolt? Ridurre la tensione X in corrispondenza della frequenza Y senza andare ad intaccare quest’ultima.

La nostra frequenza target l’abbiamo già, ovvero il GPU Clock Max letto in precedenza, in questo caso 1980MHz. Dovremo quindi cercare di far andare la scheda a 1980MHz ma a meno di 1.05V. Iniziamo!

Come detto premiamo CTRL+F per aprire la curva tensione/frequenza, sull’asse delle x selezioniamo la tensione inferiore di -25mV rispetto l’ultimo GPU Core Voltage Max. In corrispondenza del punto da noi selezionato sull’asse delle X verrà selezionata la corrispettiva frequenza sull’asse delle Y, necessariamente inferiore rispetto al GPU Clock Max da noi ottenuto nei precedenti test.

Tensione di 1025 mV per 1935 MHz

Nella situazione attuale, alla tensione di nostro interesse 1.025V(=1.05V - 25mV di undervolt) non corrisponde la frequenza che a noi interessa (in questo caso specifico 1980MHz), dobbiamo quindi portare la frequenza attuale a quella da noi desidearata. Come? Effettuando un leggero overclock sul core. ATTENZIONE: quello che andiamo ad effettuare NON è un overclock reale in quanto stiamo semplicemente riducendo la tensione necessaria a raggiungere una data frequenza, non stiamo oltrepassando la frequenza massima che la scheda c’impone (obiettivo dell’overclock).

Rechiamoci sulla schermata principale di MSI Afterburner, nel campo Core Clock inseriamo il valore X per raggiungere la frequenza di nostro interesse, in questo caso +45MHz(=1980Mhz-1935MHz) e premiamo su applica.

Tensione di 1025 mV per 1980 MHz

Possiamo ben vedere come ora a 1.025V corrispondano esattamente 1980MHz, ovvero il nostro valore target! Ma non è finita qui, in quanto ora dobbiamo dire alla scheda di non superare la tensione e la frequenza target “appiattendo la curva”.

# Cosa vuol dire appiattire la curva?

Far sì che a tutte le tensioni successive a quella target corrisponda sempre la stessa frequenza in quanto la GPU a parità di frequenza utilizza sempre la minor tensione utile.

Sul grafico tensione frequenze clicchiamo, tenendo premuto Shift sinistro, vicino al punto della curva immediatamente successivo a quello di nostro interesse (esempio: se il punto d’interesse e 1.025V dobbiamo cliccare sul punto successivo, 1.031V) e trasciniamo il mouse verso destra fino a selezionare tutto quella parte del grafico i cui valori sono fuori dal nostro target al fine di avere un risultato simile a questo.

ATTENZIONE: non bisogna cliccare direttamente sul punto in questione, dobbiamo cliccare su un punto vuoto a lui vicino così da poter trascinare la finestra di selezione (come quando selezioniamo più cartelle sul desktop).

161446cdf7b2b3.jpeg

Possiamo ben vedere come metà curva del grafico sia selezionata (parte destra) e metà non lo sia (parte sinistra). Ora, questa volta NON premendo Shift Sinistro, clicchiamo su un qualsiasi punto appartentente al grafico, questa volta cliccandoci sopra evidenziandolo, e trasciniamolo giù fino a fargli toccare l’asse delle X. In questo modo:

161446e10015cb.jpeg

Non ci resta che fare un click su applica (in rosso nello screen qui sopra) e la curva verrà automaticamente allineata al resto del grafico, facendo così che la tensione massima per una determinata frequenza sia quella da noi scelta! Complimenti, abbiamo terminato la prima fase di undervolt!

161446d320a495.jpeg

È sempre bene ricordare che il processo di undervolting non è da effettuarsi una sola volta, magari su una tensione o due, ma è da effettuarsi ciclicamente fino a trovare il massimo potenziale della scheda. Risulta fondamentalmente usare la massima attenzione nell’appuntare in modo corretto punteggi e valori così da poter trovare la configurazione più efficiente per la propria GPU.

# LOOP

Finita qui? Per niente, ora inzia il lavoro.

Arrivati a questo punto sappiamo come effettuare l’undervolt, ora non ci resta che eseguire questi passaggi ciclicamente fino a trovare il miglior compromesso tra prestazioni/efficienza/stabilità:

  1. Resettare HWinfo, prima d’iniziare un benchmark con tensione e/o clock differenti, premendo sull’icona ad orologio in basso a destra (evidenziato in arancione nello screen precedente).
  2. Applicare un piccolo undervolt (consigliabile -25mV per volta. Ricorda di aumentare il clock per far corrispondere ad una determinata tensione il nostro valore di Clock target)
  3. Effettuare 3 benchmark consecutivi.
  4. Annotare valori d’interesse (Media dei 3 punteggi e GPU Core Voltage Max, GPU Power Max e GPU Temperature Max).
  5. Confrontare i punteggi, consumi e temperature con le configurazioni precedenti.
  6. Ripetere ciclicamente i punti precedenti (1-2-3-4) fino a che non si vada incontro a forti decrementi prestazionali, artefatti, crash o BSOD.
  7. Arrivati al punto d’instabilità applicare la migliore configurazione stabile tra le precendenti quindi eseguire 5 bench consecutivi. Se stabile testare sui giochi. In caso d’instabilità testare la successiva miglior configurazione stabile tra le precedenti.

NOTA PER I PORTATILI: Trovata la tensione minima stabile é possibile ridurre di -15MHz alla volta il Core Clock Target, in particolar modo nei notebook questo si traduce in maggiore stabilitá termica ed energetica. Abbassiamo quindi il core di -15Mhz e ripetiamo i passaggi 1-2-3-4, se i risultati dei benchmark sono favorevoli e non si é andati in contro a crash ripetere l’undervolt fino ad ottenere instabilitá, dopodiché togliere ulteriori -15MHz e rieffettuare il ciclo di test finché i risultati risulteranno favorevoli.

# Risultati

Se abbiamo effettuato al meglio tutti i passaggi seguendo attentamente la guida, e ripetuto i cicli un giusto numero di volte, dovremmo trovarci con un foglio di calcolo composto in maniera simile:

161446c337a5c1.jpeg

Possiamo notare come i risultati avuti ci hanno garantito oltre ad un guadagno prestazione di circa il 4% anche qualche grando i meno sulle temperature e un ottimizzazione dei consumi decrementando la potenza di 5W e la tensione di 100mV.

16145cd9d5be50.jpeg

I vantaggi che l’undervolt comporta sono differenti da chip a chip, come detto in precedenza a causa della silicon lottery, quindi potremo avere margini di guadano superiori e inferiori in base a quanto sia fortunata la nostra GPU. I risultati migliori è più facili notarli su custom low/mid-end in quanto si vanno ad allegerire limiti fisici meno pressanti su custom di fascia piú alta. La GPU usata nella guida è una Gigabyte 3060TI Gaming OC, quindi preoccata (parzialmente ottimizzata), ed essendo già stata rifinita in fase di produzione ci concede meno margine di manovra (nonostante ciò i guadagni ottenuti non sono comunque trascurabili).

# Vantaggi

  • Incremento prestazionale
  • Maggiore efficienza energetica
  • Temperature più basse

Consigliato in particolar modo sui PC portatili.

# Considerazioni finali

L’undervolt è un tweak che richiede tempo per essere perfezionato ma che offre grandi vantaggi sia a livello prestazionale che in rapporto alla durata vitale e alla quantità di stress apportata al nostro hardware. È un processo che può essere sempre perfezionato e la cui stabilità dipende spesso dalla tipologia di carico su cui la scheda deve lavorare, non è raro infatti che un undervolt stabile per mesi possa crashare dopo lungo tempo magari su un gioco mai provato prima. Ovviamente non c’è da demoralizzarsi ma solo da perfezionare (magari iniziando a togliere 12mV\6mV piuttosto che 25mV per volta). L’undervolt inoltre è propedeutico anche per un leggero overclock, in quanto una volta trovata la stabilità possiamo scegliere di osare e andare oltre il clock massimo di default della nostra GPU senza rinunciare all’ottimizzazione energetica e in temperature che l’undervolt comporta. Come abbiamo notato in precedenza, infatti, il rapporto che intercorre tra undervolt/overclock è strettamente correlato.

Quello dell’undervolt è un mondo in continua evoluzione, semplice e che richiede solo una buona dose di tempo e pazienza ma che allo stesso modo offre grandi soddisfazioni a chi vuole tirare fuori il massimo dalla propria scheda volgendo un occhio all’efficienza.

Non a caso Undervolt is the new Overclock!