我有一个指针int *h_a
,它引用了大量的数据点(在主机上),我想将这些数据点复制到设备上。所以我这样做:
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>
之间进行转换。
host_vector
一样直接从两个int *
初始化device_vector
。 - Jared Hoberock