所以我需要创建一个具有不同行长的矩阵,这就是普通C / C ++的样子
int** MpesosT = (int**)malloc(N * sizeof(int*));
for (int i = 0; i < N; i++)
{
MpesosT[i] = (int*)malloc(vecinosT[i] * sizeof(int));
}
但是,我不知道如何使用CUDA函数来分配内存:
int* Vector; cudaMallocManaged(&Vector, VectorSize* sizeof(int));
我不能只使用大小为N * N的向量,因为每一行都有不同的大小,所以我该怎么做?
花了几个小时,但我找到了解决方法。如果有人有同样的问题:
double** Matrix;
cudaMallocManaged((double***)&Matrix, N * sizeof(double*));
for (i = 0; i < N; i++)
{
cudaMallocManaged((double**)&Matrix[i], rowlength[i] * sizeof(double));
}
这样,每一行都有不同的长度