  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.
