Announcement

Collapse
No announcement yet.

Intel's ISPC Compiler Adds Alder Lake + Sapphire Rapids Support And Apple Arm Chips

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

  • soulsource
    replied
    Originally posted by sandy8925 View Post
    Hm, I wonder if this can be used with existing normal C programs too?
    Nope. The idea of ISPC is that it uses a different programming model, very similar to shader programming. Think of it like multiple program instances running in parallel, with a shared instruction pointer, operating on different data.

    Edit: However, since ISPC programs are running on the CPU, integration into C programs is trivial. Calling an ISPC function from C and vice versa has about the same overhead as calling a C function, and pointers (including function pointers) can be passed (and used) between the languages.
    Last edited by soulsource; 13 June 2021, 07:54 AM.

    Leave a comment:


  • AdrianBc
    replied
    Originally posted by coder View Post
    The article and the README.md on github both describe it as a compiler for "CPUs and GPUs", making it sound as if they're equal targets. I get that's different than being a truly GPU-oriented compiler, but then I have no idea of "C for Metal" really is (or was meant to be), either. They both sound pretty similar, being C with SIMD extensions.

    And then there's OpenCL, which also uses C as a foundation and is built on a SPMD programming model.

    This compiler has a long history and for many years it was available strictly for Intel/AMD CPUs with AVX or SSE.

    The additional compiler targets for Intel GPUs and ARM CPUs have been added very recently and the project page says that the GPU support is still in a beta phase.


    In any case the Intel GPU support has been added mainly for the benefit of having a single program that can be recompiled and run on either the CPU or the GPU.


    The great advantage of this compiler appears when it is used to write programs for parallel processing on CPUs with SIMD instructions, because for this purpose the style of programming enabled by ispc can be more convenient than the alternatives.

    For GPUs there have been other options for a long time, which is what motivated the creation of this compiler, to allow the same programming style to be used with CPUs.










    Leave a comment:


  • tildearrow
    replied
    Typo:

    Originally posted by phoronix View Post
    In addition to the Apple Arm bring-up, the ISPC 1.16 compiler brings support for Intel's forthcomng Alder Lake

    Leave a comment:


  • coder
    replied
    Originally posted by sandy8925 View Post
    Hm, I wonder if this can be used with existing normal C programs too?
    That's not the sense I get. Even if you could, I think you wouldn't get much improvement over just using llvm with options to enable aggressive auto-vectorization. They extended the language by necessity.

    https://github.com/ispc/ispc/blob/ma...e-ispc-program

    Leave a comment:


  • sandy8925
    replied
    Hm, I wonder if this can be used with existing normal C programs too?

    Leave a comment:


  • coder
    replied
    Originally posted by AdrianBc View Post
    This is not a GPU-oriented compiler.
    The article and the README.md on github both describe it as a compiler for "CPUs and GPUs", making it sound as if they're equal targets. I get that's different than being a truly GPU-oriented compiler, but then I have no idea of "C for Metal" really is (or was meant to be), either. They both sound pretty similar, being C with SIMD extensions.

    And then there's OpenCL, which also uses C as a foundation and is built on a SPMD programming model.
    Last edited by coder; 13 June 2021, 01:48 AM.

    Leave a comment:


  • AdrianBc
    replied
    Originally posted by coder View Post
    Is this meant as a replacement for their "C for Metal" compiler? Otherwise, just how many GPU-oriented compilers does Intel need??

    This is not a GPU-oriented compiler.
    Its target are the CPUs with AVX/SSE intsruction sets.

    It allows the programming of those CPUs in a style similar to GPU programs (like NVIDIA CUDA), which many prefer instead of using directly the SIMD instructions provided by the CPUs, which is a more difficult task.



    Leave a comment:


  • coder
    replied
    Is this meant as a replacement for their "C for Metal" compiler? Otherwise, just how many GPU-oriented compilers does Intel need??

    Leave a comment:


  • Intel's ISPC Compiler Adds Alder Lake + Sapphire Rapids Support And Apple Arm Chips

    Phoronix: Intel's ISPC Compiler Adds Alder Lake + Sapphire Rapids Support And Apple Arm Chips

    On Friday afternoon Intel released a new version of their ISPC compiler, the Implicit SPMD Program Compiler, that supports a variant of the C programming language with extensions around single-program, multiple-data programming for CPU and GPU execution. Not only does this release prepare support for upcoming Intel CPUs but also adds support now for Apple's Arm processors...

    https://www.phoronix.com/scan.php?pa...-SPMD-Compiler
Working...
X