如何在cudaMalloc中分配...?

时间:2018-01-15 06:44:11

标签: cuda

所有。 我想知道如何分配双指针给cuda。 我的代码如下。

------------这是结构---

typedef struct vertex vertex;

struct vertex {
    unsigned int vertex_id;
    float pagerank;
    float pagerank_next;
    unsigned int n_successors;
    vertex ** successors;
};

------------这些是顶点----

vertex * vertices;
vertices = (vertex *)malloc(n_vertices * sizeof(vertex));
vertex *d_vertices;
cudaMalloc((void **)&d_vertices, n_vertices * sizeof(vertex));

---------这些是垂直的' succesors。这意味着双指针----

vertices[i].successors = (vertex**)malloc(vertices[i].n_successors*sizeof(vertex *));
cudaMalloc((void ***)&d_vertices[i].successors, vertices[i].n_successors * sizeof(vertex *)); // error part.

当我分配cudaMalloc((void ***)&d_vertices[i].successors, vertices[i].n_successors * sizeof(vertex *));

Visual Studio停止了...我猜指针错误。但我不知道如何在cuda中加倍指针分配。 请让我知道该代码中的错误。 非常感谢你。

最好的问候

0 个答案:

没有答案