Est-ce que les cartes graphiques ont des ensembles d'instructions de leur propre?

StackOverflow https://stackoverflow.com/questions/1697842

  •  18-09-2019
  •  | 
  •  

Question

Faites des cartes graphiques ont des ensembles d'instructions de leur propre? Je suppose qu'ils font, mais je me suis demandé si elle est propriétaire ou s'il y a une sorte de standard ouvert.

est chaque instruction GPU précédée d'une instruction CPU ou est-il transparent? Cela est fait appel OpenGL ou DirectX sur la couche de pilote via la CPU qui envoie alors une instruction GPU sur le bus ou est plus complexe.

Était-ce utile?

La solution

Oui, ils le font. AMD ne fournit même la spécification jusqu'à la série HD4000 pour le moment.

Jetez un coup d'oeil ici: http: //developer.amd .com / wordpress / media / 2012/10 / R700-Family_Instruction_Set_Architecture.pdf

Il y a aussi un projet open source appelé Nouveau qui fait l'ingénierie inverse des jeux d'instructions NV.

Notez que NVIDIA a une architecture légèrement différente de celle d'AMD, parce qu'ils ne pas utiliser VLIW mais l'exécution scalaire (bien que plusieurs threads sont en outre regroupés dans ce qu'on appelle une chaîne ou un front d'onde).

De même pas tous les appels OpenGL / Direct3D fait carte à une "instruction GPU". Par exemple, lorsque la liaison d'une texture du pilote ne mettre des registres matériels appropriés qui indiquent le GPU dont la mémoire texture à utiliser pour l'échantillonnage.

Les programmes réels sont exécutés uniquement lors de l'exécution ou le flux Shaders noyaux de traitement du GPU.

Autres conseils

À l'heure actuelle, les cartes NVIDIA utilisent une sorte de ISA intermédiaire appelé PTX. Vous pouvez lire à ce sujet dans le présent document:

PTX ISA 1.1

programmes PTX sont convertis lors de l'installation du jeu d'instructions du matériel cible.

Oui, le GPU ont leurs propres jeux d'instructions proprietrary. Les instructions GPU sont exécutées indépendamment des instructions CPU.

AMD Core Graphics Next (GCN)

https://en.wikipedia.org/wiki/Graphics_Core_Next

La première génération est appelée "Southern Islands".

La page wiki aux spécifications AMD qui documentent l'ISA, par exemple: http://developer.amd.com/wordpress/media/2012/12/AMD_Southern_Islands_Instruction_Set_Architecture.pdf

Il y a même une implémentation RTL ouverte appelée Miaou https://github.com/VerticalResearchGroup/miaow, même si elle porte atteinte probablement une IP qui AMD a simplement choisi de tolérer en silence pour l'instant ( la source ).

SPIR-V

https://en.wikipedia.org/wiki/Standard_Portable_Intermediate_Representation est une norme Krhonos langage intermédiaire.

Il est probable conçu pour être similaire à des normes ISA GPU existants, de sorte qu'il sera plus implémentable et ont une meilleure adoption, il devrait donc donner une bonne idée des normes ISA GPU réels.

Et si cette norme ne se coince sur, comme il semble être le cas en raison de l'adoption dans Vulkan et OpenCL 2.1, les mises en œuvre futures sont conçues susceptibles de mettre en œuvre est étroitement d'avoir de meilleures performances.

Comment obtenir et modifier PTX

Comment créer ou manipuler assembleur GPU?

Pour les cartes nvidia vous pouvez jeter un oeil à ce document http://docs.nvidia.com/cuda/cuda-binary-utilities/index.html#instruction-set-ref

Voir: Guide de programmation CUDA Version 3.0

La capacité de calcul d'un dispositif est défini par un numéro de révision majeure et mineure numéro de révision.

Les appareils avec le même numéro de révision majeure sont de la même architecture de base. le numéro de révision majeure des dispositifs basés sur l'architecture Fermi est 2. Les dispositifs antérieurs sont tous Compute 1.x capacité (Leur nombre important de révision est 1).

Le numéro de révision mineure correspond à une amélioration supplémentaire de l'âme l'architecture, y compris éventuellement de nouvelles fonctionnalités.

listes Annexe A de tous les appareils CUDA ainsi que leur capacité de calcul. Annexe G donne les spécifications techniques de chaque capacité de calcul.

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