CUDA Nvcc 編譯流程

洛欣發表於2009-11-13
注:以下檔案為轉載:

如果你想了解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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章