AMD P-State: proposta la patch epp_boost che alza gli 1% low su Steam Deck

Ieri alle 14:37

Le patch epp_boost per il driver AMD P-State alzano il clock mediano dello Steam Deck da 2,43 a 3,5 GHz in Civilization VI, in attesa della revisione.

Ads

Una serie di patch proposte sulla mailing list del kernel Linux migliora del 31,8% gli 1% low su Steam Deck: il merito è di una nuova funzione del driver AMD P-State chiamata epp_boost, testata con il benchmark di Civilization VI.

Dietro il lavoro c’è David Vernet, kernel hacker che di mestiere lavora in Meta. La funzione introduce un Energy Performance Preference gestito per singolo core, pensato esplicitamente per il gaming.

Il guadagno riguarda gli 1% low: gli FPS medi restano identici, cambia la costanza dei frame. — Crediti: Future

Il problema nasce dal modo in cui i giochi usano la CPU. Il thread principale si blocca per pochi istanti a ogni frame in attesa della GPU, su un futex o su una fence. Agli occhi del driver quelle micro-pause somigliano a un calo di utilizzo, e la risposta è una frequenza più bassa; il core, intanto, è già tornato al lavoro.

Vernet lo spiega così nella proposta: “Ogni pausa fa decadere il segnale prestazionale dell’hardware, quindi le raffiche successive al risveglio partono da un punto di lavoro basso e gonfiano la latenza di coda, pur con la CPU sostanzialmente sempre occupata quando c’è lavoro da fare”.

I numeri raccontano bene la situazione. Nel benchmark di Civilization VI il 98% di occupazione del core principale di Steam Deck non bastava a tenerne alto il clock, fermo a una mediana di 2,43 GHz, che con la patch attiva arriva invece a 3,5 GHz. Ne beneficia anche il frame time al 99° percentile, in miglioramento del 4,1%, senza però che gli FPS medi cambino.

Alla base c’è una soglia: superato il 50% di occupazione — misura che arriva dal campionamento della residenza C0, effettuato su ciascun core a intervalli non superiori ai 10 ms — l’EPP di quel core viene spinto in via temporanea sul massimo. Il ritorno alla policy ordinaria scatta dopo 300 ms senza che arrivi un nuovo campione di attività. Forzare globalmente la modalità performance sarebbe stato più semplice, ma avrebbe pesato troppo sui consumi di un palmare.

Il test è stato eseguito con il benchmark di Civilization VI, scelto per la sua riproducibilità. — Crediti: Future

Al momento servono un kernel modificato e il parametro amd_pstate.epp_boost=1. Le patch devono ancora superare la revisione, in particolare quella degli ingegneri Linux di AMD, prima di un eventuale ingresso nel kernel mainline.

Fonti: VideoCardz, PC Gamer, Guru3D, Phoronix, Steam Deck HQ