Intel PresentMon: a cose serve e come funziona

14 settembre 2023

Intel ha introdotto qualche anno fa il proprio leggero analizzatore delle prestazioni chiamato PresentMon, che recentemente è stato aggiornato con una grafica rinnovata e diverse funzioni molto interessanti e comode.

Ads

Le impostazioni #

PresentMon fornisce i frame rate, i tempi dei frame ed una serie di altre metriche in tempo reale, o le registra nel corso di un periodo, per quasi tutti i giochi. Supporta DirectX 9 attraverso 12, OpenGL e Vulkan ed è disponibile per Windows 10 e 11.

intel presentmon impostazioni

Il menù è suddiviso in quattro sezioni: #

Processi e Sovrapposizione:
Possiamo selezionare il processo in esecuzione che desideriamo monitorare. PresentMon può anche selezionarlo automaticamente. Inoltre, è possibile impostare una scorciatoia per attivare o disattivare la sovrapposizione che mostra tutte le informazioni rilevanti.

Impostazioni Display:
L’overlay offre tre layout predefiniti tra cui scegliere, ma possiamo anche personalizzarlo con metriche come l’utilizzo della CPU, la temperatura della GPU, i tempi di rendering della GPU, ecc.

Registrazione:
Se desideriamo registrare i valori nel corso di un determinato periodo di tempo, è prevista una scorciatoia dedicata (configurabile).

Archiviazione:
Questa sezione ci consente di accedere alla cartella dove vengono salvati i valori registrati e le impostazioni personalizzate.

presentmon come funziona

Nella sezione Elaborazione dati, è possibile modificare l’intervallo di tempo in cui PresentMon controlla l’API grafica per le informazioni. Il valore standard è di 100 millisecondi (10 Hz), adatto per la maggior parte dei casi. Allo stesso modo, è possibile regolare la frequenza di monitoraggio per potenza e temperatura.

In questa sezione è anche possibile modificare la durata per la quale vengono determinati i valori medi. Il valore predefinito è di 1000 millisecondi (il che significa che la media viene calcolata ogni secondo).

overlay

La sezione di cattura riguarda la creazione di un file di riepilogo di qualsiasi cattura e un’impostazione per fare in modo che PresentMon ignori i processi più comunemente eseguiti in Windows, in modo che non provi accidentalmente a catturarli invece del gioco.

Esaminiamo ora cosa viene mostrato nell’overlay quando si seleziona uno dei tre preset:\

  • Base: mostra solo tre metriche, tutte correlate tra loro: in grassetto è la frequenza fotogrammi media, seguita dal valore del 99° percentile - questo valore è lo stesso dei nostri valori 1% Low quando valutiamo CPU e GPU.
  • Focus GPU: mostra le stesse metriche della Base, ma aggiunge anche la temperatura della GPU e l’utilizzo della memoria.
  • Potenza/Temperatura: mostra le metriche della GPU Focus, ma aggiunge anche la potenza della GPU e la temperatura del VRM.

La scelta del preset da utilizzare dipende dalle proprie esigenze. Se siamo interessati solo alla frequenza fotogrammi media, la Base è sufficiente. Se si desidera anche monitorare la temperatura e l’utilizzo della GPU, è possibile utilizzare la GPU Focus. E se si desidera monitorare anche la potenza della GPU e la temperatura del VRM, è possibile utilizzare la Power/Temp.

In generale, consigliamo di utilizzare il preset più semplice che soddisfi le proprie esigenze. Questo contribuirà a ridurre gli elementi presenti nell’overlay e a migliorare le prestazioni.

presentmon test half life 2

Il preset GPU Focus è focalizzato sulla scheda grafica e mostra molte informazioni utili. Copre tutto il preset di base, ma aggiunge qualcosa di particolarmente utile: il frame time.

Il frame time è il tempo medio in millisecondi tra ogni istruzione “Present” emessa dall’API grafica, che indica al sistema di iniziare a visualizzare il frame sul monitor. Ogni componente del PC e il gioco stesso possono influenzare questo intervallo di tempo, ma i contributori più significativi sono tipicamente la CPU e il sistema nel suo complesso.

