Frage

Sie Grafikkarten-Befehlssätze haben ihre eigenen? Ich nehme an, sie tun, aber ich habe mich gefragt, ob es proprietär ist, oder wenn es irgendeine Art von offenem Standard.

Ist jede GPU Anweisung durch eine CPU-Anweisung vorangestellt oder ist es nahtlos? Das heißt tut OpenGL oder DirectX Anruf auf der Treiberschicht über die CPU, die dann einen GPU-Befehl sendet hinunter den Bus oder ist es aufwendiger.

War es hilfreich?

Lösung

Ja, sie tun. AMD hat bietet auch die Spezifikation zur Zeit auf die HD4000-Serie auf.

Schauen Sie hier: http: //developer.amd .com / Wordpress / media / 2012/10 / R700-Family_Instruction_Set_Architecture.pdf

Es gibt auch ein Open-Source-Projekt Nouveau genannt, die das Engineering der Befehlssätze NV tun umkehren.

Beachten Sie, dass NVIDIA eine etwas andere Architektur als AMD hat, weil sie verwenden VLIW nicht aber Skalarabarbeitungseinheit (obwohl mehrere Threads in zusätzlich gruppiert sind, was ein Warp oder ein Wavefront genannt wird).

Auch nicht jede OpenGL / Direct3D Anruf tut Karte auf eine „GPU-Anweisung“. Zum Beispiel, wenn nur eine Textur des Fahrer Bindung wird entsprechendes Hardware-Register festgelegt, die die GPU sagen, welche Texturspeicher für die Probenahme zu verwenden.

Echt Programme werden nur ausgeführt, wenn Shadern Ausführung oder auf der GPU Verarbeitungskerne streamen.

Andere Tipps

Derzeit NVIDIA-Karten verwenden eine Art von Zwischen ISA genannt PTX. Sie können darüber in diesem Dokument lesen:

PTX ISA 1.1

PTX Programme übersetzt werden zur Zeit auf die Zielhardware Befehlssatz installieren.

Ja, die GPU haben ihre eigenen proprietrary Befehlssätze. Die GPU Anweisungen ausgeführt unabhängig von den CPU-Anweisungen.

AMD Graphics Core Next (GCN)

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

Die erste Generation wird als "Southern Islands".

Die Wiki-Seite Links zu AMD Spezifikationen, die die ISA dokumentieren, zum Beispiel: http://developer.amd.com/wordpress/media/2012/12/AMD_Southern_Islands_Instruction_Set_Architecture.pdf

Es gibt sogar eine offene RTL-Implementierung genannt MIAOW https://github.com/VerticalResearchGroup/miaow, obwohl es wahrscheinlich einige IP verletzt, die AMD in Schweigen toleriert nur gewählt hat jetzt ( Quelle ).

SPIR-V

https://en.wikipedia.org/wiki/Standard_Portable_Intermediate_Representation ist ein Krhonos Standard Zwischensprache.

Es ist wahrscheinlich bestehende GPU ISAs als ähnlich gestaltet, so dass es mehr implementierbar sein und eine bessere Annahme haben, so ist es eine gute Idee von tatsächlichen GPU ISAs geben sollte.

Und wenn diese Norm auf verfängt, wie es der Fall zu sein aufgrund Annahme in Vulkan und OpenCL scheint 2.1 werden zukünftige Implementierungen wahrscheinlich zu implementieren konzipiert ist eng bessere Leistung zu haben.

So erhalten und ändern PTX

So erstellen oder GPU Assembler zu manipulieren?

Für nvidia Karten, die Sie vielleicht einen Blick auf dieses Dokument haben wollen http://docs.nvidia.com/cuda/cuda-binary-utilities/index.html#instruction-set-ref

Siehe auch: CUDA-Programmierhandbuch Version 3.0

Die Rechenkapazität eines Geräts wird durch einen großen Revisionsnummer und eine kleinere definierte Revisionsnummer.

Geräte mit der gleichen Hauptversionsnummer sind von der gleichen Core-Architektur. Das Hauptversionsnummer der Geräte auf der Fermi-Architektur basiert 2. Stand der Geräte sind alle Rechenkapazität 1.x (Revisionsnummer Ihrer Haupt ist 1).

Die Revisionsnummer entspricht eine schrittweise Verbesserung auf den Kern Architektur, eventuell auch mit neuen Features.

Anhang A Listen aller CUDA-fähige Geräte zusammen mit ihrer Rechenkapazität. Anhang G enthält die technischen Spezifikationen der einzelnen Rechenkapazität.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top