方案一
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
我的案例