Announcement

Collapse
No announcement yet.

Nouveau Developer Working On Adding SPIR-V Support To Clover Gallium3D OpenCL

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

  • Nouveau Developer Working On Adding SPIR-V Support To Clover Gallium3D OpenCL

    Phoronix: Nouveau Developer Working On Adding SPIR-V Support To Clover Gallium3D OpenCL

    Independent developer Pierre Moreau who has contributed to the open-source Nouveau driver in the past has published a rather interesting patch series today: SPIR-V support for the Clover Gallium3D OpenCL state tracker...

    http://www.phoronix.com/scan.php?pag...-Clover-Series

  • #2
    Wait a second. Does this mean that with the LLVM-Backend one could (in principle) write kernels in whatever language LLVM has a frontend for, and then push those through Clover to the GPU, therefore bypassing some limitations of Clover's OpenCL compiler?

    Comment


    • #3
      Originally posted by soulsource View Post
      Wait a second. Does this mean that with the LLVM-Backend one could (in principle) write kernels in whatever language LLVM has a frontend for, and then push those through Clover to the GPU, therefore bypassing some limitations of Clover's OpenCL compiler?
      Whatever you can compile into SPIR-V you could use for OpenCL basically, yes. I think there are other limitations as well, but nothing really important afaik.

      Comment


      • #4
        Originally posted by soulsource View Post
        Wait a second. Does this mean that with the LLVM-Backend one could (in principle) write kernels in whatever language LLVM has a frontend for, and then push those through Clover to the GPU, therefore bypassing some limitations of Clover's OpenCL compiler?
        Clover's OpenCL compiler = LLVM. So not really. But you could write things in a language other than OpenCL C, which has the appropriate bindings (e.g. representing group-local memory, invocation-private memory, etc), and then generate SPIR-V out of that.

        Comment


        • #5
          Originally posted by soulsource View Post
          Wait a second. Does this mean that with the LLVM-Backend one could (in principle) write kernels in whatever language LLVM has a frontend for, and then push those through Clover to the GPU, therefore bypassing some limitations of Clover's OpenCL compiler?
          just to add to the above answers. You can use other languages, but it's not magic, CLC is limited because of the target HW.
          for example:
          If you want to use C++ style virtual functions (or PLT/GOT based function calls) you need HW that supports jumps to address from GPR (i.e. GCN+ for AMD)
          no GPU HW that I know of supports recursion (call stacks are limited), so you won't be able to do that no matter the language.

          Comment


          • #6
            Probably a stupid question, but does this mean that my nVidia Quadro FX 770M(I know, my laptop is ancient but it still works as my daily driver), will get better OpenCL support?

            Comment


            • #7
              Originally posted by mzs.112000 View Post
              Probably a stupid question, but does this mean that my nVidia Quadro FX 770M(I know, my laptop is ancient but it still works as my daily driver), will get better OpenCL support?
              Given that there is currently no OpenCL support, for any card, with Nouveau, it can’t get worse. :-) As long as it is a >= Tesla card, it should get OpenCL support one day. You should probably be able to do some OpenCL within 2017, but I don’t think we will be able to have full OpenCL 1.0 before the end of the year. We will see.

              Comment

              Working...
              X