github ispc/ispc v1.18.0
=== v1.18.0 === (5 May 2022)

latest releases: v1.23.0, v1.22.0, v1.21.1...
2 years ago

An ISPC release with a bunch of stability and performance fixes, improvements for ISPC Runtime, and complete stdlib support for float16 type. This release is based on patched LLVM 13.0.1.

-E switch was introduced to run preprocessor only. An old bug preventing the compiler to crash in case of preprocessor error was fixed and now the compiler will properly crash. As some users considered an old behavior convenient in some cases, --ignore-preprocessor-errors switch was introduced to maintain the old behavior.

Targets naming was changed for the targets with native masking support to drop "base type" from the naming scheme, the old naming is accepted for compatibility. This affected AVX512 target names, the new names are avx512skx-x4, avx512skx-x8, avx512skx-x16, avx512skx-x32, avx512skx-x64, and avx512knl-x16.

For debugging and for those, who are interested in understanding compiler internals, --ast-dump switch was introduced. The produced dump of AST (Abstract Syntax Tree) is intentionally made to look like clang AST dump for convenience.

Standard library gained full support for float16 type. Note that it is fully supported only on the targets with native hardware support. On the other targets emulation is still not guaranteed but may work in some cases.

Among other fixes, it is worth mentioning the following:

  • fixed a bug #1308 affecting multi-target compilation
  • a bunch of fixes to make it easier to build ISPC on FreeBSD, even though FreeBSD is not officially supported

Improvements for the ISPC Runtime in this release:

  • flexible task system selection during build
  • support of ISPCRT build separate from ISPC
  • support of ISPCRT build for CPU only
  • version check in CMake
  • new API to get the type of allocated memory (ispcrtGetMemoryViewAllocType and ispcrtGetMemoryAllocType)
  • new API for memory copy on device (ispcrtCopyMemoryView)
  • support of device-only memory without corresponding application memory.

Performance on Xe targets was significantly improved in this release due to optimizations in ISPC and Vector Backend.

Runtime Dependencies when targeting GPU:

Linux:

Windows:

Components revisions used in GPU-enabled build:

Don't miss a new ispc release

NewReleases is sending notifications on new releases.