c++ - 如何编译具有动态并行性的 .cu?

标签 c++ cuda dynamic-parallelism

<分区>

我有 2 个 cpp 文件 setupfunctions,6 个 .cu 文件 mainfloodtimestepdischargecontinuitycopy。 我正在尝试将其编译为主要调用 cpp 文件,因此泛洪内核 global 然后泛洪调用时间步长、放电、连续性和复制内核所有设备

是这样的:

主要
~函数
~设置
~洪水
~~时间步
~~放电
~~连续性
~~复制

我正在使用带有 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 

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

有人可以帮助我吗?

最佳答案

尝试:

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

关于c++ - 如何编译具有动态并行性的 .cu?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23096840/

相关文章:

c++ - 对同一图形应用多个同时旋转

c++ - 改进稀疏线性系统的解决方案

c++ - CUDA 动态并行,性能差

c++ - 使用 C++ 的 Web 服务

c++ - C++中的多维对象数组,我无法初始化它!

cuda - 什么时候纹理内存应该优先于常量内存?

c++ - 我有两个 GPU,我怎么能只让其中一个执行特定的 CUDA 任务呢?

cuda - 使用动态并行 (CUDA) 编译 .cu 文件

c++ - LRU 缓存和多线程