Intel Speeds Up ISPC Via LLVM/Clang LTO
Intel has released a new version of ISPC, their Implicit SPMD Program Compiler. The ISPC 1.22 release is clocking in a few percent faster across the board as with their release builds they are now making use of LLVM Clang's link-time optimizations (LTO) for speeding up the binaries.
The Intel Implicit SPMD Program Compiler is for the company's variant of the C programming language with extensions for Single Program, Multiple Data (SPMD). The ISPC compiler in turn will leverage SIMD capabilities of modern Intel (as well as AMD and ARM) CPUs plus Intel GPUs for speeding up the SPMD data handling. ISPC is open-source under a BSD license and allows taking advantage not only of x86 AVX / AVX2 / AVX-512 but ARM NEON too.
With ISPC 1.22 the binaries are faster as now the LLVM/Clang toolchain building them is employing link-time optimizations (LTO) that is resulting in a few percent faster performance on average. The exception is LTO not being used for the ISPC builds on AArch64 Linux. Link-Time Optimizations allow for additional optimizations to take place when the entire binary is being linked as opposed to being limited to individual source files. LTO for years has proven to be very beneficial with modern compilers.
ISPC 1.22 also adds support for template operators to the ISPC language dialect and has other minor modifications. Plus there are a few performance regression fixes and other bug fixes.
Downloads and more information on ISPC 1.22 via GitHub.
The Intel Implicit SPMD Program Compiler is for the company's variant of the C programming language with extensions for Single Program, Multiple Data (SPMD). The ISPC compiler in turn will leverage SIMD capabilities of modern Intel (as well as AMD and ARM) CPUs plus Intel GPUs for speeding up the SPMD data handling. ISPC is open-source under a BSD license and allows taking advantage not only of x86 AVX / AVX2 / AVX-512 but ARM NEON too.
With ISPC 1.22 the binaries are faster as now the LLVM/Clang toolchain building them is employing link-time optimizations (LTO) that is resulting in a few percent faster performance on average. The exception is LTO not being used for the ISPC builds on AArch64 Linux. Link-Time Optimizations allow for additional optimizations to take place when the entire binary is being linked as opposed to being limited to individual source files. LTO for years has proven to be very beneficial with modern compilers.
ISPC 1.22 also adds support for template operators to the ISPC language dialect and has other minor modifications. Plus there are a few performance regression fixes and other bug fixes.
Downloads and more information on ISPC 1.22 via GitHub.
5 Comments