相关疑难解决方法(0)

Intel cpu上的SIMD前缀和

我需要实现前缀和算法,并且需要它尽可能快.例如:

[3, 1,  7,  0,  4,  1,  6,  3]
Run Code Online (Sandbox Code Playgroud)

有没有办法使用SSE/mmx/SIMD cpu指令执行此操作?

我的第一个想法是递归并行地对每一对求和,直到所有的总和都计算如下!

[3, 4, 11, 11, 15, 16, 22, 25]
Run Code Online (Sandbox Code Playgroud)

为了使算法更清晰,"z"不是最终的输出

而是用来计算输出

//in parallel do 
for (int i = 0; i < z.length; i++) {
    z[i] = x[i << 1] + x[(i << 1) + 1];
}
Run Code Online (Sandbox Code Playgroud)

c++ sse simd prefix-sum

20
推荐指数
5
解决办法
6755
查看次数

标签 统计

c++ ×1

prefix-sum ×1

simd ×1

sse ×1