c++ - 在统一内存 CUDA C/C++ 中分配一个二维 vector

标签 c++ memory vector cuda 2d

所以我需要创建一个具有不同行长的矩阵,这就是它在普通 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 或其他大小的 vector ,因为每一行都有不同的大小,所以我该怎么做呢?

最佳答案

花了几个小时,但我找到了方法。如果有人遇到同样的问题:

double** Matrix;
cudaMallocManaged((double***)&Matrix, N * sizeof(double*));
for (i = 0; i < N; i++)
{
    cudaMallocManaged((double**)&Matrix[i], rowlength[i] * sizeof(double));
}

这样,每一行的长度都不同

关于c++ - 在统一内存 CUDA C/C++ 中分配一个二维 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59162457/

相关文章:

c++ - Qt5 在多宿主网络上绑定(bind) TCP 套接字

c++ - 引用结构与变量时的对齐方式

c++ - Armadillo C++ : Sorting a vector in terms of two other vectors

c++ - 当我返回指向结构的指针 vector 时出现段错误

c++ - 从另一个 vector 搜索和查找一个 vector 中的元素的有效方法?

c++ - 为什么 stringstream 在 cout 时不移动到下一组字符?

c++ - QMYSQL 驱动程序未在发行版中加载,正在调试中工作

c++ - linux AFS 段错误

iphone - 在 dealloc 中调用 super 是否重要?

javascript - 查看器.js/pdf.js : Memory usage increases every time a pdf is rendered