Calcolatore del collo di bottiglia tra CPU e GPU

Tempi per fotogramma misurati, non un punteggio universale del collo di bottiglia

Usa tempi per fotogramma di CPU e GPU acquisiti nella stessa scena ripetibile, con le stesse impostazioni e lo stesso metodo di esecuzione. Il solo utilizzo non può dimostrare un collo di bottiglia. Questo strumento non dispone di un database dei modelli hardware e non fornisce consigli di acquisto o aggiornamento.

Analisi dei tempi per fotogramma

Descrivi il contesto del benchmark

Le etichette sono facoltative. Non inserire nomi di account, numeri di serie o informazioni riservate sul progetto.

I valori della visualizzazione diretta vengono elaborati tramite Livewire. I valori del percorso guidato, incluse le etichette facoltative, vengono inseriti nell’URL della pagina e nella cronologia del browser affinché ogni passaggio possa ripristinarli. Non inserire nomi o informazioni riservate sul carico di lavoro.

Usa questo calcolatore del collo di bottiglia per confrontare i tempi per fotogramma di CPU e GPU rilevati nella stessa scena di gioco. Stima il limite massimo della frequenza dei fotogrammi per ciascun componente, identifica quello più lento solo quando lo scarto supera la tolleranza impostata e spiega perché una singola acquisizione non può trasformarsi in una percentuale universale di collo di bottiglia valida per ogni gioco o impostazione.

Come analizzare un collo di bottiglia della CPU o della GPU

  1. 1

    Acquisisci una scena ripetibile

    Usa un benchmark integrato nel gioco, un replay o un percorso fisso mantenendo invariati risoluzione, impostazioni grafiche, limite dei fotogrammi e stato di VSync. Lascia che il gioco si stabilizzi prima di registrare.

  2. 2

    Inserisci il tempo per fotogramma della CPU

    Copia dal profiler o dall'acquisizione delle prestazioni il tempo impiegato dalla CPU per ogni fotogramma, espresso in millisecondi. Usa un valore rappresentativo dell'intervallo di test scelto.

  3. 3

    Inserisci il tempo per fotogramma della GPU

    Copia il tempo corrispondente della GPU dalla stessa scena e dallo stesso intervallo di acquisizione. Non combinare risultati ottenuti da esecuzioni, preimpostazioni o risoluzioni diverse.

  4. 4

    Imposta una tolleranza e interpreta il risultato

    La tolleranza considera bilanciate le differenze ridotte, perché la normale variazione tra un'esecuzione e l'altra può ribaltare un risultato molto ravvicinato. Ripeti l'acquisizione prima di intervenire sulla base di uno scarto minimo.

Il tempo per fotogramma è il punto di partenza più utile

I fotogrammi al secondo sono il reciproco del tempo per fotogramma. Quando il tempo è misurato in millisecondi:

limite della frequenza dei fotogrammi = 1000 / tempo per fotogramma in ms

La fase misurata più lenta determina il limite massimo semplificato della pipeline:

limite stimato = 1000 / max(tempo per fotogramma CPU, tempo per fotogramma GPU)

Si tratta di una stima diagnostica, non della garanzia che il gioco presenterà i fotogrammi esattamente a quella frequenza. Il limite dei fotogrammi, la sincronizzazione, le code, le operazioni del motore, il caricamento, la pianificazione del sistema operativo e la presentazione sullo schermo possono influire sugli FPS osservati. Nelle indicazioni sulla profilatura di DirectX, Microsoft distingue il tempo della CPU per fotogramma da quello della GPU perché entrambi possono superare il budget temporale disponibile.

Frequenza dei fotogrammi desiderata Budget temporale per fotogramma
30 FPS 33,33 ms
60 FPS 16,67 ms
120 FPS 8,33 ms
144 FPS 6,94 ms
240 FPS 4,17 ms

La conversione 1000 / ms rappresenta il limite massimo della fase misurata. Per esempio, un tempo della CPU di 12 ms corrisponde a circa 83,33 FPS, mentre un tempo della GPU di 7 ms corrisponde a circa 142,86 FPS. In questa acquisizione, il lato CPU è più lento e il limite massimo semplificato è di circa 83,33 FPS.

Perché la tolleranza è importante

Tempi per fotogramma molto vicini non devono essere presentati con una falsa certezza. Questo calcolatore confronta lo scarto assoluto con il tempo per fotogramma più lento:

differenza relativa = |CPU ms - GPU ms| / max(CPU ms, GPU ms) × 100

Se lo scarto rientra nella tolleranza selezionata, il risultato è bilanciato o indeterminato per questa acquisizione. Se la supera, il componente con il tempo per fotogramma maggiore è quello che limita attualmente le prestazioni.

Tempo CPU Tempo GPU Scarto relativo Risultato con tolleranza del 5%
12,0 ms 7,0 ms 41,67% Limite lato CPU
6,0 ms 10,0 ms 40,00% Limite lato GPU
8,0 ms 8,3 ms 3,61% Bilanciato o troppo vicino per stabilirlo

Questa percentuale descrive la distanza fra due misurazioni temporali in un singolo carico di lavoro. Non indica la percentuale di CPU o GPU sprecata e non prevede il guadagno prestazionale ottenibile sostituendo l’hardware.

Rendi ripetibile l’acquisizione

Per ottenere un confronto utile, il carico di lavoro deve rimanere stabile. Mantieni invariati:

  • il gioco e la versione del motore;
  • il salvataggio, il replay, la sequenza del benchmark o il percorso di movimento fisso;
  • la risoluzione, la scala di rendering, la preimpostazione della qualità e l’API grafica;
  • il limite dei fotogrammi, VSync e lo stato della risoluzione dinamica;
  • le impostazioni del driver, la modalità di alimentazione e il carico in background;
  • il periodo di riscaldamento e la durata dell’acquisizione.

