Nonetheless, if I create a GPU slot, it will find the harware and complain that it can't determine opencl_index. Setting that manually to 0 seems to make it happy, but all core_21 attempts result in "FahCore returned: BAD_WORK_UNIT (114 = 0x72)"

Unfortunately, "BAD_WORK_UNIT (114 = 0x72)" doesn't really indicate the cause. The first thing to check for is whether the GPU is producing accurate calculations -- i.e.- not overclocked/overheated, etc. though there are a lot of other possibilities.

In the case of project:11728 run:0 clone:661 gen:189, after your FAULTY result was uploaded, it was reassigned and successfully completed by someone else, so the WU, itself really isn't faulty. The other two have probably been reassigned, but they have not yet been returned.

I vaguely remember that there's an environment variable that has to be set so OpenCL can be found which apparently isn't being set in some cases. Maybe there's a way to have that variable initialized earlier -- before the daemon starts.

I had this issue on both 18.04 and 16.04. Ultimately I fixed it by modifying the /etc/init.d/FAHClient script, changing the user from fahclient to root. In the Linux amdgpu documentation it says that any OpenCL user needs to be added to the video group in /etc/group to grant access but even after doing that I still got errors that the client couldn't get access to the OpenCL devices.

Has anyone seen this issue before and was able to tweak the fahclient user's privileges to fix this without resorting to running the fahclient as root?