Tag: hammingweight

具有Core 2 CPU(SSSE3)的大缓冲区的位popcount

我正在寻找在512或更多字节的大缓冲区上popcount的最快方法。 我可以保证任何所需的对齐,缓冲区大小始终是2的幂。缓冲区对应于块分配,因此通常位是全部设置,没有设置,或者大多数设置有利于缓冲区的“左”,偶尔出洞。 我考虑过的一些解决方案是: 海湾合作委员会的__builtin_popcount Bitslice popcount_24words 计算位数,Brian Kernighan的方式 我对最快的解决方案感兴趣,它必须适用于属于core2或更新版本的32位x86芯片组。 SSE和SIMD引起了极大的兴趣。 我将在以下四核CPU上进行测试: matt@stanley:~/anacrolix/public/stackoverflow$ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 15 model name : Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz stepping : 11 cpu MHz : 1600.000 cache size : 4096 KB physical id : 0 siblings : […]