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

  • 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...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

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

    Comment


    • #3
      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.



      Comment


      • #4
        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.

        Comment


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

          Comment


          • #6
            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.

            Intel® Implicit SPMD Program Compiler. Contribute to ispc/ispc development by creating an account on GitHub.

            Comment


            • #7
              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

              Comment


              • #8
                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.










                Comment


                • #9
                  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.

                  Comment

                  Working...
                  X