Makefile(1)編寫簡單的makefile批量編譯CUDA程式
阿新 • • 發佈:2018-12-31
本節講述如何在命令列編譯CUDA程式,使用makefile能讓我們提高效率。
現在這裡有若干cuda程式碼等待被編譯:
當我們在命令列執行make edit時,程式碼被批量編譯:
當我們想批量清空時,只需要在命令列敲上make clean即可,生成的可執行檔案就被清空了。
我們來看一下這個簡單又好用的makefile是如何編寫的:
首先,使用變數objects定義了我們要生成的可執行檔案,在這裡統一定義是為了之後呼叫方便,想批處理直接呼叫$(objects)即可。當我們想新增或刪除哪個cuda原始碼,只需要在這裡修改就可以全文生效,這對於大型專案(檔案多,要修改時工作量大)來說是非常好用的功能。
其次,這裡的edit和clean都是標籤型別,用過彙編的朋友應該不會陌生,簡單來說就是當執行make+標籤時,可以執行標籤後面定義的內容。
.PHONY顯式宣告標籤。
重頭戲來了,真正要執行的是命令列指令。
規則是
target:依賴檔案
可執行指令
預設,當執行make時,如果沒有target生成或者依賴檔案其中任何一個比target的修改時間要晚,target都會更新。
這裡對應cuda編譯的可執行指令為nvcc -o filename filename.cu。