方案一
http://osask.cn/front/ask/view/929586
除了编译之外,动态并行还需要可重定位的设备代码链接 。
您的nvcc
命令行指定了一个仅编译操作( -rdc=true -c
)。
g++
不会执行任何设备代码链接。 所以在这样的情况下,当使用g++
进行最终的链接操作时,需要额外的设备代码链接步骤 。
像这样的东西:
nvcc -arch=sm_35 -rdc=true -c file.cu
nvcc -arch=sm_35 -dlink -o file_link.o file.o -lcudadevrt -lcudart
g++ file.o file_link.o main.cpp -L<path> -lcudart -lcudadevrt
方案二
https://blog.csdn.net/bruce_0712/article/details/78515133
我的案例