2009-11-08 44 views
28

圖形卡是否有自己的指令集? 我假設他們這樣做,但我一直在想,如果它是專有的或者是否有某種開放標準。圖形卡是否有自己的指令集?

每個GPU指令都是以CPU指令開頭還是無縫的? 這是通過CPU在驅動程序層調用OpenGL或DirectX,然後向總線發送GPU指令或更精細。

回答

28

是的,他們這樣做。 AMD現在甚至將規格提供給HD4000系列。

到這裏看看:http://developer.amd.com/wordpress/media/2012/10/R700-Family_Instruction_Set_Architecture.pdf

還有一個名爲風格的一個開源項目,它不會扭轉NV指令集的工程。

請注意,NVIDIA的架構與AMD稍有不同,因爲它們不使用VLIW,而是執行標量(儘管多個線程另外組成了所謂的Warp或Wavefront)。

並非所有OpenGL/Direct3D調用都映射到「GPU指令」。例如,在綁定紋理時,驅動程序將只設置適當的硬件寄存器,告訴GPU要使用哪個紋理存儲器進行採樣。

只有在GPU上執行着色器或流處理內核時才運行真正的程序。

+2

pdf已移到這裏:http://developer.amd.com/wordpress/media/2012/10/R700-Family_Instruction_Set_Architecture.pdf – larsr 2014-05-23 09:09:20

+0

最新的是:http://amd-dev.wpengine.netdna-cdn。 com/wordpress/media/2013/07/AMD_GCN3_Instruction_Set_Architecture.pdf – Simon 2015-06-19 14:34:42

+0

http://developer.amd.com/wordpress/media/2012/12/AMD_Southern_Islands_Instruction_Set_Architecture.pdf – 2016-01-27 09:51:52

3

是的,GPU有自己的專有指令集。 GPU指令獨立於CPU指令執行。

+0

好的,但操作系統如何知道這樣做?如果一個操作系統是爲x86編譯的,我知道它是如何知道x86指令的。但是如果系統有ATI卡,它怎麼知道使用ATI指令集? cpu是否首先調用執行opengl指令的驅動程序?指令路由到合適的資源是什麼? – Matt 2009-11-08 20:41:38

+7

@Matt:司機處理所有這一切; Windows以某種方式與驅動程序對話,並且驅動程序以某種方式與GPU對話。 – 2009-11-08 20:45:25

5

目前,NVIDIA顯卡使用某種稱爲PTX的中間ISA。您可以在這個文件中閱讀它:

PTX ISA 1.1

PTX程序在安裝時到目標硬件指令集翻譯。

+0

如何獲取和修改PTX:http://stackoverflow.com/questions/4660974/how-to-create-or-manipulate-gpu-assembler/43304961#43304961 – 2017-04-09 09:06:12

2

參見:CUDA編程指南3.0版

設備的計算能力是由一個主版本號和次要 修訂號定義。

具有相同主版本號的設備具有相同的核心架構。基於費米架構的器件的主要修訂版本號是2.先前器件 都是計算能力1.x(它們的主版本號是1)。

小版本號對應於核心 架構的增量改進,可能包括新功能。

附錄所有支持CUDA的設備及其計算能力的列表。附錄G給出了每種計算能力的技術規格。

0

AMD圖形核心下一頁(GCN)

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

第一代被稱爲 「南方羣島」 NVIDIA顯卡。

維基頁面鏈接到AMD的規格該文件的ISA,如:http://developer.amd.com/wordpress/media/2012/12/AMD_Southern_Islands_Instruction_Set_Architecture.pdf

甚至有一個開放的RTL實現叫喵https://github.com/VerticalResearchGroup/miaow,儘管它有可能侵犯了一些IP其中AMD已經只是選擇默默容忍現在(source)。

SPIR-V

https://en.wikipedia.org/wiki/Standard_Portable_Intermediate_Representation是Krhonos標準中間語言。

它可能被設計爲與現有的GPU ISA類似,因此它將更具可實施性和更好的採用性,因此它應該給出實際GPU ISA的一個好主意。

如果這個標準的確有用處,因爲在Vulkan和OpenCL 2.1中採用它似乎是這種情況,未來的實現很可能被設計爲實現更好的性能。