CUDA';s推力::inclusive_scan()有一个';初始';参数

CUDA';s推力::inclusive_scan()有一个';初始';参数,cuda,gpgpu,thrust,Cuda,Gpgpu,Thrust,根据CUDA的数据,推力::包容性扫描()具有4个参数: OutputIterator thrust::inclusive_scan(InputIterator first, InputIterator last, OutputIterator result,

根据CUDA的数据,
推力::包容性扫描()
具有4个参数:

OutputIterator thrust::inclusive_scan(InputIterator       first,
                                      InputIterator       last,
                                      OutputIterator      result,
                                      AssociativeOperator binary_op 
                                     )  
但是在使用演示中(在同一文档中),它们传递了5个参数。额外的第四个参数作为扫描的初始值传递(与中完全相同):

int-data[10]={-5,0,2,-3,2,4,0,-1,2,8};
推力:最大二进制输出;
推力:包含扫描(数据,数据+10,数据,1,二进制)就地扫描
现在,我的代码将只编译传递4个参数(传递5个参数会产生错误
重载函数“推力::包容性扫描”的实例与参数列表不匹配
),但我恰好需要初始化滚动最大值,就像示例中一样

有人能说明如何初始化包含扫描吗


非常感谢。

您似乎不明白包容性扫描操作是什么。没有初始化包含扫描这样的事情。根据定义,包含扫描的第一个值始终是序列的第一个元素

那么序列呢

 [ 1, 2, 3, 4, 5, 6, 7 ]
包容性扫描是

[ 1, 3, 6, 10, 15, 21, 28 ]
独占扫描(初始化为零)为


你在哪里找到这个用法演示?在推力库文档中:哈,除非我没有得到什么东西,否则这似乎是完全错误的。可能会报告它。尝试将init值添加到结果向量的每个元素,在包含的scanYes中,
结果中的包含的scanelement 1
=输入中的元素1之后。我想我被推力库文档中错误的用法演示弄糊涂了。谢谢
[ 1, 3, 6, 10, 15, 21, 28 ]
[ 0, 1, 3, 6, 10, 15, 21 ]