Porting Optimized GPU Kernels to a Multi-core CPU: Computational Quantum Chemistry Application Example
Dong Ye, Alexey Titov, Volodymyr Kindratenko, Ivan S. Ufimtsev, Todd J. Martı́nez · 2011
We investigate techniques for optimizing a multi-core CPU code back ported from a highly optimized GPU kernel. We show that common sub-expression elimination and loop unrolling optimization techniques improve code performance on the GPU, but not on the CPU. On the other hand, register reuse and loop merging are effective on the CPU and in combination they improve performance of the ported code by 16%.