未解决的外部函数'cudaCGGetIntrinsicHandle'会回击

问题描述 投票:0回答:1

我正在为我的cuda-api-wrappers回购构建示例。不久前,我遇到了一个问题:每当我尝试使用“合作组”机制来编译代码为cuda-api-wrappers的文件时,都会收到错误消息:

.cu

这很奇怪,因为我只是在编译。好吧,我使用ptxas fatal : Unresolved extern function 'cudaCGGetIntrinsicHandle' 上的建议来解决该问题:

我建议...指定this nVIDIA DevTalk forum thread

我做了,那似乎行得通。但是,现在(在Devuan 3〜= Debian 10上使用CUDA 10.1)时,在linking

期间出现错误
-rdc=true

为什么仍会出现这些错误,我该怎么办?

cuda linker-errors nvcc nvlink gpu-cooperative-groups
1个回答
0
投票

这是一个非常棘手的错误...我还没有设法为其生成适当的MCVE。但是,如果我追加:

/usr/bin/nvcc   -I/path/to/src/cuda-api-wrappers/src -I/path/to/src/cuda-api-wrappers  -gencode arch=compute_61,code=sm_61 -Xcompiler -Wall -O3 -DNDEBUG   -rdc true -std=c++11 -x cu -c /path/to/src/cuda-api-wrappers/examples/by_runtime_api_module/execution_control.cu -o CMakeFiles/execution_control.dir/examples/by_runtime_api_module/execution_control.cu.o
/usr/bin/nvcc   -gencode arch=compute_61,code=sm_61 -Xcompiler -Wall -O3 -DNDEBUG -Xcompiler=-fPIC -Wno-deprecated-gpu-targets -shared -dlink CMakeFiles/execution_control.dir/examples/by_runtime_api_module/execution_control.cu.o -o CMakeFiles/execution_control.dir/cmake_device_link.o  -L/usr/lib/x86_64-linux-gnu/stubs  -L/usr/lib/gcc/x86_64-linux-gnu/8 lib/libcuda-api-wrappers.a /usr/lib/x86_64-linux-gnu/libcudart_static.a -lpthread -ldl  -lcudadevrt -lcudart_static -lrt 
nvlink error   : Undefined reference to 'cudaCGGetIntrinsicHandle' in 'CMakeFiles/execution_control.dir/examples/by_runtime_api_module/execution_control.cu.o'
nvlink error   : Undefined reference to 'cudaCGSynchronizeGrid' in 'CMakeFiles/execution_control.dir/examples/by_runtime_api_module/execution_control.cu.o'

到失败的命令行,即使其成为:

-L /usr/lib/x86_64-linux-gnu

有效。我不知道如何让CMake做到这一点。

© www.soinside.com 2019 - 2024. All rights reserved.