cuda - 内存分配崩溃

时间:2016-06-08 21:15:24

标签: cuda

好的我正在尝试在gpu上分配一个结构数组,它崩溃了(给出了停止的工作消息)。

这是结构:

typedef struct point_t {
int id;
float x, y;
} point;

这是cuda代码的一部分:

    cudaError_t d_LoadPoints(point* points, int n , int chunkSize){  
        // Error code to check return values for CUDA calls
        cudaError_t err = cudaSuccess;

         int nBytes = n * sizeof(point);

        // Allocate the device input points array
        point* d_points;
        err = cudaMalloc((void** )&d_points, nBytes);


    if (err != cudaSuccess)
   {
    fprintf(stderr, "Failed to allocate device vector points (error code %s)!\n", cudaGetErrorString(err));
    exit(EXIT_FAILURE);
   }


    cudaMemcpy(d_points,points ,nBytes ,cudaMemcpyHostToDevice);
    puts("memory allocated successfully");

}

我尝试打印points数组的第一个元素,以及nchunksize,并且它正确显示。

这是它似乎崩溃的一点(我禁用了其余部分)。 无论调试打印如何,它都会崩溃。

我唯一能想到的是尺寸。

n为250,000,chunksize为64,000,我计划分配125个块,每个512个线程。

我不知道这是不是一个好主意,但这是一个副主题因为我可以;甚至到达内核调用。

1 个答案:

答案 0 :(得分:-2)

重新启动visual studio修复了问题