【发布时间】:2018-01-06 05:45:56
【问题描述】:
我正在 GTX 980 ti 卡上尝试动态并行。 运行代码的所有尝试都返回“未知错误”。 带有编译选项的简单代码如下所示。
我可以在depth=0 处执行内核,没有任何问题。
第一次调用孩子时,会给出错误。
cudaDeviceSynchronize() 在这里查看其他问题后被收录,但没有解决问题。
有什么想法吗?这可能是驱动程序问题吗?
编辑 1:
操作系统:Linux-x86_64
英伟达驱动版本: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
【问题讨论】:
-
我对你的代码和编译命令没有任何问题。你什么都不说你的环境(操作系统、驱动程序版本、CUDA 版本)。
-
“我正在尝试动态并行” - 坦率地说?不要打扰。现在的方式几乎不值得,如果有的话。
标签: cuda nvidia dynamic-parallelism