参见英文答案 >
Copying a struct containing pointers to CUDA device3个
使用CUDA编程我在尝试将一些数据从主机复制到gpu时遇到了问题.
使用CUDA编程我在尝试将一些数据从主机复制到gpu时遇到了问题.
我有3个这样的嵌套结构:
typedef struct { char data[128]; short length; } Cell; typedef struct { Cell* elements; int height; int width; } Matrix; typedef struct { Matrix* tables; int count; } Container;
所以Container“包含”一些Matrix元素,而这些元素又包含一些Cell元素.
假设我以这种方式动态分配主机内存:
Container c; c.tables = malloc(20 * sizeof(Matrix)); for(int i = 0;i<20;i++){ Matrix m; m.elements = malloc(100 * sizeof(Cell)); c.tables[i] = m; }
也就是说,每个100个单元的20个矩阵的容器.
>我现在如何使用cudaMemCpy()将此数据复制到设备内存?
>有没有什么好方法可以从主机到设备执行“struct of struct”的深层复制?
谢谢你的时间.
安德里亚