cuda - 内存分配崩溃
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)!
", cudaGetErrorString(err));
exit(EXIT_FAILURE);
}
cudaMemcpy(d_points,points ,nBytes ,cudaMemcpyHostToDevice);
puts("memory allocated successfully");
}
我尝试打印points
阵列的第一个元素,以及n
和chunksize
,它出来正确。
这是它似乎崩溃的点(我禁用了其余部分)。无论调试打印如何,它都会崩溃。
我唯一能想到的是尺寸。
n
是250,000,chunksize
是64,000,我打算分配125块,每块512个线程。
我不知道这是不是一个好主意,但这是一个副主题,因为我可以;甚至达到内核调用。
答案
重启visual studio解决了这个问题
以上是关于cuda - 内存分配崩溃的主要内容,如果未能解决你的问题,请参考以下文章