小编paf*_*ume的帖子

在 CUDA 内核中调用内核

我正在尝试做类似的事情:

__global__ void foo()
{
    // do stuff
}

__global__ void boo()
{
    foo<<<m, n>>>();
}
Run Code Online (Sandbox Code Playgroud)

但我收到错误“从 __device__ 或 __global__ 函数启动内核需要单独的编译模式”

我尝试用谷歌搜索答案,看到一些关于“动态并行性”的结果,它说它需要我拥有的计算能力 3 或更高(GTX 750 Ti 计算能力 5)。
我还需要打开“rdc”标志,虽然它确实使错误消失,但无论如何它都会使编译失败(即使我注释了所有内容)

那么我怎样才能实现我的目标或者可能存在什么问题呢?
(使用cuda 11.0)
我还添加了“cudadevrt.lib;cudart.lib;” 在项目属性中的链接器中输入

编辑:
当 rdc 设置为 true 时给出的错误:

错误MSB3721命令“”C:\ Program Files \ NVIDIA GPU计算工具包\ CUDA \ v11.0 \ bin \ nvcc.exe”-dlink -o“x64 \ Debug \ crimson cuda.device-link.obj”-Xcompiler“ /EHsc /W3 /nologo /Od /Zi /Fdx64\Debug\vc142.pdb /RTC1 /MDd " -L"C:\Program Files\NVIDIA GPU 计算工具包\CUDA\v11.0\bin/crt" -L" C:\Program Files\NVIDIA GPU 计算工具包\CUDA\v11.0\lib\x64" cudadevrt.lib cudart.lib cudart_static.lib …

c++ cuda visual-studio-2019

3
推荐指数
1
解决办法
4874
查看次数

标签 统计

c++ ×1

cuda ×1

visual-studio-2019 ×1