Esegui il test più volte e confronta statistiche rappresentative anziché affidarti a un solo campione breve. Le indicazioni di AMD sulle prestazioni della CPU raccomandano di fissare variabili come la scena di test e il seme casuale, mentre la sua guida per Unreal Engine suggerisce di variare la risoluzione come metodo diagnostico: se una risoluzione di rendering molto più alta modifica appena le prestazioni, vale la pena indagare su un possibile limite lato CPU in quel carico di lavoro. Rimane comunque un indizio, non un verdetto universale.

Perché l’utilizzo non è una prova

L’utilizzo può contribuire alla diagnosi, ma non può confermarla da solo. L’utilizzo totale della CPU può sembrare moderato anche quando un singolo thread principale o di rendering è saturo. Un utilizzo ridotto della GPU può dipendere da un limite dei fotogrammi, dall’attesa della CPU, dalla sincronizzazione o da una quantità insufficiente di lavoro inviato. Un utilizzo elevato della GPU indica che il dispositivo era occupato, ma non identifica lo specifico passaggio costoso né permette di prevedere l’esito di un aggiornamento hardware.

Gli strumenti di misurazione temporale forniscono un contesto migliore. Intel PresentMon registra la telemetria dei fotogrammi e della GPU, NVIDIA Nsight mostra la durata dei fotogrammi su CPU e GPU e gli intervalli di carico della GPU, mentre AMD Radeon GPU Profiler visualizza la tempistica delle code e i periodi di inattività della GPU. Persino le soglie dei profiler sono euristiche: la classificazione CPU-bound di Radeon GPU Profiler usa una soglia regolabile di inattività della GPU, non una legge valida per ogni motore.

Cosa può e non può indicare il valore «1% low»

Il valore «1% low» riassume la coda lenta di una distribuzione dei tempi per fotogramma ed è quindi utile per individuare un’erogazione irregolare che una media può nascondere. Non rivela se quei fotogrammi lenti siano stati causati dalla CPU, dalla GPU, dallo streaming delle risorse, dalla compilazione degli shader, dalla pressione sulla memoria o da un altro blocco.

Anche le definizioni variano. Alcuni report ricavano una frequenza dal tempo per fotogramma al 99º percentile (1000 / tempo per fotogramma p99), mentre altri calcolano la media dell’1% più lento dei campioni di FPS. NVIDIA Nsight Systems definisce la durata del fotogramma al 99º percentile come il valore oltre il quale si trova soltanto l’1% dei fotogrammi più lunghi. Quando confronti i risultati, annota lo strumento e la definizione adottata e non sostituire i tempi corrispondenti di CPU e GPU con un valore «1% low».

Perché le percentuali universali di collo di bottiglia sono fuorvianti

Un computer non ha un unico rapporto permanente di collo di bottiglia tra CPU e GPU. Il lavoro che limita le prestazioni può cambiare in base a gioco, scena, risoluzione, impostazioni, versione del motore, driver, limite dei fotogrammi e frequenza desiderata. Una scena cittadina affollata può mettere sotto pressione la simulazione e l’invio delle chiamate di disegno, mentre una scena diversa con una scala di rendering superiore può richiedere più tempo alla GPU.

I calcolatori basati sui nomi dei modelli non possono osservare queste condizioni. Un risultato come «collo di bottiglia del 23%» non ha un significato tecnico stabile senza misurazioni temporali effettuate nella stessa scena. Usa questo calcolatore per descrivere l’acquisizione realmente eseguita, ripeti il test con il carico di lavoro che ti interessa e usa un profiler della sequenza temporale quando devi individuare l’operazione specifica responsabile.

Riferimenti tecnici ufficiali

Domande frequenti

Inserisci il tempo della CPU per fotogramma e quello della GPU per fotogramma, espressi in millisecondi e ricavati dalla stessa acquisizione del profiler e dalla stessa scena. Non inserire percentuali di utilizzo complessivo, frequenze di clock dichiarate, punteggi di benchmark o misurazioni ottenute con impostazioni diverse.

No. Significa che, in questa acquisizione, il tempo misurato della CPU per fotogramma era superiore a quello della GPU oltre la tolleranza selezionata. Un limite dei fotogrammi, le impostazioni del gioco, le attività in background, un singolo thread costoso o la scena stessa possono cambiare il risultato. Profila il carico di lavoro prima di trarre una conclusione più generale.

Il cinque per cento è un pratico punto di partenza per distinguere uno scarto netto da un risultato ravvicinato, ma non è uno standard universale. Usa una tolleranza più ampia quando la variabilità fra test ripetuti è maggiore e confronta più acquisizioni prima di classificare una differenza marginale.

No. Riassumono aspetti diversi delle prestazioni dei fotogrammi presentati e non sono misurazioni temporali della CPU e della GPU. Usa misure corrispondenti di CPU-ms e GPU-ms. Conserva gli FPS medi e i valori «1% low» come contesto separato per valutare la velocità di elaborazione e la regolarità dei tempi per fotogramma.

La risoluzione e la scala di rendering modificano in genere il carico della GPU più direttamente rispetto alla simulazione o all’invio delle operazioni da parte della CPU. Aumentandole, il tempo per fotogramma più lungo può spostarsi verso la GPU; riducendole, può emergere un limite lato CPU a frequenze dei fotogrammi più alte. Il nuovo risultato descrive il nuovo carico di lavoro e non rappresenta una contraddizione.

Strumenti correlati