我正在嘗試GTX 980 ti卡上的動態並行。 運行代碼的所有嘗試都返回「未知錯誤」。 簡單代碼如下所示,帶有編譯選項。GTX 980 ti上的動態並行:未知錯誤
我可以執行內核depth=0
沒有問題。 第一次調用小孩時,會給出錯誤。 cudaDeviceSynchronize()
在查看其他問題後被納入,但沒有解決問題。
任何想法?這可能是一個驅動程序問題嗎?
編輯1:
操作系統:Linux-x86_64的
的Nvidia驅動程序版本:384.59
NVCC版本7.5.17
有兩個980 TI與條PCIE x16第3代連接。系統還在另一個配置了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版本)。 –
「我正在嘗試動態平行主義」 - 坦率地說?不要打擾。現在它的方式幾乎是不值得的,如果有的話。 – einpoklum