我是CUDA的新手,我从google代码下载了GPU BVH建筑代码。但是代码是用旧版本的CUDA和thrust编写的。现在,我使用最新的CUDA 5.5和推力1.7。似乎已经不再推荐derefrence函数了,所以我想知道如何用最新的CUDA和latest重写以下代码
typename std::iterator_traits<Output_iterator>::value_type value = def_value;
for (uint32 i = begin; i < end; ++i)
value = op( value, thrust::detail::backend::dereference( in_values + i ) );
thrust::detail::backend::dereference( out_values, leaf_id ) = value;提前感谢!
发布于 2013-11-30 02:25:01
您应该能够直接取消迭代器的引用,直接使用最新版本的recent:
typename std::iterator_traits<Output_iterator>::value_type value = def_value; for (uint32 i = begin; i < end; ++i) value = op( value, in_values[i] ); out_values[leaf_id] = value;
发布于 2013-11-29 23:06:37
最简单的解决方案可能是从GitHub下载所需的from版本,并直接编译。
使用推力的内部功能不是一个好主意。API不应该在没有充分理由的情况下改变,但是内部可能在任何时候都会改变。
https://stackoverflow.com/questions/20277104
复制相似问题