Question

Je travaille sur une application de diffusion multimédia en continu qui pousse beaucoup de données à la carte graphique au démarrage. La CPU fait très peu au moment où les données est poussé, il tourne au ralenti le long à près de zéro pour cent d'utilisation.

Je voudrais suivre qui lutte des machines à pousser les données initiales et celles qui peuvent faire face, afin que je puisse arriver à une spécification minimale recommandée pour notre matériel clients.

J'ai trouvé que les PC avec slots PCIe 1.1 x16 lutte avec les données initiales étant poussé sur la carte graphique.

Mon PC de développement a un slot PCIe 2.0 x16, et il n'a aucun problème avec faire face à la grande quantité de données étant initialement poussé à la carte graphique.

Je besoin de chiffres pour prouver (ou réfuter) mon point.

Ce que je voudrais est de pouvoir déterminer:

Type de logement Quelle est la carte graphique? Quelle est la vitesse de cet emplacement? nom de la carte GFX version pilote de carte GFX

Mais le plus important, les flux de données sur l'emplacement PCIe - par exemple si je peux montrer que le bus PCIe est maximisé avec les données, je peux indiquer que le goulot de la bouteille.

Je sais que la vitesse de la mémoire du système est également un facteur ici, par exemple les données sont transférées de la RAM, sur le bus PCIe à la carte graphique, donc est-il un moyen de déterminer la vitesse de la mémoire système aussi?

Enfin, je vous écris en C ++ non géré, si les bibliothèques .NET est accédant pas une option.

Était-ce utile?

La solution

Avez-vous des erreurs poussant vos quantités massives de données, ou êtes-vous « tout simplement » concernés par la vitesse lente?

Je doute qu'il y ait un moyen facile de surveiller l'utilisation de la bande passante PCI-e, s'il est possible du tout. Mais il devrait être possible d'interroger le bus de type l'adaptateur vidéo est connecté à via WMI et / ou SetupAPI -. Je n'ai pas d'expérience personnelle ou des liens utiles pour non plus, désolé

Autres conseils

Pour les GPU NVIDIA, vous pouvez essayer d'utiliser NvAPI_GPU_GetDynamicPstatesInfoEx :

  

Nvidia, par son pilote GeForce, expose une interface de programmation   ( « NVAPI ») qui, entre autres, permet de recueillir des performances   des mesures. Pour la technique incliné, voici la pertinente   section dans le fichier d'en-tête nvapi.h:

     
    

NOM DE FONCTION: NvAPI_GPU_GetDynamicPstatesInfoEx

         

Description: Cette API récupère le NV_GPU_DYNAMIC_PSTATES_INFO_EX     Structure pour le GPU physique spécifiée. L'information de chaque domaine est     indexées dans la matrice. Par exemple:

         
        
  • pDynamicPstatesInfo-> utilisation [NVAPI_GPU_UTILIZATION_DOMAIN_GPU] détient l'information pour le domaine du GPU. Il existe actuellement quatre domaines     dont les seuils P-étatiques utilisation des GPU et dynamiques peuvent être     recherché: moteur graphique (GPU), tampon de trame (FB), le moteur de vidéo     (VID) et l'interface de bus (BUS).
  •     
  
     

Au-delà de ce commentaire d'en-tête, la fonctionnalité spécifique de l'API n'est pas   documenté. Les informations ci-dessous est notre meilleure interprétation de son   fonctionnement, même si elle repose sur beaucoup de conjectures.

     
      
  • Le moteur graphique ( « GPU ») métrique devrait être votre goulot d'étranglement dans la plupart des jeux. Si vous ne voyez pas à ou près de 100%, quelque chose   d'autre (comme votre CPU ou sous-système de mémoire) est de limiter la performance.
  •   
  • Le frame buffer ( "FB") métrique est intéressant, si cela fonctionne comme prévu. Du nom, vous vous attendez à mesurer la mémoire graphique   l'utilisation (le pourcentage de la mémoire utilisée). Ce n'est pas ce que cela est,   bien que. Il semble plutôt être l'utilisation du contrôleur de mémoire   en pour cent. Si c'est exact, il mesurerait être de la bande passante réelle   utilisé par le contrôleur, ce qui est par ailleurs disponible en   mesure d'une autre manière.
  •   
  • Nous ne sommes pas aussi intéressé par le moteur vidéo ( « VID »); il est généralement pas utilisé dans le jeu, et enregistre un 0% généralement plat. vous feriez   ne voient que le mouvement de cadran si vous encodage vidéo par ShadowPlay ou   en continu sur un bouclier.
  •   
  • L'interface de bus ( "BUS") contrôleur métrique se réfère à l'utilisation de l'PCIe , encore une fois, sous forme de pourcentage. La mesure correspondante,   que vous pouvez suivre en EVGA PrecisionX et MSI Afterburner, est appelé   "Utilisation BUS GPU".
  •   
     

Nous avons demandé à Nvidia de faire la lumière sur le fonctionnement interne de NVAPI. Ses   réponse a confirmé que la mémoire graphique des mesures métriques FB   l'utilisation de la bande passante, mais Nvidia a rejeté le BUS métrique « considéré   peu fiables et donc pas utilisé en interne ».

     

Nous avons demandé AMD si elle avait une API ou la fonction qui a permis similaire   des mesures. Après vérification interne, les représentants de l'entreprise   ont confirmé qu'ils ne l'ont pas. Autant que nous voudrions, nous sommes   incapable d'effectuer des tests similaires sur le matériel AMD.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top