Как скопировать структуру дерева тетраэдров в память устройства CUDA?

Если я хочу переместить нижерасположенную структуру TetrahedronStruct в память устройства CUDA, как мне следует продолжить?

 struct TetrahedronStruct { int index; int region; TriangleFaces Faces[4]; Vertex Vertices[4]; struct TetrahedronStruct *adjTetrahedrons[4]; }; typedef struct { long double Nx, Ny, Nz; long double d; Vertex V[3]; } TriangleFaces; typedef struct { long double x, y, z; } Vertex; 

Подробности:

Предусмотрены детали сетки (количество узлов, тетраэдров, координат и областей). Создание дерева выполняется в цикле for. В принципе, каждое лицо находится и расположено в дереве соответственно с его координатами и смежностью.

В устройстве CUDA мне нужно использовать эту структуру для наложения на носитель, чтобы имитировать, как частицы будут перемещаться по этому носителю. Каждый из миллионов частиц перемещается из тетраэдра в тетраэдр (каждый тетраэдр обладает свойствами среды, в которой он находится).

Линеаризация структур будет проще, а затем скопировать их на устройство.

В новых CUDA 6 глубоких копиях будет намного проще, если ваша вычислительная способность равна 3.x или выше с Unified Memory .