I frame time elevati possono indicare problemi di prestazioni, come la stuttering. Un breve picco verso l’alto indica un rallentamento temporaneo, che può essere causato da un problema che sta causando un breve ritardo.

In generale, un frame time inferiore è migliore, poiché indica che il PC è in grado di visualizzare i frame più rapidamente. Tuttavia, è importante notare che anche i frame time elevati possono essere accettabili, a seconda del gioco e delle impostazioni grafiche.

Ad esempio, un frame time di 100 millisecondi può essere accettabile per un gioco di strategia a turni, ma potrebbe essere troppo alto per un gioco sparatutto in prima persona.

intel presentmon come funziona

GPU Busy time è la nuova funzionalità di Intel in PresentMon: è una misura di quanto tempo il processore grafico impiega per eseguire il rendering del frame; il timer inizia nel momento in cui la GPU riceve il frame da una coda, fino al momento in cui sostituisce il buffer del frame completato nella VRAM con uno nuovo.

Se il tempo di frame è molto più lungo del tempo di attività della GPU, le prestazioni del gioco sono limitate da fattori quali la velocità del CPU. Per ovvie ragioni, il primo non può mai essere più breve del secondo, ma possono essere quasi identici e idealmente questo è ciò che si desidera in un gioco.

Se guardiamo al nostro esempio di Half-Life 2, il tempo medio della GPU è di 1,42 ms, mentre il tempo medio del frame è di 3,46 ms.

Ciò significa che il gioco è limitato dal CPU, poiché il tempo necessario per eseguire il rendering del frame è maggiore del tempo necessario alla GPU per eseguire il rendering del frame. Per migliorare le prestazioni del gioco, è necessario aggiornare il CPU o ridurre il carico della CPU.

half life 2

La scheda grafica contribuisce solo al ~40% del tempo totale necessario per visualizzare un frame sul monitor; il resto è influenzato dalla CPU, dalla RAM, dal sistema operativo e dal gioco stesso. Questo è confermato dal fatto che l’utilizzo della GPU reported è in media intorno alla stessa percentuale.

Vengono fornite informazioni come la velocità di clock della GPU, le RPM della ventola della scheda grafica, le tensioni, la potenza e così via; tuttavia non viene riportata correttamente la velocità delle ventole.

Il valore “Memoria GPU utilizzata” non rappresenta l’utilizzo effettivo. Invece, misura ciò che è definito “Budget locale” in Microsoft PIX, uno strumento di analisi a livello di sviluppatore. Questo è fondamentalmente simile all’allocazione della VRAM. Pertanto, sebbene fornisca alcuni spunti, non è il metrica più precisa per determinare quanta memoria della tua scheda è effettivamente in uso.

gpu fps

Il preset Power/Temp non sorprende, ma è forse più utile del preset Basic perché fornisce dettagli aggiuntivi senza essere troppo affollato.

Proseguendo con i test è risultato che diversi valori vengono visualizzati in maniera errata o con i campi a schermo completamente vuoti; sintomo del fatto che l’applicativo è ancora in versione beta e non raccoglie i dati alla stessa maniera di altri programmi come, per esempio, GPU-Z.

test gpu presentmon overlay

Abbiamo raccolto molti dati e l’insieme di informazioni qui sopra offre una chiara visione di cosa accade all’hardware durante l’esecuzione di Half-Life 2.

Notiamo subito che l’utilizzo della GPU non è particolarmente elevato, mentre la CPU mostra una percentuale molto bassa, oltre che un considerevole numero di frame persi.

Tutto diventa più comprensibile quando si tiene presente che, per impostazione predefinita, il motore di gioco di Half-Life 2 limita il frame rate a 300 fps. Questo limite può essere superato mediante un comando nella console, ma è proprio questo il motivo per cui stiamo perdendo così tanti frame. Il motore di gioco sembra generare ulteriori frame, ma poi non li invia alla GPU o li memorizza, per poi rimuoverli dalla coda di rendering.

