Computation Errors for ATI GPU on Ubuntu 16.04 LTS

Kevin Morgan
Kevin Morgan
Joined: 9 Mar 12
Posts: 6
Credit: 20559866
RAC: 0
Topic 205353

Greetings,

I am having Computation Errors trying to run FGRPopencl1K-ati.

https://einsteinathome.org/task/610699135

Should tell the informed everything they need to know. Could they translate and tell me if any GPU tasks are supported for HD5450's under this configuration or whether I'm flogging a dead horse ?

Any definitive pronouncements will be much appreciated.

P.S. I have never got any ATI GPU task to run without errors on this system for SETI or Einstein.

 

AgentB
AgentB
Joined: 17 Mar 12
Posts: 915
Credit: 513211304
RAC: 0

It's not quite clear what AMD

It's not quite clear what AMD drivers you are using - what does clinfo show? 

You may have seen this, if not there may be some clues there.

Ubuntu 16.04 LTS Is Deprecating AMD's fglrx (Catalyst) replacing with amd-gpupro

 

Kevin Morgan
Kevin Morgan
Joined: 9 Mar 12
Posts: 6
Credit: 20559866
RAC: 0

Thanks for the reply

Thanks for the reply AgentB.

amd-gpupro, as far as I can ascertain, will never support anything less than a 7000 series on Ubuntu 16.04. I can personally confirm that installing 16.30.3-315407 makes my system unusable (I cannot log on and the screen alternately flashes between two windows!). I had to figure out how to get into Ubuntu's version of safe mode and uninstall it there to recover.

So I installed Mesa OpenCl. Boinc now recognises the GPU's, clinfo gives info on both Cedar's saying they support OpenCL 1.2 etc. But the tasks gives Computation errors.

I suppose my question boils down to this: Do Einstein ATI GPU tasks need the amd-gpupro installed on Ubuntu 16.04 to work, or should they work with just the default ATI drivers that come with Ubuntu 16.04 and Mesa OpenCl installed as well ?

 

 

 

AgentB
AgentB
Joined: 17 Mar 12
Posts: 915
Credit: 513211304
RAC: 0

Kevin Morgan wrote:I suppose

Kevin Morgan wrote:
I suppose my question boils down to this: Do Einstein ATI GPU tasks need the amd-gpupro installed on Ubuntu 16.04 to work, or should they work with just the default ATI drivers that come with Ubuntu 16.04 and Mesa OpenCl installed as well ?

Well you are right it is unlikely AMD will provide an amd-gpupro working on these older GPUs as the even predate GCN 1.0.  Flogging an old horse certainly!

Your options are

Ubuntu 14.04 and AMD's (older) fglrx

or

Find a fix for the opencl bugs you have found. This probably starts with getting newer versions of of Mesa/Radeon drivers and libraries - there has been a bit of work on these recently so you may be lucky.  Looking here

https://www.x.org/wiki/RadeonFeature/#Decoder_ring_for_engineering_vs_marketing_names

You will see OpenCL is WIP.  There has been some work recently i recall on Mesa so that may have updates to fix the issues, maybe not. 

Some discussions also http://www.phoronix.com/scan.php?page=news_item&px=MTI4MTc

The second option may be interesting, but painful.  I seem to recall somone managed to get the amdgpu opencl libraries to work with Mesa devices, so that also might be a possibility to explore.

Third option is to sell the GPU on ebay and upgrade!

Kevin Morgan
Kevin Morgan
Joined: 9 Mar 12
Posts: 6
Credit: 20559866
RAC: 0

Thanks for the advice AgentB.

Thanks for the advice AgentB. I'm definitely going to look into options 1 and 2 but definitely not option 3: I like to try and get old hardware do new tricks !

jay
jay
Joined: 25 Jan 07
Posts: 99
Credit: 84044023
RAC: 0

