1. 程式人生 > >Makefile(1)編寫簡單的makefile批量編譯CUDA程式

Makefile(1)編寫簡單的makefile批量編譯CUDA程式

本節講述如何在命令列編譯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。