How to find out the bandwidth used on the PCIe bus?

I am working on a streaming multimedia application that pushes a lot of data to the graphics card at startup. The CPU does very little at a time when the data is being pushed, it is idle with almost zero use.

I would like to keep track of which machines are struggling to push the raw data, and which ones can handle it so that I can get the minimum recommended specification for our customers' equipment.

I found that a PC with PCIe 1.1 x16 slots struggles with the raw data that is clicked on the graphics card.

My development computer has a PCIe 2.0 x16 slot, and it has no problem copying a lot of data that is first transferred to a graphics card.

I need numbers to prove (or disprove) my point.

What I would like to define is:

What type of slot is a graphics card? What is the speed of this slot? Gfx Card Name Gfx Card Driver Version

But most importantly, the data flow through the PCIe slot - for example, if I can show that the PCIe bus is maximized by data, I can point it out like a bottleneck.

I know that system memory speed is also a factor here, for example. data is transferred from RAM via the PCIe bus to the video card, how can I determine the speed of the system memory?

Finally, I write in unmanaged C ++, so access to .NET libraries is not an option.

+3
source share
2 answers

, , "" ?

, PCI-e, . , , WMI / SetupAPI. , .

+1

Nvidia NvAPI_GPU_GetDynamicPstatesInfoEx:

Nvidia GeForce ( "NVAPI" ), , , . , nvapi.h:

: NvAPI_GPU_GetDynamicPstatesInfoEx

     

: API NV_GPU_DYNAMIC_PSTATES_INFO_EX    GPU.    . :

     
  •   
  • pDynamicPstatesInfo- > usage [NVAPI_GPU_UTILIZATION_DOMAIN_GPU] GPU.    P-   : (GPU), (FB),   (VID) (BUS).  

, API . .

  • ( "GPU" ), , . 100%, - else (, ) .
  • ( "FB" ) , . , ( ). , , . , . , , .
  • ( "VID" ); 0%. , ShadowPlay .
  • ( "BUS" ) PCIe, , . , EVGA PrecisionX MSI Afterburner, " GPU".

Nvidia NVAPI. , FB , Nvidia BUS " , , ".

AMD, - API , . , . , AMD.

0

Source: https://habr.com/ru/post/1765787/


All Articles