ISPC release with dot product functions, non-type template parameters, and generated code improvements. This release is based on patched LLVM 17.0.6.
Language changes:
- Added support for non-type template parameters. Uniform integers and enums can be used now as template parameters.
- Added dot product functions for unsigned and signed
int8
andint16
types. They leverage AVX-VNNI and AVX512-VNNI instructions if supported by targets (docs). - Added macro definitions for numeric limits.
New targets:
avx2vnni-i32x4
,avx2vnni-i32x8
,avx2vnni-i32x16
with AVX-VNNI instruction support,avx512icl-x4
,avx512icl-x8
,avx512icl-x16
,avx512icl-x32
andavx512icl-x64
with AVX512-VNNI instruction support.
Code generation:
- Fixed generation of code for GPU when unnecessary vectorized instruction are used during address arithmetic, e.g., for accessing fields of varying structures (#2846).
- Improved generated code for cases when
foreach
loop iteration domain is less than the target width (#2836 ).
Compiler switches behavior:
--pic
command line flag now corresponds to the-fpic
flag of Clang and GCC, whereas the newly introduced--PIC
corresponds to-fPIC
.
Bug fixes:
- The implementation of
round
standard library function was aligned across all targets. It may potentially affect the results of the code that uses this function for the following targets:avx2-i16x16
,avx2-i8x32
and allavx512
targets (#2793). - Fixed cases when unwind info were not generated for functions. This impacted debugging and profiling on Windows (#2842).
- Fixed broken targets
sse4-i8xN
andavx2-i8xN
(#2800).
Recommended versions of Runtime Dependencies when targeting GPU:
Linux:
- Intel(R) Graphics Compute Runtime https://github.com/intel/compute-runtime/releases/tag/24.05.28454.6
- Level Zero Loader https://github.com/oneapi-src/level-zero/releases/tag/v1.16.9
- Threading Building Blocks (TBB)
Alternatively, you can use a validated gfx driver stack supporting Intel® Arc™ available at https://dgpu-docs.intel.com/driver/installation.html
Windows:
- Intel(R) Graphics Windows(R) DCH Drivers 31.0.101.5518 https://www.intel.com/content/www/us/en/download/785597/intel-arc-iris-xe-graphics-windows.html
- Level Zero Loader https://github.com/oneapi-src/level-zero/releases/tag/v1.16.9
- OpenCL™ Offline Compiler (OCLOC) https://www.intel.com/content/www/us/en/developer/articles/tool/oneapi-standalone-components.html (this is needed for AoT compilation on Windows only)
- Supported GPU platforms: Intel(R) Arc Graphics, 11th-13th Gen Intel(R) Core processor graphics
Components revisions used in GPU-enabled build:
- KhronosGroup/SPIRV-LLVM-Translator@89ab5df3
- intel/vc-intrinsics@f9c34404
- oneapi-src/level-zero@61c97c87 (v1.16.9)
- https://github.com/llvm/llvm-project/commit/6009708(llvmorg-17.0.6) + patches from llvm_patches folder