cuda - 内存分配崩溃

问题描述 投票:-3回答:1

好吧我试图在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个线程。

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

cuda
1个回答
-2
投票

重启visual studio解决了这个问题

© www.soinside.com 2019 - 2024. All rights reserved.