Both GPU and Xeon Phi coprocessors provide high degrees of parallelism that can deliver excellent application performance. For the most part, CUDA programmers with existing application code have already written their software so it can run well on Phi coprocessors. The key to performance lies in understanding the differences between these two architectures.
Author’s note: To ensure that I best represented the important characteristics of these two architectures, I submitted this article for review to both Intel and NVIDIA. I have to say the quality of the feedback from both companies was superb and greatly appreciated!
Originally published in Dr. Dobbs on December 17, 2012 (link)
Intel designed the 60-core Phi coprocessor (previously called “MIC” in the literature) so it can be programmed like a conventional x86 processor core while incorporating extensions such as a bidirectional ring interconnect for massive parallelism and a wide 512-bit per core vector unit to deliver high floating-point performance. While CUDA applications can run on x86 hardware, it’s important to know how architectural differences between GPUs and Intel Xeon Phi coprocessors affect performance and application design. The good news is that CUDA applications will readily map onto the Phi coprocessor’s vector-parallel architecture and run with high performance. The challenge lies in achieving the best possible performance.
[go to the full article link]
For more information, please see my GTC 2013 presentation “S3012 – Simplifying Portable Killer Apps with OpenACC and CUDA-5 Concisely and Efficiently”