reposting a bit here.(This

reposting a bit here.

(This does connect to posts about using the MESA drivers.)

I have an AMD 7750 and the amdGPU-Pro did not work.

The AMD site did not List the 7000 series as compatible

http://support.amd.com/en-us/kb-articles/Pages/AMD-Radeon-GPU-PRO-Linux-Beta-Driver%E2%80%93Release-Notes.aspx
 
I did install the Mesa driver that does have OpnCL.
Upon restart, BOINC sees the GPU with openCL.
 
BUT, I get a computation error right at the start:
OpenCL device has FP64 support LLVM ERROR: Cannot select: 0x30b91b0: i32,ch = AtomicCmpSwap<Volatile LDST4[%1580(addrspace=1)]> 0x1e5e100, 0x390a400, 0x1d31a70, 0x31ed890
 
 original post :
https://einsteinathome.org/content/computation-errors-7#comment-155984
 
THANKS in advance
 
 
Kevin Morgan
Kevin Morgan
Joined: 9 Mar 12
Posts: 6
Credit: 20559866
RAC: 0

Update. Spurred on by some

Update.

Spurred on by some interesting possibilities suggested in:-

http://boinc.berkeley.edu/dev/forum_thread.php?id=11630

https://einsteinathome.org/content/older-radeonati-gpu-and-ubuntu-driver...

and taking up one of AgentB's suggestions above,

I decided to purchase a different card to see if I could get any hsgamma_FGRPB1G_1.18_x86_64-pc-linux-gnu__FGRPopencl1K-ati Work Units running, completed without error and validated using the mesa drivers.

New card DELL OEM ATI R7 350X.

Configuration 1:-
OS: Ubuntu 16.04.3 LTS;
Driver: Mesa 17.0.7, installed using 'sudo apt-get install mesa-opencl-icd';
Result: Failed, https://einsteinathome.org/task/685222947

Configuration 2:-
As Configuration 1 except: Driver: Updated with:-
'sudo add-apt-repository ppa:paulo-miguel-dias/pkppa'
'sudo apt-get update'
'sudo apt-get install libclc-amdgcn mesa-opencl-icd'
Rebooted;
Result: Success, https://einsteinathome.org/task/685499094

So I have now a working OS/Mesa Driver/ATI Card system.

Now I thought I would try adding the HD5450 and see if that would work:-

Configuration 3:-
As Configuration 2 but with HD5450 added and cc_config.xml excluding all other cards for Einstein except this one:-
Result: Failure, https://einsteinathome.org/task/686323828

I thought I would try replacing the HD5450 with a HD6450 and see if that would work:-

Configuration 4:-
As Configuration 3 but with HD6450 instead of HD5450 and cc_config.xml excluding all other cards for Einstein except this one:-
Result: Failure, https://einsteinathome.org/task/687353250

I thought I would try replacing the HD6450 with a R5 230 and see if that would work:-

Configuration 5:-
As Configuration 4 but with R5 230 instead of HD6450 and cc_config.xml excluding all other cards for Einstein except this one:-
Result: Failure, https://einsteinathome.org/task/687356130

So in conclusion the HD5450, HD6450 and R5 230 did not work with this configuration. But the error messages were unhelpful in diagnosing the problem to the untrained eye.

I know for a fact that both the HD6450 and R5 230 cards are successful at processing hsgamma_FGRPB1G_1.18_windows_x86_64__FGRPopencl1K-ati under Windows 10, e.g.

https://einsteinathome.org/task/685022931
so I thought I'd try the HD5450 in a windows machine and see what happen:-

Configuration 6:-
OS: Microsoft Windows 10 Professional x64 Edition, (10.00.14393.00);
Driver: Advanced Micro Devices, Inc. OpenCL 1800.8 (VM);
Result: Failed, https://einsteinathome.org/task/687361804

However, the error message was a bit more helpful:-

line 24: error: work
group size exceeds the maximum default value for the selected device
__attribute__(( reqd_work_group_size( 16, 16, 1 ) ))

CLinfo gives the value of 'MAX WORK GROUP SIZE' of the HD5450 as '128', but that for the HD6450 and R5 230 as '256', so it would seem that, even if I could get Ubuntu Mesa to recognise the HD5450, the Einstein application requires at least a 'MAX WORK GROUP SIZE' of 256 (16*16*1) to run and would not work on this card anyway,

I am now going to see if I can get the HD6450 card working in Ubuntu Mesa, does any one know of a web page listing the details of what Mesa supports and does not support ?

regards,

Kevin.

Paulie
Paulie
Joined: 24 Jun 08
Posts: 11
Credit: 20765556
RAC: 0

The following errors: OpenCL

The following errors:

OpenCL compiling FAILED! : -11 . Error message: input.cl:7:26: error: unsupported OpenCL extension 'cl_khr_fp64' - ignoring
input.cl:10:30: error: unknown type name 'double2'; did you mean 'double'?
input.cl:10:30: error: use of type 'double' requires cl_khr_fp64 extension to be enabled

(eg. configuration 3, 4 and 5) are caused by lack of hardware support for double precision math, see for example:

https://en.wikipedia.org/wiki/Radeon_HD_5000_Series

https://en.wikipedia.org/wiki/Radeon_HD_6000_Series

 

The double precision can be emulated with single precision (which might be the case on Windows), and there is some ongoing work to do this for OpenGL in Mesa, but I'm not aware of any plans for OpenCL. In any case the emulation results in a really slow speed so I your cards would be probably better used for some other work which does not need double precision.

BTW does anybody know where I can get the source of the 1.18 FGRPopencl1K-ati app? I'm trying to debug some other Mesa failures and the source would be helpful, the https://einsteinathome.org/application-source-code-and-license page has only link to some ancient version.
Kevin Morgan
Kevin Morgan
Joined: 9 Mar 12
Posts: 6
Credit: 20559866
RAC: 0

Thanks for the reply

Thanks for the reply Paulie.

Your explanation for the Ubuntu Mesa error messages for the HD5450, HD6450 and R5 230 seems reasonable but Christian Beer's message in https://einsteinathome.org/content/please-implement-gpu-test-fp64-support-sending-or-starting-wus suggests that the application should fall back on the CPU double precision when no Fp64 is found on the GPU. Hence, software emulation for double precision on the GPU should not be necessary. This CPU double precision 'fall back' within the application obviously works in the Windows version, otherwise I would not have had any successfully completed and validated work units. Is this implemented in the linux version ? If so, why does it not appear to 'kick in' on Ubuntu ?

 

regards,

 

Kevin.

Paulie
Paulie
Joined: 24 Jun 08
Posts: 11
Credit: 20765556
RAC: 0

Hi Kevin, right, I was not

Hi Kevin,

right, I was not aware of that thread. However I'm not sure what the mesa could be doing better in this case. It fails to compile the kernels as expected since it does not support the feature and the app exits. It is possible that the app is checking the compilation output for some specific (in this case fglrx specific) error to see that it only fails due to the lack of fp64 and since mesa might produce slightly different output it fails the test and exits...

I'm not an OpenCL expert so I'm not even sure if it is possible to reliably query the fp64 support before actually compiling the kernels, and it might be tricky since different versions of OpenCL behave differently (I believe the fp64 support was an extension in first versions and later moved to optional core features), however the FGRPopencl1K-ati app (or boinc) should be probably smarter about this.

If my above analysis is correct (and it might be completely wrong) than I see three paths how to fix this:

1) Fix the app to recognize the mesas fp64 compilation error messages and chose the right codepath with double stuff done on CPU (probably the easiest way)
2) Teach the app to query the fp64 suport in some way supported by all different OpenCL drivers and versions (fglrx, mesa,  RadeonOpenCompute) before actually compiling kernels. This might be also done on the Boinc side?
3) Hack mesa to output the same stuff as fglrx when compilation fails as a short-term fix (but this will never be accepted by upstream).

I would really like to have a look at the source code. All of the Einstein@Home apps are GPLv2, right?

Comment viewing options

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