Intel's CM Compiler is out with its first big update since earlier in the year for advancing their "C For Metal" GPU programming language effort.
One of Intel's (open-source) GPU computing projects we don't often hear too much talk about is their C for Metal (CM) compiler. Intel C for Metal is a general purpose GPU programming language designed to provide close-to-Assembly level performance on Intel graphics hardware. C for Metal can be used for media processing and other domains at great speed. Those looking for a tutorial / sample code around CM can find Intel's documentation on 01.org.
Released on Wednesday was the Intel CM Compiler 1.0.97 front-end that is built on top of LLVM and the Intel Graphics Compiler (IGC). Notable with the Intel CM Compiler 1.0.97 update is the XeHP software development vehicle and DG1 support being included. In addition to XeHP and DG1 bring-up, another notable change is 64-bit integer arithmetic emulation for low-power targets being enabled by default. The CM Compiler 1.0.97 update also adds support for ADDC and SUBB intrinsics, specialization constants for the CM language, and various other changes.
- CM_HAS_LONG_LONG and CM_HAS_DOUBLE macros definitions moved from library to FE.
- 64-bit integer arithmetic emulation for low power targets enabled by default.
- CM_GENX_REVID macro supported.
- Now we have living LIT testing, make check-cmc works.
- A lot of current LITs re-organized and cleaned up. We have good pass rate.
- DG1 platform open-sourced, try -march=DG1.
- List initialization for CM vectors added.
- Addc and subb intrinsics added.
- CM const vector initialization fixed.
- Specialization constants supported for CM language.
- CM_HAS_ macros added for major features.
- XEHP_SDV platform open-sourced.
The C for Metal 1.0.97 open-source code as well as prebuilt binaries for CM on Ubuntu and RHEL/CentOS platforms can be downloaded from GitHub.