Comment obtenir de l'information sur GPU en C#?
Je suis en train de faire un logiciel, vérifier certaines informations sur la Vidéo de l'utilisateur de Cartes Graphiques (GPU Vitesse d'Horloge, la largeur du Bus et etc).
J'ai vu cette information dans TechPowerUp GPU-Z logiciel et les noms de certains de le SDK que vous pouvez voir dans l'image ci-dessous:
CUDA Toolkit 7 pour Nvidia et APP SDK pour AMD
Maintenant, j'ai deux questions:
- Comment puis-je accéder à cette information en utilisant le code C#?
- Ne CUDA Toolkit 7 et APP SDK pour aider à résoudre mon problème? si oui, Comment?
OriginalL'auteur Shahryar | 2015-04-16
Vous devez vous connecter pour publier un commentaire.
Peut-être le Win32_VideoController de la CLASSE ou de l' GPUinformation Classe peut vous aider.
Exemple:
Vous pouvez également consulter le CUDAfy.net bibliothèque.
OriginalL'auteur PCpractico
Je n'ai pas d'expérience avec les AMD outils, mais nous avons réussi à utiliser la NVIDIA NVAPI (https://developer.nvidia.com/nvapi) à partir de C#
La version que nous utilisons est fourni uniquement comme une bibliothèque statique ne nous pouvons pas de p/invoke. Nous avons fini par créer un wrapper mince bibliothèque en C++/CLR que l'on peut ensuite appeler à partir de notre code C#.
OriginalL'auteur Graham Dawes
Vous pouvez obtenir des informations de base à l'aide de cette bibliothèque:
https://github.com/falahati/NvAPIWrapper
Pour l'instant, il ne prend pas en charge la vitesse d'horloge GPU d'utilisation, ni il prend en charge les informations du capteur (temp), mais il peut vous obtenir la largeur du bus, la mémoire, la mémoire utilisée et les cœurs. Cependant, il est une base solide pour l'ajout de nouvelles fonctions à la bibliothèque et, par conséquent, vous pouvez également élargir en fonction de vos besoins, probablement en moins d'une heure ou quelque chose si vous savez quelle est la fonction de NVAPI, vous devez ajouter à la bibliothèque et vous êtes familier avec les bases de marshaling.
Mise à jour 2018: Il supporte maintenant GPU informations de l'horloge, la température des capteurs, et des informations d'utilisation.
Mais pour l'information qui est actuellement accessibles, vous avez besoin pour obtenir une liste de tous actuellement connecté physique Gpu. Ceci est possible en utilisant la
NvAPIWrapper.GPU.PhysicalGPU.GetPhysicalGPUs()
méthode statique.Cette méthode renvoie un tableau de
NvAPIWrapper.GPU.PhysicalGPU
s.Maintenant, vous pouvez récupérer les informations que vous souhaitez à l'aide des propriétés de cette classe.
NvAPIWrapper.GPU.PhysicalGPU.Bios
: Vous donne VBIOS versionNvAPIWrapper.GPU.PhysicalGPU.Board
: Vous donne une carte graphique de l'informationNvAPIWrapper.GPU.PhysicalGPU.BusInfo
: Obtient GPU d'informations de busNvAPIWrapper.GPU.PhysicalGPU.CUDACores
: Obtient le nombre total de cœurs défini pour ce GPUNvAPIWrapper.GPU.PhysicalGPU.CurrentPCIEDownStreamWidth
: Nombre de voies PCIE être utilisé pour l'interface PCIE en avalNvAPIWrapper.GPU.PhysicalGPU.FullName
: Obtient GPU nom completNvAPIWrapper.GPU.PhysicalGPU.GPUType
: Indique si le GPU est intégré ou discretsNvAPIWrapper.GPU.PhysicalGPU.IRQ
: Obtient GPU numéro d'interruptionNvAPIWrapper.GPU.PhysicalGPU.IsQuadro
: Indique si le GPU est de la Quadro ligne de produitsNvAPIWrapper.GPU.PhysicalGPU.MemoryInfo
: Vous donne toutes les informations sur la mémoire et l'utilisation de la mémoireNvAPIWrapper.GPU.PhysicalGPU.PCIIdentifiers
: Vous donne des informations sur le matériel PCI idNvAPIWrapper.GPU.PhysicalGPU.PhysicalFrameBufferSize
etNvAPIWrapper.GPU.PhysicalGPU.VirtualFrameBufferSize
: Obtient la taille de mémoire tampon de trame en KO pour ce GPUNvAPIWrapper.GPU.PhysicalGPU.ShaderSubPipeLines
: Nombre de GPU Shader SubPipes ou SM unitésSi vous avez besoin d'une fonction spécifique que vous ne pouvez pas trouver dans cette version de la bibliothèque, n'hésitez pas à ouvrir un sujet.
OriginalL'auteur Soroush Falahati