回答
您可能想看看PTX。 NVIDIA提供了一個文檔在CUDA 4.0文檔中描述它。
http://developer.nvidia.com/nvidia-gpu-computing-documentation
NVIDIA描述PTX爲「鉭低電平並行線程執行的虛擬機和指令集架構(ISA)。PTX暴露GPU作爲數據並行計算設備」。不完全像x86彙編,但你可能會發現它有趣的閱讀。
值得指出的是,PTX是一個虛擬指令集。每個不同的NVIDIA架構都有自己的PTX物理ISA。可以將PTX指令內聯到CUDA代碼中,類似於內聯x86 asm。 –
是的,GPU上的程序集與CPU完全不同。 其中一個差異在於GPU的指令集沒有標準化。 NVidia(以及AMD和其他GPU供應商)可以並且確實將其指令集從一種GPU模型更改爲下一種。
所以CUDA不公開彙編語言。沒有意義。 (由於GPU硬件的限制,CUDA的C語言及其支持的任何其他語言都存在侷限性,這不僅僅是因爲Nvidia恨你並想惹惱你,所以即使你可以直接訪問底層指令集和彙編語言,你將無法神奇地做你現在無法做到的事情。
(注意,NVidia確實定義了一個「虛擬」指令集,你可以在代碼中使用和嵌入它,但它是不是指令集,它不直接映射到硬件指令,它只是一個簡單的編程語言,它看起來像一個彙編語言
實際上有兩種不同的CUDA彙編語言。
PTX是一種獨立於機器的彙編語言,彙編到SASS,這是在特定GPU系列上執行的實際操作碼。如果你建立.cubins,你正在處理SASS。大多數CUDA運行時應用程序使用PTX,因爲這使它們能夠在原始應用程序之後發佈的GPU上運行。如果你的目標是sm_20(費米/ GTX 400系列),函數指針在CUDA中已經有一段時間了。
- 1. 彙編語言
- 2. MIPS彙編語言
- 3. 8086彙編語言
- 4. x86彙編語言
- 5. 彙編語言環
- 6. 彙編語言 - LDI
- 7. CMP彙編語言
- 8. 彙編語言:cbw
- 9. MIPS彙編語言
- 10. 是否有使用匯編語言規則登記
- 11. 是否有任何8051彙編語言C代碼轉換器
- 12. 是否有OS X的彙編語言調試器?
- 13. 將彙編語言宏轉換爲純彙編語言
- 14. 檢查字符串是否是迴文 - 彙編語言
- 15. linux「as」彙編程序是否支持intel格式彙編語言?
- 16. 這是什麼彙編語言?
- 17. 彙編語言diff工具
- 18. 瞭解彙編語言
- 19. 彙編語言:+ vs add
- 20. 彙編語言註冊
- 21. 彙編語言介紹
- 22. 以彙編語言開頭
- 23. 彙編語言x86 Irvine32
- 24. 理解ATT彙編語言
- 25. Doxygen和彙編語言
- 26. 彙編語言到C
- 27. MIPS彙編語言(Power2)
- 28. 彙編語言NASM錯誤
- 29. 與彙編語言拼搏
- 30. C至MIPS彙編語言
C for CUDA出了什麼問題? http://developer.download.nvidia.com/compute/cuda/2_1/toolkit/docs/NVIDIA_CUDA_Programming_Guide_2.1.pdf – 2011-09-08 19:05:51
幾周前回復[在「是否可以將指令放入CUDA代碼中?」 ](http://stackoverflow.com/questions/3677220/is-it-possible-to-put-instructions-into-cuda-code/7072079#7072079)。 *注意:*不是接受的答案,而是後來的答案。 – dmckee
@dmckee +1。另外,由於CUDA 3.2(和2.0設備)函數指針在不干擾ptx的情況下得到支持。而較舊的設備根本沒有設備函數這樣的東西 - 所有對來自內核的'__device__'函數的調用都被內聯了。 – aland