我使用SSE4.2和AVX2对2个vector之间的点积进行了向量化,如下所示。该代码是使用带有-O2优化标志的GCC4.8.4编译的。正如预期的那样,两者的性能都变得更好(并且AVX2比SSE4.2更快),但是当我使用PAPI分析代码时,我发现未命中的总数(主要是L1和L2)增加了很多:没有矢量化:PAPI_L1_TCM:784,112,091PAPI_L2_TCM:195,315,365PAPI_L3_TCM:79,362使用SSE4.2:PAPI_L1_TCM:1,024,234,171PAPI_L2_TCM:311,541,918PAPI_L3_TCM:68,842使用AVX2
我使用SSE4.2和AVX2对2个vector之间的点积进行了向量化,如下所示。该代码是使用带有-O2优化标志的GCC4.8.4编译的。正如预期的那样,两者的性能都变得更好(并且AVX2比SSE4.2更快),但是当我使用PAPI分析代码时,我发现未命中的总数(主要是L1和L2)增加了很多:没有矢量化:PAPI_L1_TCM:784,112,091PAPI_L2_TCM:195,315,365PAPI_L3_TCM:79,362使用SSE4.2:PAPI_L1_TCM:1,024,234,171PAPI_L2_TCM:311,541,918PAPI_L3_TCM:68,842使用AVX2