如何在推力变换期间对矢量重新排序?
我如何将这个简单的代码转换为推力代码?
for (i=0;i<cA-rA;i++)
sn[i]=c[n_index[i]]-sn[i];
更多信息: cA 和 rA 是常量整数,因此我们可以认为 'n'= cA-rA sn :浮点数组(n) n_index : int(n) 数组 c : array of float(cA)
我的问题是 n_index[i] 指向 C 数组的元素。 谢谢你!
How could i transform this simple code to thrust code?
for (i=0;i<cA-rA;i++)
sn[i]=c[n_index[i]]-sn[i];
More Info:
cA and rA are const integers so we can concider as an 'n'= cA-rA
sn : array of float(n)
n_index : array of int(n)
c : array of float(cA)
My problem is with the n_index[i] that points to the element of the C array.
thank you!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以通过使用
permutation_iterator
将thrust::transform
与“gather”操作融合来实现此目的:You can implement this by fusing
thrust::transform
with a "gather" operation using apermutation_iterator
:我尝试了第一个,但没有得到正确的结果。第二个 permutation_iterator 需要位于两个向量的末尾。
尝试以下更正:
I tried the first one and wasn't getting the correct results. the second permutation_iterator needs to be at the end of BOTH vectors.
Try the following correction: