哪个函数可以替换不推荐使用的函数thrust :: detail :: backend :: dereference在推力1.7中

时间:2013-11-29 01:35:57

标签: cuda thrust

我是CUDA的新手和推力,我从谷歌代码下载了一个GPU BVH建筑代码。但代码是在较旧版本的CUDA和推文下编写的。现在,我正在使用推出1.7的最新CUDA 5.5。似乎derefrence函数已被弃用,所以我想知道如何在最新的CUDA中重写以下代码并推动

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;

提前致谢!

2 个答案:

答案 0 :(得分:1)

最简单的解决方案可能是从GitHub下载您需要的Thrust版本并直接编译。

使用Thrust的内部功能不是一个好主意。 API无法在没有充分理由的情况下进行更改,但内部可能随时发生变化。

答案 1 :(得分:1)

您应该能够直接使用更新版本的Thrust取消引用迭代器:

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;