-1
我設置了CUDA 6.5,我只是想運行一個非常基本的代碼。在將設備陣列從設備傳輸到CUDA中的主機之後無法訪問陣列元素
我想要做的是將數組從主機複製到設備,然後將其從設備複製回主機。
int *d_mandelbrot_set;
int a[5] = {1,2,3,4,5};
cudaError_t cudaStatus;
// Allocate GPU buffers for three vectors (two input, one output) .
cudaStatus = cudaMalloc((void**)&d_mandelbrot_set, 5 * sizeof(int));
if (cudaStatus == cudaSuccess) cout << "Success\n";
cudaStatus = cudaMemcpy(d_mandelbrot_set, a, 5 * sizeof(int), cudaMemcpyHostToDevice);
if (cudaStatus == cudaSuccess) cout << "Success\n";
int *h_mandelbrot_set;
cudaStatus = cudaMemcpy(h_mandelbrot_set, d_mandelbrot_set, 5*sizeof(int), cudaMemcpyDeviceToHost);
if (cudaStatus == cudaSuccess) cout << "Success\n";
for (int k = 0; k < 5; k++)
cout << h_mandelbrot_set[k] << " "; // THIS IS WHAT GIVES THE RUN TIME ERROR
但是,當我嘗試訪問元素h_mandelbrot_set
陣列,它提供了一個運行時錯誤。
您尚未分配'h_mandelbrot_set'。 – Jez 2014-09-26 18:13:54