[SOLVED] ATI/AMD OpenCL tasks won't run because not enough mem?

Keith Myers
Keith Myers
Joined: 11 Feb 11
Posts: 4,656
Credit: 17,326,426,580
RAC: 6,693,971

Mesa is not going to work. 

Mesa is not going to work.  You need the official AMD drivers. So amd-legacy or RocR or RocM.  You need to find the equivalent in the Arch world.

cecht is one of the more prodigious posters here. TROUBLESHOOTING UBUNTU 20 AND A FRESH INSTALL OF AMD DRIVERS

 

astromatto
astromatto
Joined: 26 May 07
Posts: 5
Credit: 260,209,341
RAC: 151,056

I got the same exact problem,

I got the same exact problem, the root cause is the systemctl unit used to start boinc, comment the line ProtectSystem=strict and enjoy crunchinh with your AMD card

Wedge009
Wedge009
Joined: 5 Mar 05
Posts: 117
Credit: 15,420,744,767
RAC: 7,138,724

This seems to be the same

This seems to be the same issue I've already discussed:
https://boinc.berkeley.edu/forum_thread.php?id=14786
https://einsteinathome.org/goto/comment/201591

Confirm both mountkidd and I appear to have had the same experience. As mentioned, I've only been able to work around it for now by using an old BOINC (7.16.17), even while on Ubuntu 22.04. (Unfortunately I wasn't notified by the @-mention.)

Contrary to what was mentioned, Mesa-based OpenCL can work, it's just a lot less reliable at least for Einstein work (in my experience) and a lot slower than the implementation in ROCm. It may depend on support for particular hardware.

Also, to add to the confusion, current amdgpu drivers use ROCm for OpenCL.

I had to look for that ProtectSystem=strict setting, found it in /usr/lib/systemd/system/boinc-client.service. If removing it does indeed allow ROCm-based GPU processing again, it is curious. It may not be the 'root' cause (presumably it's there for a reason) because this systemd setting has been in place since April 2019, or BOINC 7.16.1: https://github.com/BOINC/boinc/commit/78035bc14ef85fd2a69127271cc201c00d6e9730. But it does seem that the read-only errors I noticed in my BOINC report above may be related to this.

Soli Deo Gloria

Wedge009
Wedge009
Joined: 5 Mar 05
Posts: 117
Credit: 15,420,744,767
RAC: 7,138,724

I confirm removing the

I confirm removing the ProtectSystem=strict setting also resolve the issue for me. I added my remarks in https://github.com/BOINC/boinc/issues/4948.

Given that the systemd hardening was present in BOINC 7.16.17 which still worked for me, I can only consider this a work-around for now.

Soli Deo Gloria

Garfonso
Garfonso
Joined: 2 Mar 22
Posts: 1
Credit: 134,215,512
RAC: 0

I can also confirm that

I can also confirm that switching off ProtectSystem resolved the issue for me.

But I suggest to not edit the file in /usr/lib/systemd/system but run

sudo systemctl edit boinc-client.service

and add

[Service] ProtectSystem=off

Where you are supposed to add new content. This will keep your changes, even if an update of the original file happens.

Przemysław Kowalczyk
Przemysław Kowalczyk
Joined: 29 Dec 20
Posts: 3
Credit: 1,487,640
RAC: 38

For all the people who

For all the people who stumble upon this problem: It's complicated... First - you need to configure your driver stack properly.

  1. Don't use opencl-mesa with Navi cards - they are poorly supported, won't work out-of-the-box, when forced (by symlinking driver to tahiti) the system will crash and reboot
  2. rocm-opencl-runtime is recommended, unfortunately it's in AUR and requires a few dependencies also from AUR
  3. Verify the installation by issuing clinfo. Please note that this command produces a lot of output and may interleave short errors like library not found

Next - you need to "fix" BOINC. Quick and dirty method would be to remove ProtectSystem=strict as suggested, but more elegant solution is to add PrivateTmp=true to boinc-client unit. I have added more info on that in the BOINC issue mentioned by wedge009

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.