這是一個愚蠢的問題,但我想知道CUDA是否使用解釋器或編譯器? 我想知道,因爲我不太確定CUDA如何設法讓源代碼在具有不同計算能力的兩張卡上運行。CUDA使用解釋器還是編譯器?
1
A
回答
1
程序員使用 '的CUDA C'(C具有Nvidia擴展和某些限制),通過PathScale公司Open64 C編譯器編譯。
所以,你的回答是:它使用了一個編譯器。
而且在其上可以在多個卡(source)運行的原因摸:
CUDA C/C++提供了一個抽象,它是你表達你希望你的程序來執行的手段。編譯器生成的PTX代碼也不是硬件專用的。在運行時,PTX被編譯用於特定的目標GPU--這是驅動程序的責任,每次新GPU發佈時都會更新。
0
這些官方文件CUDA C Programming Guide和The CUDA Compiler Driver (NVCC)解釋所有關於編譯過程的細節。
從第二文檔:
NVCC模仿GNU編譯器的gcc的行爲:它接受的常規編譯器選項,如用於限定宏的範圍 和 包括/庫路徑,和用於轉向編譯過程。
0
不僅限於cuda,directx或opengl中的着色器也被編譯爲某種字節代碼並被底層驅動程序轉換爲本地代碼。
相關問題
- 1. Java - 解釋還是編譯?
- 2. .NET VM是編譯器還是解釋器?
- 3. Titanium使用解釋器或編譯器
- 4. 編譯器vs解釋器,還是用解釋型語言編寫編譯器仍然使它成爲編譯器?
- 5. Java編譯器/解釋器
- 6. 使用Python解釋器時,是否使用了編譯器?
- 7. 是javascript解釋還是jit編譯
- 8. ETL是解釋還是編譯語言
- 9. Clojure是編譯還是解釋?
- 10. Python是否使用編譯器或解釋器或組合?
- 11. python編譯器包解釋
- 12. QMetaObject編譯器解釋?
- 13. 解釋器是否編譯python腳本?
- 14. JAVA:解釋器還是編譯器? Java的文件擴展名?如何執行?
- 15. JavaScript有編譯器和解釋器嗎?
- 16. RUBY中的編譯器和解釋器
- 17. PHP - 即時編譯器Vs解釋器
- 18. 什麼是Perl 5的可用編譯器/解釋器?
- 19. 正則表達式應該在解析器中用於解釋器還是編譯器?
- 20. 用Clang編譯Ruby和Python解釋器?
- 21. 您是否使用過任何C++解釋器(不是編譯器)?
- 22. 使用Python構建編譯器或解釋器
- 23. cuda nvcc交叉編譯器
- 24. CUDA編譯器(nvcc)宏
- 25. CUDA NVCC編譯器錯誤
- 26. 解析器,解釋器和編譯器上的學習資源
- 27. 彙編器,解釋器和編譯器的圖像?
- 28. Scala有一個解釋器給Scala項目執行它們的選項是編譯還是解釋?
- 29. 解釋器或編譯器中的單元格是什麼?
- 30. 什麼是最好的Scheme解釋器或編譯器?
值得注意的是,最近的CUDA對於GPU代碼對象使用基於elf的胖二進制格式,並且可執行文件可以在同一應用程序中包含多個體繫結構的最終彙編器。所以經常不需要驅動程序重新編譯PTX代碼,運行時庫只需從fat二進制有效內容中選擇適當的代碼對象。 – talonmies