ispc Changelog

What's new in ispc 1.8.1

Jan 22, 2015
  • A minor update of ``ispc`` with several important stability fixes, namely:
  • Auto-dispatch mechanism is fixed in pre-built Linux binaries (it used to select too conservative target).
  • Compile crash with "-O2 -g" is fixed.
  • Also KNC (Xeon Phi) support is further improved.
  • The release includes experimental build for Sony PlayStation4 target (Windows
  • cross compiler), as well NVPTX experimental support (64 bit Linux binaries
  • only). Note that there might be NVPTX compilation fails with CUDA 7.0.
  • Similar to 1.8.0 all binaries are based on LLVM 3.5. MacOS binaries are built
  • for MacOS 10.9 Mavericks. Linux binaries are compatible with kernel 2.6.32
  • (ok for RHEL6) and later.

New in ispc 1.8.0 (Oct 21, 2014)

  • A major new version of ISPC, which introduces experimental support for NVPTX
  • target, brings numerous improvements to our KNC (Xeon Phi) support, introduces
  • debugging support on Windows and fixes several bugs. We also ship experimental
  • build for Sony PlayStation4 target in this release. Binaries for all platforms
  • are based on LLVM 3.5.
  • Note that MacOS binaries are build for MacOS 10.9 Maverics. Linux binaries are
  • compatibile with kernel 2.6.32 (ok for RHEL6) and later.
  • More details:
  • Experimental NVPTX support is available for users of our binary distribution on Linux only at the moment. MacOS and Windows users willing to experiment with this target are welcome to build it from source. Note that GPU imposes some limitation on ISPC language, which are discussed in corresponding section of ISPC User's Guide. Implementation of NVPTX support was done by our contributor Evghenii Gaburov.
  • KNC support was greatly extended in knc.h header file. Beyond new features there are stability fixes and changes for icc 15.0 compatibility. Stdlib prefetch functions were improved to map to KNC vector prefetches.
  • PS4 experimental build is Windows to PS4 cross compiler, which disables arch and cpu selection (which are preset to PS4 hardware).
  • Debug info support on Windows (compatible with VS2010, VS2012 and VS2013).
  • Critical bug fix, which caused code generation for incorrect target, despite explicit target switches, under some conditions.
  • Stability fix of the bug, which caused print() function to execute under all-off mask under some conditions.

New in ispc 1.4.2 (Jun 24, 2013)

  • A minor version update with a few important changes:
  • Stability fix for AVX2 target (Haswell) - problem with gather instructions wasreleased in LLVM 3.4, if you build with LLVM 3.2 or 3.3, it's available in ourrepository (llvm_patches/r183327-AVX2-GATHER.patch) and needs to be appliedmanually.
  • Stability fix for widespread issue on Win32 platform (#503).
  • Performance improvements for Xeon Phi related to mask representation.
  • Also LLVM 3.3 has been released and now it's the recommended version for building ISPC.
  • Precompiled binaries are also built with LLVM 3.3.

New in ispc 1.4.1 (Jun 24, 2013)

  • New compiler features:
  • ISPC memory allocation returns aligned memory with platform natural alignmentof vector registers by default. Alignment can also be managed via--force-alignment=.
  • Important bug fixes/changes:
  • ISPC was fixed to be fully functional when built by GCC 4.7.
  • Major cleanup of build and test scripts on Windows.
  • Gather/scatter performance improvements on Xeon Phi.
  • FMA instructions are enabled for AVX2 instruction set.
  • Support of RDRAND instruction when available via library function rdrand (Ivy Bridge).
  • Release also contains numerous bug fixes and minor improvements.

New in ispc 1.3.0 (Jun 24, 2013)

  • New targets:
  • This release provides "beta" support for compiling to Intel® XeonPhi™ processor, code named Knights Corner, the first processor inthe Intel® Many Integrated Core Architecture. Seehttp://ispc.github.com/ispc.html#compiling-for-the-intel-xeon-phi-architecturefor more details on this support.
  • This release also has an "avx1.1" target, which provides support for thenew instructions in the Intel Ivy Bridge microarchitecutre.
  • New language features:
  • The foreach_active statement allows iteration over the active programinstances in a gang. (Seehttp://ispc.github.com/ispc.html#iteration-over-active-program-instances-foreach-active)
  • foreach_unique allows iterating over subsets of program instances in agang that share the same value of a variable. (Seehttp://ispc.github.com/ispc.html#iteration-over-unique-elements-foreach-unique)
  • An "unmasked" function qualifier and statement in the language allowre-activating execution of all program instances in a gang. (Seehttp://ispc.github.com/ispc.html#re-establishing-the-execution-mask
  • Standard library updates:
  • The seed_rng() function has been modified to take a "varying" seed valuewhen a varying RNGState is being initialized.
  • An isnan() function has been added, to check for floating-point "not anumber" values.
  • The float_to_srgb8() routine does high performance conversion offloating-point color values to SRGB8 format.
  • Other changes:
  • A number of bugfixes have been made for compiler crashes with malformedprograms.
  • Floating-point comparisons are now "unordered", so that any comparisonwhere one of the operands is a "not a number" value returns false. (Thismatches standard IEEE floating-point behavior.)
  • The code generated for 'break' statements in "varying" loops has beenimproved for some common cases.
  • Compile time and compiler memory use have both been improved,particularly for large input programs.
  • A nubmer of bugs have been fixed in the debugging information generatedby the compiler when the "-g" command-line flag is used.