【发布时间】:2012-12-28 23:41:56
【问题描述】:
我有一个指针int *h_a,它引用了我想复制到设备的大量数据点N(在主机上)。所以我这样做:
thrust::host_vector<int> ht_a(h_a, h_a + N);
thrust::device_vector<int> dt_a = ht_a;
但是,创建ht_a 似乎暗示复制 h_a 而不是引用它,这是低效的,因为我不需要h_a 的另一个副本。
我只想创建ht_a 以使&ht_a[0] 指向h_a[0] - 怎么做?
非常感谢。
另外,由于除了复制到设备内存之外,我实际上并没有对 ht_a 做任何事情,我很想知道我们是否可以直接在 int* 和 thrust::device_vector<int> 之间切换。 em>
【问题讨论】:
-
是的,您可以直接从两个
int*s 初始化device_vector,就像您在示例中对host_vector所做的那样。