Pregunta

Estoy trabajando en una aplicación de streaming de medios que empuja a una gran cantidad de datos a la tarjeta gráfica en el arranque. La CPU está haciendo muy poco en el punto cuando está siendo empujado los datos, que funciona en vacío junto a cerca de cero por ciento de uso.

Me gustaría controlar las máquinas en la lucha empujando los datos iniciales, y cuáles puede hacer frente, con el fin de que puedo llegar a un mínimo recomendado de especificaciones de hardware para nuestro clientes.

He encontrado que las PC con PCIe 1.1 x16 lucha con los datos iniciales que empujado sobre la tarjeta gráfica.

Mi PC de desarrollo tiene una ranura PCIe x16 2.0, y no tiene problemas con hacer frente a la gran cantidad de datos que se empujaron inicialmente a la tarjeta gráfica.

Necesito números para probar (o refutar) mi punto.

Lo que me gustaría es ser capaz de determinar:

¿Qué tipo de ranura es la tarjeta gráfica? ¿Cuál es la velocidad de esta ranura? GFX nombre de la tarjeta versión del controlador de tarjeta de GFX

Pero lo más importante, el flujo de datos a través de la ranura PCIe - por ejemplo, si puedo demostrar que el bus PCIe está trabajando al límite y con los datos, puedo señalar que a medida que el cuello de la botella.

Sé que la velocidad de la memoria del sistema es también un factor aquí, por ejemplo, la transferencia de datos desde la memoria RAM, a través del bus PCIe a la tarjeta gráfica, por lo que hay una manera de determinar la velocidad de la memoria del sistema también?

Por último, escribo en C ++ no administrado, por lo que accede .NET bibliotecas no es una opción.

¿Fue útil?

Solución

Qué se obtiene errores que empujan sus cantidades masivas de datos, o está "simplemente" preocupado con la velocidad lenta?

Dudo que haya alguna forma fácil de controlar el uso de ancho de banda PCI-e, si es posible en absoluto. Pero debería ser posible tipo de consulta el bus del adaptador de vídeo está conectado a través de WMI y / o SetupAPI -. No tengo ninguna experiencia personal o de enlaces útiles para cualquiera, lo siento

Otros consejos

Para Nvidia GPU, puede probar a usar NvAPI_GPU_GetDynamicPstatesInfoEx :

Nvidia, a través de su controlador GeForce, expone una interfaz de programación ( "NVAPI") que, entre otras cosas, permite la recogida de rendimiento mediciones. Para el técnico inclinado, aquí es el relevante sección en el archivo de cabecera nvapi.h:

NOMBRE DE LA FUNCIÓN: NvAPI_GPU_GetDynamicPstatesInfoEx

Descripción: Esta API recupera la NV_GPU_DYNAMIC_PSTATES_INFO_EX estructura para la GPU física especificada. información de cada dominio es indexadas en la matriz. Por ejemplo:

  • pDynamicPstatesInfo-> utilización [NVAPI_GPU_UTILIZATION_DOMAIN_GPU] mantiene la información para el dominio de la GPU. Actualmente hay cuatro dominios para los que los umbrales de estado P de utilización de GPU y dinámicos pueden ser recuperado: motor gráfico (GPU), frame buffer (FB), motor de vídeo (VID), y la interfaz de bus (BUS).

Más allá de este comentario de cabecera, la funcionalidad específica de la API no es documentada. La siguiente información es nuestra mejor interpretación de su funcionamiento, a pesar de que se basa en una gran cantidad de conjeturas.

  • El motor de gráficos ( "GPU") se espera métrica para ser su cuello de botella en la mayoría de los juegos. Si no ve esta en o cerca del 100%, algo más (como la CPU o el subsistema de memoria) está limitando el rendimiento.
  • La memoria intermedia de trama ( "FB") métrica es interesante, si funciona según lo previsto. Desde el nombre, se espera también para medir la memoria gráfica utilización (el porcentaje de memoria utilizada). Eso no es lo que es esto, aunque. Parece, más bien, a ser la utilización del controlador de memoria en porcentaje. Si eso es correcto, se mediría ser actual ancho de banda utilizado por el controlador, que no es otra cosa disponible como una la medición de otra manera.
  • No estamos tan interesados ??en el motor de vídeo ( "VID"); no se utiliza generalmente en los juegos, y registra un piso 0% normalmente. usted sería Sólo ver el movimiento de línea si está la codificación de vídeo a través de sombras o descargándolo a un escudo.
  • La interfaz de bus ( "bus") métrica se refiere a la utilización de la PCIe controlador , de nuevo, como un porcentaje. La medición correspondiente, que se puede rastrear en EVGA PrecisionX y MSI Afterburner, se llama "GPU BUS de uso".

Nos preguntamos Nvidia para arrojar alguna luz sobre el funcionamiento interno de NVAPI. Sus respuesta confirmó que la memoria medidas métricas gráficos FB el uso de ancho de banda, pero Nvidia desestimó el BUS métrica como "considerado ser poco fiables y por lo tanto no se usa internamente".

Nos preguntamos si AMD tenía ninguna API o función que permitía similares mediciones. Tras la verificación, los representantes internos de la empresa confirmaron que no lo hicieron. Por mucho que nos gustaría, estamos incapaz de llevar a cabo pruebas similares en el hardware de AMD.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top