Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cuda 5.0动态并行错误:ptxas致命。未解析的外部函数';cudaLaunchDevice_Cuda_Parallel Processing_Gpu - Fatal编程技术网

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

cuda 5.0动态并行错误:ptxas致命。未解析的外部函数';cudaLaunchDevice,cuda,parallel-processing,gpu,Cuda,Parallel Processing,Gpu,我在使用CUDA 5的Linux上使用计算能力为35的特斯拉k20。通过一个简单的子内核调用,它会给出一个编译错误:未解析的外部函数cudaLaunchDevice 我的命令行如下所示: nvcc --compile -G -O0 -g -gencode arch=compute_35 , code=sm_35 -x cu -o fill.cu fill.o 我在lib64中看到了cudadevrt.a。。我们是否需要添加它,或者可以做些什么来解决它?没有子内核调用,一切正常。您必须在启用可重

我在使用CUDA 5的Linux上使用计算能力为35的特斯拉k20。通过一个简单的子内核调用,它会给出一个编译错误:
未解析的外部函数cudaLaunchDevice

我的命令行如下所示:

nvcc --compile -G -O0 -g -gencode arch=compute_35 , code=sm_35 -x cu -o fill.cu fill.o

我在lib64中看到了
cudadevrt.a
。。我们是否需要添加它,或者可以做些什么来解决它?没有子内核调用,一切正常。

您必须在启用可重定位设备代码的情况下显式编译,并链接设备运行库,以便使用动态并行性。因此,编译命令必须包括
--relocatable device code true
,链接命令(您没有向我们展示)应该包括
-lcudadevrt


这个过程在《动态并行编程指南pdf》的“工具包对动态并行的支持”一节中有详细描述。

也许我有点离题了,但是我想提到的是,我在Windows/Visual Studio 2010下也遇到了同样的问题,我已经通过Talonmes的最后一条评论在几个步骤中解决了这个问题

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

我希望这些信息是有用的

我已经在EclipseCudaNVCC链接器库中添加了该库,但仍然出现错误。现在命令行看起来是nvcc--compile-G-O0-G-gencode arch=compute_35,code=sm_35-xcu-o“fill.o”。/fill.cu-lcudadevrt我尝试了库路径和将cudadevrt库复制到项目文件中。仍然存在错误..@Zahid:您正在编写的命令只是将设备代码编译到目标文件中。您需要将-lcudadevrt添加到链接应用程序的命令中。你读了我链接到的pdf吗?它没有到达nvcc链接器。它在给出错误后停止编译。是否需要将设备链接器模式选择为。。单独编译?@Zahid:检查我的编辑。我忽略了您没有启用可重定位设备代码进行编译的事实。将
-rdc=true
添加到compile语句中,并将-lcudavert添加到linking语句中。