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