Cuda GTX 980 ti上的动态并行:未知错误

Cuda GTX 980 ti上的动态并行:未知错误,cuda,nvidia,dynamic-parallelism,Cuda,Nvidia,Dynamic Parallelism,我正在GTX 980 ti卡上尝试动态并行。 所有运行代码的尝试都返回“未知错误”。 下面显示了带有编译选项的简单代码 我可以在depth=0下执行内核,没有任何问题。 第一次调用子级时,会给出错误。 cudaDeviceSynchronize() 有什么想法吗?这可能是一个司机的问题吗 编辑1: 操作系统:Linux-x86_64 Nvidia驱动程序版本:384.59 nvcc版本7.5.17 有两个980 ti与PCIe x16 Gen3连接。系统还将windows安装在另一个RAID配置

我正在GTX 980 ti卡上尝试动态并行。 所有运行代码的尝试都返回“未知错误”。 下面显示了带有编译选项的简单代码

我可以在
depth=0
下执行内核,没有任何问题。 第一次调用子级时,会给出错误。
cudaDeviceSynchronize()

有什么想法吗?这可能是一个司机的问题吗

编辑1:

操作系统:Linux-x86_64

Nvidia驱动程序版本:384.59

nvcc版本7.5.17

有两个980 ti与PCIe x16 Gen3连接。系统还将windows安装在另一个RAID配置的SSD上

#include <cuda.h>
#include <fstream>
#include <stdio.h>
#include <stdlib.h>

__global__ void ker_two(){
int two=0;
two++;
}

__global__ void ker_one(){
int one=0;
one++;
ker_two<<<1,1>>>();
cudaDeviceSynchronize();
};

int main( ){

ker_one<<<1,1>>>();
cudaDeviceSynchronize();

cudaError_t err = cudaGetLastError();
if (err != cudaSuccess) 
    printf("Cuda Error: %s\n", cudaGetErrorString(err));//*/

return 0;
}
我能够(?)在带有麦克斯韦泰坦卡的机器上重现错误。这是一个Fedora 24发行版,手动安装了CUDA 8.0.61。驱动程序版本是375.51

但是-似乎只有在调用
keru one()
中的
cudaDeviceSynchronize()
时,问题才会出现在我的系统上,无论我是否调用第二个内核。因此,这可能是您看到的问题,而不是动态并行性本身


考虑到@Talonmes的评论,这甚至可能只是一个驱动程序问题。

我对您的代码和编译命令没有任何问题。你没有提到你的环境(操作系统、驱动程序版本、CUDA版本)。“我在尝试动态并行”——坦率地说?不用麻烦了。现在的方式几乎不值得,如果有的话。为了反驳这一点,我用367.48驱动程序和麦克斯韦卡在CUDA 7.5和CUDA 8下编译并运行了MCVE代码,无法重现错误
nvcc -arch=compute_52 -rdc=true -lcudadevrt test.cu