Announcement

Collapse
No announcement yet.

Rusticl Shows Great Start For Rust OpenCL In Mesa - Might Support SYCL In The Future

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

  • Rusticl Shows Great Start For Rust OpenCL In Mesa - Might Support SYCL In The Future

    Phoronix: Rusticl Shows Great Start For Rust OpenCL In Mesa - Might Support SYCL In The Future

    Merged last month into Mesa 22.3 was Rusticl as a Rust-written OpenCL implementation for Gallium3D that is beginning to work with the open-source Radeon Linux driver, the Intel "Iris" Gallium3D driver, and others. This is also the first Rust-written component within the Mesa code-base. Karol Herbst of Red Hat who has led Rusticl development presented this week in Minnesota on this promising cross-vendor OpenCL implementation that may also support SYCL in the future...

    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
    Michael

    Confusing wording?

    "Rusticl is much better off than the old "Clover" Gallium3D driver that's been in Mesa for a decade but has few years and poor software compatibility. "

    As written, Clover has been there for a decade...but also few years? Seems to contradict itself? Maybe remove "but has few years?"

    Comment


    • #3
      What's currently the best OpenCL driver for AMD on Linux? ROCm, ROCr, Legacy ORCA or Rusticl ?

      Comment


      • #4
        Originally posted by JEBjames View Post
        Michael

        Confusing wording?

        "Rusticl is much better off than the old "Clover" Gallium3D driver that's been in Mesa for a decade but has few years and poor software compatibility. "

        As written, Clover has been there for a decade...but also few years? Seems to contradict itself? Maybe remove "but has few years?"
        Decades is few years, considering the universe is almost 14bn years old :P

        Comment


        • #5
          Originally posted by xcom View Post
          What's currently the best OpenCL driver for AMD on Linux? ROCm, ROCr, Legacy ORCA or Rusticl ?
          PAL. (a joke at some part...)
          ROCr is a part of ROCm, works with newer hardware.
          Rusticl is not ready yet.
          Legacy ORCA is for legacy hardware.

          So, PAL or ROCm/ROCr.

          Comment


          • #6
            Originally posted by xcom View Post
            What's currently the best OpenCL driver for AMD on Linux? ROCm, ROCr, Legacy ORCA or Rusticl ?
            if you can manage to get rocm working, then probably rocm, good luck with that though, just wait for rusticl IMO

            Comment


            • #7
              Originally posted by bug77 View Post

              Decades is few years, considering the universe is almost 14bn years old :P
              I stand corrected!

              Comment


              • #8
                I wonder if Rust is so cool and eases opencl development, why didn't they use it for the new nvidia NVK driver?

                Comment


                • #9
                  Originally posted by xcom View Post
                  What's currently the best OpenCL driver for AMD on Linux? ROCm, ROCr, Legacy ORCA or Rusticl ?
                  • ROCm, if you can use it, you're lucky. It only supports a handful of discrete professional cards and with some luck, some others that share the same chip (I said, with luck). They also quickly phase out products, so the support is like for some couple of years and then ROCm removes support for your card.

                    ROCm is the only option for Blender on AMD as they removed OpenCL support and now require HIP instead.
                    CHIP-SPV (HIP platform with OpenCL backend) isn't ready yet, so for HIP, only ROCm is in the game.
                  As an example my card (Hawaii) only got supported by ROCm for a couple of weeks years ago and since then if I run ROCm it wrecks the kernel and I get a message saying I have to reboot. People waited for years to see Polaris debugged then they removed Polaris support it before fixing it.

                  If you cannot use ROCm, like you don't own one of the very few supported cards, or you are unlucky, or you don't have the right motherboard/graphics card combination (ROCm support for some cards requires some PCIe features not all computers have), or if it doesn't work anyway, or if you have an APU, here are the options:
                  • PAL, for GCN5. Discontinued by AMD and removed from their amdgpu-pro packages. This is sometime the only option even with cards expected to be supported by ROCm. I, for example, enabled OpenCL on some Vega card on some professional workstations by using PAL while ROCm didn't work (despite Vega is lucky to be one of the officially supported ROcm devices… ) AMD removed PAL without alternative.
                  • (old) Orca for GCN1 to 4. Named “legacy” in recent amdgpu package shipping it. It replaced (!!!) PAL as the “legacy” driver AND removed support for older cards and I don't know which card it supports . I have verified it doesn't supports card that were supported by PAL, and I have verified GCN1 and GCN2 doesn't work anymore in recent Orca builds. So maybe it only supports GCN4 (untested). I haven't seen yet a card supported by newer Orca build. So you may actually have to rely on an old Orca driver and avoid the latest one to get support. Like ROCm, there are some bugs, for example the professional dual-GPU GCN1 FirePro S10000 doesn't work.
                  • The only viable option for r600 is fglrx on Ubuntu 14.04 (TeraScale 2 and 3), TeraScale 1 would require fglrx on Ubuntu 12.04.
                  Clover is in very bad shape, radeonsi support has broken -ffast-math, r600 support is now completely broken (both TeraScale 2 and 3 because of 2 different bugs), See my amd gpu related issues on LLVM side.

                  rusticl on radeonsi is really promising, it already works with Darktable 3 (as far as I tested it) and with the Luxmark luxball scene. It doesn't work yet with Darktable 4 filmic_rgb kernel (but works with some others I tested). The drawbacks of rusticl on radeonsi are:
                  • it is only living in unmerged branches (rusticl/wip_nv by karolherbst) for now.
                  • Like all other rusticl drivers, function calling isn't supported yet, meaning all functions will be inlined and complex kernels can't be built without spending days and hundreds of gigabytes of memory. That's why LuxMark currently only works with the simple luxball scene, others can't be completed yet.
                  The good thing with rusticl is that unlike AMD that has almost one driver per card generation, a single driver already works from GCN1 to RDNA2. Karol Herbst (rusticl developer) is developing against RDNA2 and when I tested GCN1 and GCN2 it worked out of the box, including on cards not supported by Orca. So when things get polished, when function calling will be implemented, it will just work everywhere for everyone.

                  On a side note, there is no rusticl support for r600 yet (if some people are wondering about that).

                  Here I track status of OpenCL drivers on Linux (not only AMD): https://gitlab.com/illwieckz/i-love-compute
                  I wrote a status of AMD OpenCL drivers last year, title “OpenCL on Linux: state of AMD drivers is now worse than it was back in the days of fglrx”… The title isn't exaggerated.

                  I provide a script named ubuntu-amdgpu that can install both ROCm, old Orca (the last one supporting GCN1 and GCN2), and PAL on Ubuntu 22.04.

                  It must be said that some applications (like DaVinci Resolve) uses complex OpenCL features RustiCL isn't implementing yet (ike OpenCL / OpenGL sharing if I'm right) so those legacy drivers may be useful for some time.

                  Originally posted by Quackdoc View Post
                  just wait for rusticl IMO
                  I would say the same!

                  Comment


                  • #10
                    Originally posted by illwieckz View Post
                    • ROCm, if you can use it, you're lucky. It only supports a handful of discrete professional cards and with some luck, some others that share the same chip (I said, with luck). They also quickly phase out products, so the support is like for some couple of years and then ROCm removes support for your card.

                      ROCm is the only option for Blender on AMD as they removed OpenCL support and now require HIP instead.
                      CHIP-SPV (HIP platform with OpenCL backend) isn't ready yet, so for HIP, only ROCm is in the game.
                    As an example my card (Hawaii) only got supported by ROCm for a couple of weeks years ago and since then if I run ROCm it wrecks the kernel and I get a message saying I have to reboot. People waited for years to see Polaris debugged then they removed Polaris support it before fixing it.

                    If you cannot use ROCm, like you don't own one of the very few supported cards, or you are unlucky, or you don't have the right motherboard/graphics card combination (ROCm support for some cards requires some PCIe features not all computers have), or if it doesn't work anyway, or if you have an APU, here are the options:
                    • PAL, for GCN5. Discontinued by AMD and removed from their amdgpu-pro packages. This is sometime the only option even with cards expected to be supported by ROCm. I, for example, enabled OpenCL on some Vega card on some professional workstations by using PAL while ROCm didn't work (despite Vega is lucky to be one of the officially supported ROcm devices… ) AMD removed PAL without alternative.
                    • (old) Orca for GCN1 to 4. Named “legacy” in recent amdgpu package shipping it. It replaced (!!!) PAL as the “legacy” driver AND removed support for older cards and I don't know which card it supports . I have verified it doesn't supports card that were supported by PAL, and I have verified GCN1 and GCN2 doesn't work anymore in recent Orca builds. So maybe it only supports GCN4 (untested). I haven't seen yet a card supported by newer Orca build. So you may actually have to rely on an old Orca driver and avoid the latest one to get support. Like ROCm, there are some bugs, for example the professional dual-GPU GCN1 FirePro S10000 doesn't work.
                    • The only viable option for r600 is fglrx on Ubuntu 14.04 (TeraScale 2 and 3), TeraScale 1 would require fglrx on Ubuntu 12.04.
                    Clover is in very bad shape, radeonsi support has broken -ffast-math, r600 support is now completely broken (both TeraScale 2 and 3 because of 2 different bugs), See my amd gpu related issues on LLVM side.

                    rusticl on radeonsi is really promising, it already works with Darktable 3 (as far as I tested it) and with the Luxmark luxball scene. It doesn't work yet with Darktable 4 filmic_rgb kernel (but works with some others I tested). The drawbacks of rusticl on radeonsi are:
                    • it is only living in unmerged branches (rusticl/wip_nv by karolherbst) for now.
                    • Like all other rusticl drivers, function calling isn't supported yet, meaning all functions will be inlined and complex kernels can't be built without spending days and hundreds of gigabytes of memory. That's why LuxMark currently only works with the simple luxball scene, others can't be completed yet.
                    The good thing with rusticl is that unlike AMD that has almost one driver per card generation, a single driver already works from GCN1 to RDNA2. Karol Herbst (rusticl developer) is developing against RDNA2 and when I tested GCN1 and GCN2 it worked out of the box, including on cards not supported by Orca. So when things get polished, when function calling will be implemented, it will just work everywhere for everyone.

                    On a side note, there is no rusticl support for r600 yet (if some people are wondering about that).

                    Here I track status of OpenCL drivers on Linux (not only AMD): https://gitlab.com/illwieckz/i-love-compute
                    I wrote a status of AMD OpenCL drivers last year, title “OpenCL on Linux: state of AMD drivers is now worse than it was back in the days of fglrx”… The title isn't exaggerated.

                    I provide a script named ubuntu-amdgpu that can install both ROCm, old Orca (the last one supporting GCN1 and GCN2), and PAL on Ubuntu 22.04.

                    It must be said that some applications (like DaVinci Resolve) uses complex OpenCL features RustiCL isn't implementing yet (ike OpenCL / OpenGL sharing if I'm right) so those legacy drivers may be useful for some time.



                    I would say the same!
                    This post deserves to be framed and pinned!
                    I didn't know rusticl was already working with Darktable 3. As soon as it will work with Darktable 4 I would love to try it on my ppc64le machine. It's pretty much my only hope to get any kind of compute there...
                    ## VGA ##
                    AMD: X1950XTX, HD3870, HD5870
                    Intel: GMA45, HD3000 (Core i5 2500K)

                    Comment

                    Working...
                    X