in ,

Intel SPMD Program Compiler: A Compiler for High-Performance SIMD Programming, Hacker News



ispcis a compiler for a variant of the C           programming language, with extensions for “single program, multiple           data “(SPMD)          programming. Under the SPMD model, the programmer writes a           program that generally appears to be a regular serial program,           though the execution model is actually that a number           ofprogram instancesexecute in parallel on the hardware.           (See theispc documentationfor           more details and examples that illustrate this concept.)


ispccompiles a C-based SPMD programming language to           run on the SIMD units of CPUs and the Intel Xeon           Phi ™ architecture; it frequently provides a 3x or more           speedup on CPUs with 4-wide vector SSE units and 5x-6x on CPUs           with 8-wide AVX vector units, without any of the difficulty of           writing intrinsics code. Parallelization across multiple cores           is also supported byispc, making it possible to write           programs that achieve performance improvement that scales by both           number of cores and vector unit size.         


There are a few key principles in the design ofispc:         

  • To build a small set of extensions to the C language that             would deliver excellent performance to performance-oriented             programmers who want to run SPMD programs on the CPU.

  • To provide a thin abstraction layer between the programmer             and the hardware — in particular, to have an execution and             data model where the programmer can cleanly reason about the             mapping of their source program to compiled assembly language             and the underlying hardware.

  • To make it possible to harness the computational power of SIMD             vector units without the extremely low-programmer-productivity             activity of directly writing intrinsics.

  • To explore opportunities from close coupling between C / C             application code and SPMDispccode running on the             same processor — to have lightweight function calls between             the two languages ​​and to share data directly via pointers without             copying or reformatting.

ispcis an open source compiler with a           BSD           license. It uses the remarkable           LLVM Compiler Infrastructurefor           back-end code generation and optimization and           ishosted on           github. It supports Windows, Mac, and Linux, with both x 86           and x 86 – 64 targets. It currently supports the SSE2, SSE4, AVX1,           AVX2, AVX 512, and Xeon Phi “Knight’s Corner” instruction sets.         


ispcsupport is provided provided through github issues and theIntel SPMD Compiler Users Forum.         



Brave Browser
Read More

What do you think?

Leave a Reply

Your email address will not be published. Required fields are marked *

GIPHY App Key not set. Please check settings

Essex lorry deaths: The Vietnamese risking it all to get to the UK – BBC News, BBC News

Essex lorry deaths: The Vietnamese risking it all to get to the UK – BBC News, BBC News

Pernosco: Fast, Fun, Omniscient Debugging, Hacker News