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

时间:2017-07-30 17:17:53

标签: 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。系统还在另一个RAID配置的SSD上安装了Windows。

#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;
}

编译
nvcc -arch=compute_52 -rdc=true -lcudadevrt test.cu

1 个答案:

答案 0 :(得分:1)

我能够(?)在带有Maxwell Titan卡的机器上重现错误。它是手动安装CUDA 8.0.61的Fedora 24发行版。驱动程序版本为375.51。

然而 - 似乎问题只发生在我的系统上,当我在cudaDeviceSynchronize()内调用ker_one()时,无论我是否调用第二个内核。也许这就是你所看到的问题,而不是动态并行本身。

考虑@ talonmies&#39;评论,这甚至可能只是一个驱动问题。