HyperLink   Multi-tier Dynamic Vectorization for Translating GPU Optimizations into CPU Performance
   
Publication Year:
  2014
Authors
  Hee-Seok Kim, Izzat El Hajj, John A. Stratton, Wen-mei Hwu
   
Published:
  IMPACT Technical Report, IMPACT-14-01, University of Illinois at Urbana-Champaign, Center for Reliable and High-Performance Computing, February 5, 2014
   
Abstract:

Developing high performance GPU code is labor intensive. Ideally, developers could recoup high GPU development costs by generating high-performance programs for CPUs and other architectures from the same source code. However, current OpenCL compilers for non-GPUs do not fully exploit optimizations in well-tuned GPU codes.


To address this problem, we develop an OpenCL implementation that efficiently exploits GPU optimizations on multicore CPUs. Our implementation translates SIMT parallelism into SIMD vectorization and SIMT coalescing into cache-efficient access patterns. These translations are especially challenging when control divergence is present. Our system addresses divergence through a multi-tier vectorization approach based on dynamic convergence checking.

proposed approach outperforms existing industry implementations achieving geometric mean speedups of 2.26× and 1.09× over AMDs and Intels OpenCL implementations respectively.