如何使用动态并行性编译.cu?

时间:2014-04-16 00:24:04

标签: c++ cuda dynamic-parallelism

我有2个cpp文件设置功能,6 .cu文件主要泛滥 timetep 放电连续性复制。 我试图将其编译为主调用cpp文件,因此泛洪内核全局然后泛洪调用时间步,放电,连续性和复制内核所有设备

这样的事情:

主要
〜功能
〜设置
〜洪水
~~时间步
~~放电
~~连续性
~~复制

我使用的是带有CUDA 5.5的GK110主板,但我不知道如何在不同的源代码中编译(我收到错误,设备功能需要分离编译模式)。 我也不知道如何使用-dc或-rtc = {true}和动态并行标志。

我试图这样做,但不起作用:

g++  -c functions.cpp -std=c++0x 
g++  -c setup.cpp -std=c++0x  
nvcc -arch=sm_35 -dc timestep.cu copy.cu continuity.cu discharge.cu
nvcc -arch=sm_35 -dlink timestep.o copy.o continuity.o discharge.o -o link.o -lcudadevrt
nvcc -dc flood.cu -arch sm_35 

当我到达第五行时,我收到错误消息,指出无法配置设备函数调用。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

尝试:

g++  -c functions.cpp -std=c++0x 
g++  -c setup.cpp -std=c++0x  
nvcc timestep.cu copy.cu continuity.cu discharge.cu flood.cu -arch=sm_35 -lcudadevrt -rdc=true -c
nvcc timestep.o copy.o continuity.o discharge.o flood.o -arch=sm_35 -lcudadevrt -dlink -o dlink.o 
g++ functions.o steup.o dlink.o -o a.out -std=c++0x -L/<path>/cuda/lib<64,32> -lcudart -lcudadevrt