Multi-tier Dynamic Vectorization for Translating GPU Optimizations into CPU Performance
University of Illinois at Urbana-Champaign, Center for Reliable and High-Performance Computing
University of Illinois at Urbana-Champaign, IMPACT Technical Report, IMPACT-14-01, 2014
@article{kim2014multi,
title={Multi-tier Dynamic Vectorization for Translating GPU Optimizations into CPU Performance},
author={Kim, Hee-Seok and Hajj, Izzat El and Stratton, John A., Hwu, Wen-Mei W.},
year={2014}
}
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. To proposed approach outperforms existing industry implementations achieving geometric mean speedups of 2.26x and 1.09x over AMD’s and Intel’s OpenCL implementations respectively.
February 12, 2014 by hgpu