Hebben grafische kaarten eigen instructiesets?

Hebben grafische kaarten eigen instructiesets?
Ik neem aan van wel, maar ik vroeg me af of het propriëtair is of dat er een soort open standaard is.

Wordt elke GPU-instructie voorafgegaan door een CPU-instructie of is deze naadloos?
Dat wil zeggen, doet OpenGL of DirectX een beroep op de driverlaag via de CPU die vervolgens een GPU-instructie door de bus stuurt of is het uitgebreider.


Antwoord 1, autoriteit 100%

Ja, dat doen ze. AMD levert op dit moment zelfs de specificatie tot aan de HD4000-serie.

Kijk hier: http://developer.amd .com/wordpress/media/2012/10/R700-Family_Instruction_Set_Architecture.pdf

Er is ook een open source-project genaamd Nouveau dat reverse-engineering van de NV-instructiesets uitvoert.

Houd er rekening mee dat NVIDIA een iets andere architectuur heeft dan AMD, omdat ze geen VLIW gebruiken maar scalaire uitvoering (hoewel meerdere threads bovendien zijn gegroepeerd in wat een Warp of een Wavefront wordt genoemd).

Ook niet elke OpenGL/Direct3D-aanroep verwijst naar een “GPU-instructie”. Bij het binden van een textuur zal het stuurprogramma bijvoorbeeld alleen de juiste hardwareregisters instellen die de GPU vertellen welk textuurgeheugen moet worden gebruikt voor bemonstering.

Echte programma’s worden alleen uitgevoerd bij het uitvoeren van shaders of bij streamverwerkingskernels op de GPU.


Antwoord 2, autoriteit 18%

Ja, de GPU heeft zijn eigen instructiesets. De GPU-instructies worden onafhankelijk van de CPU-instructies uitgevoerd.


Antwoord 3, autoriteit 14%

Momenteel gebruiken NVIDIA-kaarten een soort tussenliggende ISA, PTX genaamd. U kunt erover lezen in dit document:

PTX ISA 1.1

PTX-programma’s worden tijdens de installatie vertaald naar de instructieset van de doelhardware.


Antwoord 4, autoriteit 11%

Voor nvidia-kaarten kun je dit document bekijken http://docs.nvidia.com/cuda/cuda-binary-utilities/index.html#instruction-set-ref


Antwoord 5, autoriteit 11%

AMD Graphics Core Next (GCN)

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

De eerste generatie wordt “Southern Islands” genoemd.

De wiki-pagina linkt naar AMD-specificaties die de ISA documenteren, bijvoorbeeld: http://developer.amd.com/wordpress/media/2012/12/AMD_Southern_Islands_Instruction_Set_Architecture.pdf

Er is zelfs een open RTL-implementatie genaamd MIAOW https://github.com/VerticalResearchGroup/miaow, hoewel het waarschijnlijk inbreuk maakt op een IP die AMD voorlopig alleen in stilte heeft getolereerd (bron).

SPIR-V

https://en.wikipedia.org/wiki/Standard_Portable_Intermediate_Representationis een Krhonos-standaard tussentaal.

Het is waarschijnlijk ontworpen om vergelijkbaar te zijn met bestaande GPU-ISA’s, zodat het beter implementeerbaar is en beter wordt gebruikt, dus het zou een goed idee moeten geven van daadwerkelijke GPU-ISA’s.

En als deze standaard aanslaat, zoals het geval lijkt te zijn vanwege de acceptatie in Vulkan en OpenCL 2.1, zullen toekomstige implementaties waarschijnlijk zo worden ontworpen dat ze nauw worden geïmplementeerd om betere prestaties te hebben.

PTX verkrijgen en wijzigen

Hoe maak of manipuleer je een GPU-assembler?

Verwant

https://computergraphics.stackexchange.com/questions/7809/what -lijkt-gpu-assemblage-lijkt


Antwoord 6, autoriteit 5%

Zie: CUDA Programmeergids Versie 3.0

De rekencapaciteit van een apparaat wordt gedefinieerd door een groot revisienummer en een klein
revisienummer.

Apparaten met hetzelfde hoofdrevisienummer hebben dezelfde kernarchitectuur. De
belangrijkste revisie aantal apparaten op basis van de Fermi-architectuur is 2. Eerdere apparaten
zijn allemaal van rekencapaciteit 1.x (hun belangrijkste revisienummer is 1).

Het kleine revisienummer komt overeen met een stapsgewijze verbetering van de kern
architectuur, mogelijk inclusief nieuwe functies.

Bijlage A geeft een overzicht van alle CUDA-compatibele apparaten samen met hun rekencapaciteit.
Bijlage G geeft de technische specificaties van elke rekenmogelijkheid.

Other episodes