【发布时间】:2014-10-19 05:59:23
【问题描述】:
说,我有一个类似的结构
struct vertex
{
int x;
int y;
int z;
}
我创建了一个指针数组,如
vertex *points = new vertex[100];
所以,有时我只需要该指针数组的 x 个成员。那我该怎么做呢?
例如一个新的指针: int *xPoints=new int[100];
在此我想存储顶点的所有 x 成员。有什么命令可以做到这一点吗? 我不想使用循环来做到这一点,我想使用特殊的 memcopy 或其他东西来做到这一点。
【问题讨论】:
-
它与 CUDA 有什么关系?你想在 CUDA 内核中做吗??
-
是的。实际上它是一个内存复制主机到设备。但如果可能的话,我什至会考虑在主机上做。我正在优化我的内核的速度,并希望消除结构数组指针。找到可以优化速度的地方。所以,试一试,这就是我添加 cuda 标签的原因。
-
我相信这个问题本质上是 Farzad 链接的第一个问题或从该问题链接的一个问题的副本。
cudaMemcpy2D可以在源端和目标端的任一端或两端以跨步方式复制。 -
你能给我举个例子吗? Nvidia 文档中没有相关示例。即使解决上述问题也可以。
标签: arrays pointers cuda structure memcpy