CUDA Nvcc 編譯流程
注:以下檔案為轉載:
如果你想了解Nvcc到底搞了什麼鬼,究竟compute_xy sm_xy區別在哪裡,ptx,cudabin
又是怎麼巢狀到exe裡面最終被驅動執行的,這一節正是你想要的知識。他將講解每一個編
譯的具體步驟,而且不光是知識,讀者可以自己動手操作來體驗這一個過程。他的用處不僅
在能夠對CUDA的編譯以及工作機制有更深的認識,而且可以進行高階debug,比如可以自
己手動進行ptx->cudabin的步驟等等。
參考:nvcc2.1.pdf 由於水平有限,錯誤部分歡迎大家留言指出
作者:insky(wenyao2009(at)gmail.com)
主頁:www.gamecoding.cn
1. 一個編譯例子
隨意找一個包含kernel以及kernel呼叫的.cu檔案,如x.cu。進入命令列:敲打nvcc–cuda
x.cu –keep 將得到如下結果,-cuda是將.cu編譯成.cu.cpp,-keep保留中間結果。(如果提示 找不到nvcc請在path中新增%cuda_bin_path%)
開啟.cu 檔案所在目錄(此處是ptx),你會驚訝的發現多出了一大堆檔案,是的,很煩,
不過很快你將會喜歡上他們,因為他們把nvcc 的工作流程完美的記錄下來了。好吧,那我
們開始吧。
2. Virtual architecture vs GPUfeature
首先定位到檔案x.cu, x.ptx, x.sm_10.cubin這三個檔案上來,他們按照下圖流程依次生 成,x.cubin,x.ptx最終會被巢狀到x.cu.cpp 中。 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22785983/viewspace-619550/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一張圖解析 編譯器編譯流程圖解編譯
- Xcode編譯流程XCode編譯
- CUDA常見編譯器配置問題一覽編譯
- MySQL 5.6原始碼編譯安裝流程MySql原始碼編譯
- 星雲測試插裝編譯流程與CI整合編譯
- Ubuntu18.04 LTS 使用CUDA11.1編譯TensoFlow-GPU版本Ubuntu編譯GPU
- 奈學教育:Hadoop原始碼編譯全流程分享Hadoop原始碼編譯
- 深入剖析Vue原始碼 - 例項掛載,編譯流程Vue原始碼編譯
- ubuntu 16.04 LTS 核心原始碼下載編譯流程Ubuntu原始碼編譯
- 高通mdm9607 mcfg_sw.mbn配置編譯流程編譯
- Android進階:十四、熟悉Android打包編譯的流程Android編譯
- Java編譯與反編譯Java編譯
- 編譯編譯
- Ubuntu20.04部署TVM流程及編譯最佳化模型示例Ubuntu編譯模型
- hadoop編譯—+2.x編譯Hadoop編譯
- gcc 編譯器與 clang 編譯器GC編譯
- 編譯器的編譯基本過程編譯
- ubuntu下編譯交叉編譯工具鏈Ubuntu編譯
- [譯]iOS編譯器iOS編譯
- 程式碼線上編譯器(上)- 編輯及編譯編譯
- [譯]在CUDA C/C++中使用共享儲存器C++
- 開源編譯工具和編譯軟體編譯
- Make編譯之編譯32bit ffmpeg編譯
- N1064編譯鏈編譯編譯
- 作為移動開發你不能不瞭解的編譯流程移動開發編譯
- 編譯環境一致Wise2C的自動化流程編譯
- 高通平臺環境搭建,編譯,系統引導流程分析參考編譯
- windows上用vs2017靜態編譯onnxruntime-gpu CUDA cuDNN TensorRT的坎坷之路Windows編譯GPUDNN
- 流程編排、如此簡單-通用流程編排元件JDEasyFlow介紹元件
- cuda
- webrtc編譯Web編譯
- 編譯VIM編譯
- acl 編譯編譯
- 交叉編譯編譯
- gcc編譯GC編譯
- srilm編譯編譯
- 編譯版本編譯
- 編譯原理編譯原理