我有一个CUDA内核,我想从C文件启动。我将内核放在.cu文件中,并创建了一个调用内核的包装函数。然后我创建了一个简单声明包装函数的头文件。在我的C文件中,我包含了头文件并调用了包装函数。
如果我想将这些文件编译到对象然后链接它们,我的makefile会是什么样子?
答案 0 :(得分:1)
nvcc使用文件扩展名自动确定语言和编译轨迹。所以你实际上只需要一个编译语句,它可以简单到:
application: foo.cu bar.c
nvcc $(CUDAFLAGS) -XComplier=$(CFLAGS) -Xlinker=$(LDFLAGS) -o $@ $^
[免责声明:用浏览器编写,不包含标签,从未测试,确切形式将取决于使用make的风味,使用风险自负]
在CUDAFLAGS
中定义您需要的任何CUDA特定选项。我认为它不会将CFLAGS
和LDFLAGS
变量括在引号中,但您可能需要对此进行一些实验。