C-for-Metal: High Performance SIMD Programming on Intel GPUs
Intel Corporation
arXiv:2101.11049 [cs.DC], (26 Jan 2021)
@misc{lueh2021cformetal,
title={C-for-Metal: High Performance SIMD Programming on Intel GPUs},
author={Guei-Yuan Lueh and Kaiyu Chen and Gang Chen and Joel Fuentes and Wei-Yu Chen and Fangwen Fu and Hong Jiang and Hongzheng Li and Daniel Rhee},
year={2021},
eprint={2101.11049},
archivePrefix={arXiv},
primaryClass={cs.DC}
}
The SIMT execution model is commonly used for general GPU development. CUDA and OpenCL developers write scalar code that is implicitly parallelized by compiler and hardware. On Intel GPUs, however, this abstraction has profound performance implications as the underlying ISA is SIMD and important hardware capabilities cannot be fully utilized. To close this performance gap we introduce C-For-Metal (CM), an explicit SIMD programming framework designed to deliver close-to-the-metal performance on Intel GPUs. The CM programming language and its vector/matrix types provide an intuitive interface to exploit the underlying hardware features, allowing fine-grained register management, SIMD size control and cross-lane data sharing. Experimental results show that CM applications from different domains outperform the best-known SIMT-based OpenCL implementations, achieving up to 2.7x speedup on the latest Intel GPU.
January 31, 2021 by hgpu