首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CUDA动态并行连接

CUDA动态并行连接
EN

Stack Overflow用户
提问于 2013-10-11 22:10:03
回答 1查看 1.1K关注 0票数 0

我有一个GTX泰坦,在上面我会使用动态并行。

我通过添加"-rdc = true“和标志"-lcudadevrt”进行了一些测试,但是在编译时总是会出现链接错误。

这是我的Makefile

代码语言:javascript
复制
DEP                     =       main.o Optimizer.o cudaOptimizer.o
CUDA_INSTALL_PATH       = /usr/local/cuda
INC_CUDA                = -I$(CUDA_INSTALL_PATH)/include
LIB_CUDA                = -L$(CUDA_INSTALL_PATH)/lib64 -lcuda -lcudart -lcublas -lcublas_device -lcudadevrt

optx: $(DEP)
    g++ $(LIB_CUDA) -o optx $(DEP)

main.o:
    g++ $(INC_CUDA) -c main.cpp

Optimizer.o:
    g++ $(INC_CUDA) -c Optimizer.cpp

cudaOptimizer.o:
    nvcc --compiler-options '-fPIC -O3' -arch sm_35 -c cudaOptimizer.cu -rdc=true

这就是问题所在:

代码语言:javascript
复制
g++ -I/usr/local/cuda/include -c main.cpp
g++ -I/usr/local/cuda/include -c Optimizer.cpp
nvcc --compiler-options '-fPIC -O3' -arch sm_35 -c cudaOptimizer.cu -rdc=true
g++ -L/usr/local/cuda/lib64 -lcuda -lcudart -lcublas -lcublas_device -lcudadevrt -o optx main.o Optimizer.o cudaOptimizer.o
cudaOptimizer.o: In function`__sti____cudaRegisterAll_48_tmpxft_00003942_00000000_6_cudaOptimizer_cpp1_ii__Z4ciaov()':tmpxft_00003942_00000000-3_cudaOptimizer.cudafe1.cpp:(.text.startup+0x1d): undefined reference to `__cudaRegisterLinkedBinary_48_tmpxft_00003942_00000000_6_cudaOptimizer_cpp1_ii__Z4ciaov'
collect2: error: ld returned 1 exit status
make: *** [optx] Error 1

我该如何解决这个问题?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-11 22:16:26

您正在与g++链接。

您是必须与nvcc链接,因为您正在进行设备代码链接,而g++不知道设备代码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19328039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档