AMD GPU driver with opencl support?

HumanPerson@sh.itjust.works to Linux@lemmy.ml – 24 points –

Basically title. I have a 7600(x)(t) 8G. I want drivers with opencl for hashcat. I know the proprietary ones work, but they are a ludicrously massive PITA. I am willing to use almost any distro to make this work (not Ubuntu, and not one of those random newer ones). I really hope I don't have to use the proprietary drivers.

Edit: found a good enough solution. I listed the card on ebay and will replace it with an intel arc soon.

18

I don't suppose Fedora 40 with ROCm 6.1 will cover this for you? Once you're set up, you can

sudo dnf install rocm*

...and that should include rocm-ocl rocm-opencl. I quickly tested this with davinci resolve a couple days back.

E: you may need to set an environment variable to spoof a ""supported device"" 🫠

Holy crap, really? I used it a while ago, and have been using it recently in the form of asahi. That would be seriously great if that works, and thank you so much for the suggestion.

Very welcome! I originally neglected the notion that I tested this from a 'supported' ASIC, however.

I'm not sure how this will behave on NV33; you may need to employ the aforementioned env variable workaround for any luck, I'll try to find a link for it.

E1: I believe RX 6700XT (NV23) users set the following env var to spoof their device as NV21

HSA_OVERRIDE_GFX_VERSION=10.3.0

I'll see if there's one more suitable to your GPU.

E2: Try export the following

HSA_OVERRIDE_GFX_VERSION=11.0.0

I tried both suggestions, as well as running it without the variables changed. On all three of them, hashcat said "Device #3: Unstable OpenCL driver detected!" when I ran hashcat -I (device info if your not familiar with hashcat). I tried running the benchmark, and it crashed saying "Device #1: Kernel /usr/lib64/hashcat/OpenCL/shared.cl build failed."

Edit: I looked, and I don't see a package called rocm-ocl, nor can I install one. Edit2: Wait nvm, I see rocm-opencl, and I assume that's it.

Ah man, are you able to verify OCL working with other applications such as OpenShot or Blender?

As for your edit, sorry you're correct, the package name is rocm-opencl, otherwise referred to as rocm-opencl-runtime

Well I tried an opencl benchmark I found, and my computer has fuckied a major wucky... Edit: reboot fixed it but it seems opencl is super unstable on here. I ran hashcat again, this time with --force, and found that it did nothing, then there were weird colors, then plasmashell crashed. Luckily plasmashell has good crash handling and it was able to go back up so I could see that hashcat reported something about gpu hang being the reason for the crash.

Oh damn, can you send me a link to that? I'll also try Hashcat + its benchmark when I get the chance.

Reaching out to a friend who has some familiarity with HC in the mean time.

The OpenCL benchmark for me worked without any issues.

The Hashcat benchmark threw the same errors as you'd seen until I manually specified my device (my friend was able to point me in the right direction here).

You can enumerate your OpenCL device (i.e. your GPU) with something like clinfo, rocm-clinfo.

I had to run Hashcat's benchmark like so: hashcat -b -d 2 where 2 is my RX 6800XT

Hope this helps

I did notice it was the wrong device, however when I specify it crashes the whole os with some artifacting. I may look into other values for that environment variable tomorrow. I also might try rusticl.

2 more...

I think the FOSS drivers support it? https://mesamatrix.net/ Seems to say that it’s supported, ut I’m not sure

Mesa clover opencl has only 40% of the extensions implemented. I suspect hashcat needs some that it doesn't have, if I am understanding that correctly.

Try using rusticl for your OpenCL implementation. It runs OpenCL on top of Vulkan, which is very well supported by Radeon cards.

Second this. rusticl worked perfectly for me when I needed to get OpenCL working with my 6600XT.

I second rusticl, but I'd like to note that it uses Gallium internally, and not Vulkan. There is a vulkan-gallium translation layer called Zink, though, which can be used to run rusticl on any Vulkan-capable GPU AFAIK. Zink is initially made to run OpenGL on Vulkan, but it's also just a general-purpose Gallium driver.