Show Your Support: This site is primarily supported by advertisements. Ads are what have allowed this site to be maintained on a daily basis for the past 18+ years. We do our best to ensure only clean, relevant ads are shown, when any nasty ads are detected, we work to remove them ASAP. If you would like to view the site without ads while still supporting our work, please consider our ad-free Phoronix Premium.
Intel's ISPC Compiler Adds Alder Lake + Sapphire Rapids Support And Apple Arm Chips
While this C-based SPMD programming language and compiler are tailored to Intel's architecture and exploiting the performance especially with SSE and AVX vectorization, the new ISPC 1.16 release adds support for Apple's Arm chips. There are CPU definitions added for Apple's Arm chips going back to the A7. Additionally, support for macOS ARM targets were added to this build as well. With the ISPC compiler being based on the LLVM compiler stack, adding Arm support isn't much of a challenge but will be interesting to see how well this SPMD programming compiler can perform for Arm.
In addition to the Apple Arm bring-up, the ISPC 1.16 compiler brings support for Intel's forthcoming Alder Lake and Sapphire Rapids processors too. The GPU support for ISPC remains in a beta stage for ISPC 1.16, which in turn is leveraging a patched version of LLVM 12. On the GPU front, ISPC 1.16 adds initial multi-GPU support and unified shared memory support as well as preliminary Windows support for GPU computing.
Also notable with ISPC 1.16 is the language now allowing for calling directly LLVM intrinsics from the ISPC source. By being able to call LLVM intrinsics directly from the code, this should allow more performance tuning for areas where new hardware instructions aren't yet used by the ISPC standard library. ISPC 1.16 also adds an assume() optimization hit for communicating code assumptions to the optimizer.
More details on the Intel ISPC 1.16 compiler release via GitHub that beyond having the BSD-licensed open-source code also has reference binaries for Linux, macOS, and Windows.