Announcement

Collapse
No announcement yet.

Intel ISPC 1.15 Released With Support For Sapphire Rapids, Alder Lake

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Intel ISPC 1.15 Released With Support For Sapphire Rapids, Alder Lake

    Phoronix: Intel ISPC 1.15 Released With Support For Sapphire Rapids, Alder Lake

    Intel released a new version of their SPMD Program Compiler (ISPC) this weekend that brings new improvements for this compiler that supports a variant of C focused on single-program, multiple-data programming for Intel's CPU and GPU targets...

    http://www.phoronix.com/scan.php?pag...ntel-ISPC-1.15

  • #2
    ISPC 1.15 also adds new loop unroll pragmas
    It'd be cool if someone would add those to GCC.

    The best optimization pragmas I've seen were those of a compiler for one of TI's VLIW DSPs. You could tell they'd spent years trying to get the compiler to generate code equivalent to hand-tuned assembly.

    Comment


    • #3
      Just saying: ISPC is amazing. For problems suited for its execution model, speedup compared to a plain C or C++ implementation are between 4-5 and 12 (on AVX capable hardware that is, I didn't measure SSE), just by copy&pasting the code and sprinkling `uniform`, `variant`, and `foreach` over it.

      We are using it in a flow-field based pedestrian simulation, and it's a true game-changer. Not in computing the potential field itself, the priority-queue of the fast marching squares isn't well suited for ISPC, but in the gradient computation, when moving the whole field, and when dynamically spawning sources and sinks.



      A small remark on CPU support: It's of course not limited to Intel's own hardware, but compiling for given instruction set (extensions). In addition to several SSE and AVX variants on x86 and AMD64 it also supports NEON on ARM. Iirc Intel just doesn't give any guarantees for non-Intel chips.

      Comment


      • #4
        Originally posted by soulsource View Post
        Just saying: ISPC is amazing. For problems suited for its execution model, speedup compared to a plain C or C++ implementation are between 4-5 and 12 (on AVX capable hardware that is, I didn't measure SSE),
        ...
        In addition to several SSE and AVX variants on x86 and AMD64 it also supports NEON on ARM.
        Thanks for sharing!

        I was recently looking at doing something along those lines, with OpenGL compute shaders and llvmpipe. That has the added benefit of getting true GPU acceleration on all GPUs (i.e. when using a real OpenGL backend, instead).

        Comment

        Working...
        X