Non-K Skylake Overclocking Hurts AVX2 Performance, Problem Related to "256-bit Vector Warm-up" (

In an interesting article on overclocking the Core i5 6400 non-K processor, has a closer look at the poor AVX2 performance of the overclocked non-K processors. They ran a couple of tests including the Intel LINPACK suite and a x265 encoding benchmark. They find the performance to be significantly lower when using the OC BIOS compared to the regular BIOS. For LINPACK the performance going up from 3.1GHz to 4.5GHz drops from 178 to 62 Gflops and the x265 performance drops from 5.89 to 4.68 images/s. Why? Power saving.

The site references an entry on Agner's CPU blog which details how the Skylake processors deal with 256-bit vector instructions. Quote: "I observed an interesting phenomenon when executing 256-bit vector instructions on the Skylake. There is a warm-up period of approximately 14 µs before it can execute 256-bit vector instructions at full speed. Apparently, the upper 128-bit half of the execution units and data buses is turned off in order to save power when it is not used. As soon as the processor sees a 256-bit instruction it starts to power up the upper half. It can still execute 256-bit instructions during the warm-up period, but it does so by using the lower 128-bit units twice for every 256-bit vector. The result is that the throughput for 256-bit vectors is 4-5 times slower during this warm-up period. If you know in advance that you will need to use 256-bit instructions soon, then you can start the warm-up process by placing a dummy 256-bit instruction at a strategic place in the code. My measurements showed that the upper half of the units is shut down again after 675 µs of inactivity."

Since the non-K overclocking capabilities disable any form of power management, it appears that Skylake processors are not able to enable the upper 128-bit half of the execution units.

For more detailed information, check out the original article in French at

Please log in or register to comment.