Il tempo di latenza del rendering rappresenta il numero di millisecondi che un frame trascorre nella coda, sommato al tempo necessario per il rendering effettivo. Il tempo di utilizzo della GPU mostra che la maggior parte di questa latenza è dovuta alla coda stessa. Naturalmente, c’è sempre la possibilità che PresentMon non stia riportando correttamente questi valori, considerando che Half-Life 2 è ormai un vecchio gioco DirectX 9.

Come analizzare le performance in game con PresentMon #

Ora verranno analizzate le performance in game durante l’esecuzione di The Last of Us Part 1 (TLOU), con il profilo Focus.

Iniziamo guardando la schermata principale di The Last of Us Part 1 (TLOU). Come molti giochi recenti, TLOU compila tutti i suoi shader nel menu principale, soprattutto se abbiamo recentemente aggiornato i driver o il gioco stesso. Sebbene questo processo possa essere interrotto, farlo provoca notevoli balzi di frame durante il gameplay.

performance in game

The Last of Us rende attivamente il menu come una scena 3D, motivo per cui c’è una discreta attività della GPU. Tuttavia, al momento di scattare questa istantanea, il motore stava ancora compilando tutti i shader.

fps in gioco monitorare

Dopo la compilazione, notiamo una grande differenza. Con la CPU che ha ben poco da fare, le “performance” del menu del gioco sono interamente controllate dalla GPU. Ciò è evidente dai tempi identici di Frame e GPU Busy, insieme al grafico di utilizzo della GPU.

Ciò significa che PresentMon può sempre mostrarci quando un gioco è limitato (alias “bottlenecked”) dalla CPU o dalla GPU? Diamo un’occhiata ad alcuni esempi.

Di seguito è riportato uno snapshot di Hearts of Iron 4, un gioco di strategia in tempo reale ambientato durante la seconda guerra mondiale. Tali titoli sono noti per essere pesanti sulla CPU e leggeri sulla scheda grafica.

bottleneck cpu gpu

Il motore del gioco limita il frame rate in base alla velocità di rotazione. Tuttavia, anche al massimo, la GPU è occupata solo per 4,3 ms, con il motore che consuma i restanti 11 ms del tempo di frame. In questo contesto, una GPU più veloce sarebbe vantaggiosa, ma anche un CPU più potente sarebbe utile. Inoltre, durante le fasi successive di una partita, Hearts of Iron 4 richiederà quanta più potenza di CPU possibile.

Conclusioni #

Durante i test, il sistema ha funzionato come previsto, raccogliendo valori per ogni metrica, indipendentemente dal preset dell’overlay che si sta utilizzando. In realtà, questa viene disabilitato durante la cattura, poiché l’esecuzione di entrambi contemporaneamente influirà notevolmente sulle prestazioni. Le cifre vengono quindi salvate in un file csv, che può aumentare rapidamente di dimensioni, a seconda delle frequenze di campionamento e del tempo di registrazione.

Anche molti altri programmi possono farlo; inoltre applicativi come Afterburner non sembrano avere tanti problemi con la lettura delle metriche come PresentMon. AMD GPU Profiler, Microsoft PIX e Nvidia NSight tendono invece a fornire più informazioni per gli sviluppatori e gli analisti seri.

L’overlay di PresentMon è molto personalizzabile e visivamente accattivante, e il report di riepilogo per le Catture fornisce un rapido accesso alle frame rate medie, minime/massime, 1% e 5% basse; i tempi di Frame e GPU Busy sono particolarmente utili.

In definitiva, PresentMon vale la pena di provarlo: è gratuito e non c’è nulla da perdere. Sarà interessante vedere come Intel continuerà a migliorare questa nuova versione del suo strumento di monitoraggio delle prestazioni e se ci saranno novità, ti faremo sapere.

Fonte: TechSpot