jjzjj

c++ - AVX 256 位代码的性能略逊于等效的 128 位 SSSE3 代码

我正在尝试编写非常有效的汉明距离代码。灵感来自WojciechMuła极其聪明的SSE3popcountimplementation,我编写了一个AVX2等效解决方案,这次使用256位寄存器。我预计基于所涉及操作的双倍并行度至少有30%-40%的改进,但令我惊讶的是,AVX2代码有点慢(大约2%)!有人能告诉我我没有获得预期性能提升的可能原因吗?展开,两个64字节block的SSE3汉明距离:INT32SSE_PopCount(constUINT32*__restrictpA,constUINT32*__restrictpB){__m128ipaccum=_mm_setzero_si1

c++ - AVX 256 位代码的性能略逊于等效的 128 位 SSSE3 代码

我正在尝试编写非常有效的汉明距离代码。灵感来自WojciechMuła极其聪明的SSE3popcountimplementation,我编写了一个AVX2等效解决方案,这次使用256位寄存器。我预计基于所涉及操作的双倍并行度至少有30%-40%的改进,但令我惊讶的是,AVX2代码有点慢(大约2%)!有人能告诉我我没有获得预期性能提升的可能原因吗?展开,两个64字节block的SSE3汉明距离:INT32SSE_PopCount(constUINT32*__restrictpA,constUINT32*__restrictpB){__m128ipaccum=_mm_setzero_si1