根据 CUDA 的推力库文档,thrust::inclusive_scan()
有4 个参数:
OutputIterator thrust::inclusive_scan(InputIterator first,
InputIterator last,
OutputIterator result,
AssociativeOperator binary_op
)
然而在使用演示中(在同一个文档中),它们传递了5 个参数。额外的第 4 个参数作为扫描的初始值传递(就像 in 一样thrust::exclusive_scan()
):
int data[10] = {-5, 0, 2, -3, 2, 4, 0, -1, 2, 8};
thrust::maximum<int> binary_op;
thrust::inclusive_scan(data, data + 10, data, 1, binary_op); // in-place scan
现在,我的代码将只编译传递 4 个参数(传递 5 给出错误no instance of overloaded function "thrust::inclusive_scan" matches the argument list
),但我碰巧需要初始化我的滚动最大值,就像在示例中一样。
谁能澄清如何初始化包容性扫描?
非常感谢。