在最小时钟周期内执行AVX2 VPXOR和popcount的优化方法

时间:2019-03-27 10:08:45

标签: c++ x86 simd avx2 hammingweight

我们必须对两个包含uint64_t的5个元素(无符号long long)的两个数组执行按位XOR操作,然后执行1的计数(弹出计数)。 通过使用AVX2 256位宽的YMM寄存器,AVX2 VPXOR和popcount来以最小的时钟周期实现此目标的优化方法是什么?

现在,我们通过遵循以下代码段来实现此目的

for (j = 0; j < 5; j++){
 xorResult = cylinderArrayVectorA[j] ^ cylinderArrayVectorB[j];
 noOfOnes = _mm_popcnt_u64(xorResult);
 sumOfOnes += noOfOnes;

阵列A和阵列B中有260位。在最小时钟周期内执行AVX2 VPXOR和popcount的优化方法是什么。

0 个答案:

没有答案