首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cuda 5.0动态并行错误: ptxas致命。无法解析的外部函数'cudaLaunchDevice

cuda 5.0动态并行错误: ptxas致命。无法解析的外部函数'cudaLaunchDevice
EN

Stack Overflow用户
提问于 2012-12-15 10:36:10
回答 2查看 6K关注 0票数 5

我在带有CUDA5的Linux上使用计算能力为35的tesla k20。通过一个简单的子内核调用,它给出了一个编译错误:Unresolved extern function cudaLaunchDevice

我的命令行看起来像这样:

代码语言:javascript
复制
nvcc --compile -G -O0 -g -gencode arch=compute_35 , code=sm_35 -x cu -o fill.cu fill.o

我在lib64里看到了cudadevrt.a ..我们需要添加它吗?或者可以做些什么来解决它?没有子内核调用,一切都很好。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-15 16:20:26

您必须显式编译时启用可重定位设备代码,并链接设备运行时库才能使用动态并行。因此,您的编译命令必须包含--relocatable-device-code true,而链接命令(您尚未向我们展示)应包含-lcudadevrt

这个过程在DYNAMIC Parallelism Programming Guide pdf,available here的"TOOLKIT SUPPORT FOR Dynamic PARALLELISM“一节中有详细描述。

票数 11
EN

Stack Overflow用户

发布于 2012-12-19 20:02:18

也许我有点跑题了,但我想提一下,我在Windows/Visual Studio2010下也遇到了同样的问题,我已经用talonmies的最后一条评论在几个步骤中解决了这个问题。

代码语言:javascript
复制
1) View -> Property Pages
2) Configuration Properties -> CUDA C/C++ -> Common -> Generate Relocatable Device Code -> Yes (-rdc=true)
3) Configuration Properties -> CUDA C/C++ -> Device -> Code Generation -> compute_35,sm_35
4) Configuration Properties -> Linker -> Input -> Additional Dependencies -> cudadevrt.lib

我希望这些信息是有用的。

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

https://stackoverflow.com/questions/13888804

复制
相关文章

相似问题

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