Domanda

Sto lavorando su un'applicazione streaming media che spinge molti dati alla scheda grafica all'avvio. La CPU sta facendo molto poco nel momento in cui viene spinto i dati, si gira a vuoto insieme a vicino l'utilizzo zero per cento.

Mi piacerebbe monitorare quali macchine lotta a spingere i dati iniziali, e quali può far fronte, in modo che io possa arrivare a un minimo consigliato specifiche per il nostro hardware clienti.

Ho trovato che i PC con PCIe 1.1 x16 slot lotta con i dati iniziali spinte sopra la scheda grafica.

Il mio PC di sviluppo ha uno slot x16 PCIe 2.0, e non ha problemi a far fronte con la grande quantità di dati che vengono inizialmente spinto alla scheda grafica.

Ho bisogno numeri per dimostrare (o confutare) il mio punto.

Quello che mi piacerebbe è quello di essere in grado di determinare:

Quale tipo di slot è la scheda grafica? Qual è la velocità di quello slot? nome della scheda gfx Versione driver della scheda gfx

Ma, soprattutto, il flusso di dati sullo slot PCIe - per esempio se posso dimostrare che il bus PCIe viene raggiunto il massimo di dati, posso indicare che il collo della bottiglia.

So che la velocità della memoria di sistema è anche un fattore qui, ad esempio, i dati vengono trasferiti dalla RAM, attraverso il bus PCIe alla scheda grafica, quindi c'è un modo per determinare la velocità della memoria di sistema anche?

Infine, scrivo in C ++ non gestito, in modo che accede NET librerie non è un'opzione.

È stato utile?

Soluzione

Non si ottiene errori spingendo le vostre enormi quantità di dati, o stai "semplicemente" interessati con bassa velocità?

Dubito che ci sia un modo semplice per monitorare l'utilizzo della larghezza di banda PCI-e, se è possibile a tutti. Ma dovrebbe essere possibile interrogare digitare il bus la scheda video è collegato al tramite WMI e / o SetupAPI -. Non ho esperienza personale o link utili per entrambi, mi dispiace

Altri suggerimenti

Per le GPU Nvidia, si può provare a utilizzare NvAPI_GPU_GetDynamicPstatesInfoEx :

  

Nvidia, attraverso il suo conducente GeForce, espone un'interfaccia di programmazione   ( "NVAPI") che, tra le altre cose, consente di raccogliere le prestazioni   misure. Per il tecnicamente inclinato, qui è pertinente   sezione nel file di intestazione nvapi.h:

     
    

Nome funzione: NvAPI_GPU_GetDynamicPstatesInfoEx

         

DESCRIZIONE: Questa API recupera il NV_GPU_DYNAMIC_PSTATES_INFO_EX     strutturare per la GPU fisico specificato. informazioni di ogni dominio è     indicizzato nella matrice. Ad esempio:

         
        
  • pDynamicPstatesInfo-> esecuzione [NVAPI_GPU_UTILIZATION_DOMAIN_GPU] detiene le informazioni per il dominio GPU. Ci sono attualmente quattro domini     per cui utilizzazione GPU e dinamici soglie P-state possono essere     ritirato: motore grafico (GPU), frame buffer (FB), motore video     (VID), e interfaccia bus (BUS).
  •     
  
     

Al di là di questa intestazione commento, funzionalità specifiche del API non è   documentata. Le informazioni qui di seguito è la nostra migliore interpretazione del suo   lavorazioni, anche se si basa su un sacco di congetture.

     
      
  • Il motore grafico ( "GPU") metrica dovrebbe essere il collo di bottiglia nella maggior parte dei giochi. Se non vedi questa in corrispondenza o vicino al 100%, qualcosa   altro (come la CPU o il sottosistema di memoria) è limitante prestazioni.
  •   
  • Il frame buffer ( "FB") metrica è interessante, se funziona come previsto. Dal nome, che ci si aspetta per misurare memoria grafica   utilizzazione (la percentuale di memoria utilizzata). Che non è di cosa si tratta,   anche se. Sembra, piuttosto, di essere l'utilizzo del controller di memoria   in percentuale. Se questo è corretto, sarebbe misurare effettivamente essere la larghezza di banda   usato dal controllore, che altrimenti non è disponibile come   misurazione qualsiasi altro modo.
  •   
  • Non siamo come interessato al motore video ( "VID"); non è generalmente utilizzato nel gioco, e registra un piatto 0% tipicamente. faresti   vedere solo la mossa quadrante se stai codifica video attraverso ShadowPlay o   lo streaming ad uno scudo.
  •   
  • L'interfaccia bus ( "BUS") metrica si riferisce alla utilizzazione del controller PCIe , di nuovo, in percentuale. La misura corrispondente,   che è possibile rintracciare in EVGA PrecisionX e MSI Afterburner, si chiama   "GPU BUS Usage".
  •   
     

Abbiamo chiesto Nvidia di far luce sul funzionamento interno di NVAPI. Suo   risposta ha confermato che la memoria misure metriche grafica FB   l'utilizzo della banda, ma Nvidia ha respinto il BUS metrica come "considerato   di essere inaffidabile e quindi non utilizzato internamente".

     

Abbiamo chiesto di AMD se avesse qualsiasi API o una funzione che ha permesso per simili   misure. Dopo la verifica, i rappresentanti aziendali interne   hanno confermato che non l'hanno fatto. Per quanto ci piacerebbe, siamo   in grado di condurre test simili su hardware AMD.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top