Enable FP64 support for Radeon HD6970 (Ubuntu 17.10)

jolly-roger
jolly-roger
Joined: 8 Aug 15
Posts: 1
Credit: 85948
RAC: 0
Topic 214756

Hello,

 

Any tasks that require the GPU fail to run on my system. Here are two examples:

https://einsteinathome.org/task/752416110

https://einsteinathome.org/task/752404726

 

Here are the first few lines from the BOINC event log:

Tue 01 May 2018 16:49:49 AEST |  | Starting BOINC client version 7.8.3 for x86_64-pc-linux-gnu
Tue 01 May 2018 16:49:49 AEST |  | log flags: file_xfer, sched_ops, task
Tue 01 May 2018 16:49:49 AEST |  | Libraries: libcurl/7.55.1 OpenSSL/1.0.2g zlib/1.2.11 libidn2/2.0.2 libpsl/0.18.0 (+libidn2/2.0.2) librtmp/2.3
Tue 01 May 2018 16:49:49 AEST |  | Data directory: /var/lib/boinc-client
Tue 01 May 2018 16:49:50 AEST |  | OpenCL: AMD/ATI GPU 0: AMD CAYMAN (DRM 2.50.0 / 4.13.0-39-generic, LLVM 5.0.0) (driver version 17.2.8, device version OpenCL 1.1 Mesa 17.2.8, 2048MB, 2048MB available, 854 GFLOPS peak)
Tue 01 May 2018 16:49:50 AEST |  | Host name: jolly-roger
Tue 01 May 2018 16:49:50 AEST |  | Processor: 8 GenuineIntel Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz [Family 6 Model 42 Stepping 7]
Tue 01 May 2018 16:49:50 AEST |  | Processor features: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti retpoline spec_ctrl tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts
Tue 01 May 2018 16:49:50 AEST |  | OS: Linux Ubuntu: Ubuntu 17.10 [4.13.0-39-generic]
Tue 01 May 2018 16:49:50 AEST |  | Memory: 15.65 GB physical, 2.00 GB virtual
Tue 01 May 2018 16:49:50 AEST |  | Disk: 173.83 GB total, 31.66 GB free
Tue 01 May 2018 16:49:50 AEST |  | Local time is UTC +10 hours
Tue 01 May 2018 16:49:50 AEST |  | Config: GUI RPCs allowed from:
Tue 01 May 2018 16:49:50 AEST | Einstein@Home | URL http://einstein.phys.uwm.edu/; Computer ID 12644316; resource share 100
Tue 01 May 2018 16:49:50 AEST | LHC@home | URL https://lhcathome.cern.ch/lhcathome/; Computer ID 10543409; resource share 100
Tue 01 May 2018 16:49:50 AEST | SETI@home | URL http://setiathome.berkeley.edu/; Computer ID 8506397; resource share 100
Tue 01 May 2018 16:49:50 AEST | Universe@Home | URL https://universeathome.pl/universe/; Computer ID 489180; resource share 100
Tue 01 May 2018 16:49:50 AEST | World Community Grid | URL http://www.worldcommunitygrid.org/; Computer ID 4634639; resource share 100
Tue 01 May 2018 16:49:50 AEST | Einstein@Home | General prefs: from Einstein@Home (last modified 29-Apr-2018 19:25:29)
Tue 01 May 2018 16:49:50 AEST | Einstein@Home | Host location: none
Tue 01 May 2018 16:49:50 AEST | Einstein@Home | General prefs: using your defaults
Tue 01 May 2018 16:49:50 AEST |  | Reading preferences override file
Tue 01 May 2018 16:49:50 AEST |  | Preferences:
Tue 01 May 2018 16:49:50 AEST |  | max memory usage when active: 8012.21 MB
Tue 01 May 2018 16:49:50 AEST |  | max memory usage when idle: 12018.32 MB
Tue 01 May 2018 16:49:50 AEST |  | max disk usage: 10.00 GB
Tue 01 May 2018 16:49:50 AEST |  | suspend work if non-BOINC CPU load exceeds 50%
Tue 01 May 2018 16:49:50 AEST |  | (to change preferences, visit a project web site or select Preferences in the Manager)

 

Some of the last few lines in the tasks refer to FP64 support - I know that the 6970 has FP64 support

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 OpenCL device has no FP64 support

 

The output from clinfo seems to say that FP64 is supported...

 

clinfo Number of platforms                               1   Platform Name                                   Clover   Platform Vendor                                 Mesa   Platform Version                                OpenCL 1.1 Mesa 17.2.8   Platform Profile                                FULL_PROFILE   Platform Extensions                             cl_khr_icd   Platform Extensions function suffix             MESA  Platform Name                                   Clover Number of devices                                 1   Device Name                                     AMD CAYMAN (DRM 2.50.0 / 4.13.0-39-generic, LLVM 5.0.0)   Device Vendor                                   AMD   Device Vendor ID                                0x1002   Device Version                                  OpenCL 1.1 Mesa 17.2.8   Driver Version                                  17.2.8   Device OpenCL C Version                         OpenCL C 1.1   Device Type                                     GPU   Device Profile                                  FULL_PROFILE   Max compute units                               12   Max clock frequency                             890MHz   Max work item dimensions                        3   Max work item sizes                             256x256x256   Max work group size                             256   Preferred work group size multiple              64   Preferred / native vector sizes                      char                                                16 / 16           short                                                8 / 8            int                                                  4 / 4            long                                                 2 / 2            half                                                 0 / 0        (n/a)     float                                                4 / 4            double                                               2 / 2        (cl_khr_fp64)   Half-precision Floating-point support           (n/a)   Single-precision Floating-point support         (core)     Denormals                                     No     Infinity and NANs                             Yes     Round to nearest                              Yes     Round to zero                                 No     Round to infinity                             No     IEEE754-2008 fused multiply-add               No     Support is emulated in software               No     Correctly-rounded divide and sqrt operations  No   Double-precision Floating-point support         (cl_khr_fp64)     Denormals                                     Yes     Infinity and NANs                             Yes     Round to nearest                              Yes     Round to zero                                 Yes     Round to infinity                             Yes     IEEE754-2008 fused multiply-add               Yes     Support is emulated in software               No     Correctly-rounded divide and sqrt operations  No   Address bits                                    32, Little-Endian   Global memory size                              2147483648 (2GiB)   Error Correction support                        No   Max memory allocation                           1503238553 (1.4GiB)   Unified memory for Host and Device              No   Minimum alignment for any data type             128 bytes   Alignment of base address                       1024 bits (128 bytes)   Global Memory cache type                        None   Image support                                   No   Local memory type                               Local   Local memory size                               32768 (32KiB)   Max constant buffer size                        1503238553 (1.4GiB)   Max number of constant args                     13   Max size of kernel argument                     1024   Queue properties                                     Out-of-order execution                        No     Profiling                                     Yes   Profiling timer resolution                      0ns   Execution capabilities                               Run OpenCL kernels                            Yes     Run native kernels                            No   Device Available                                Yes   Compiler Available                              Yes   Device Extensions                               cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_fp64NULL platform behavior   clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...)  Clover   clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...)   Success [MESA]   clCreateContext(NULL, ...) [default]            Success [MESA]   clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU)  No devices found in platform   clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU)  Success (1)     Platform Name                                 Clover     Device Name                                   AMD CAYMAN (DRM 2.50.0 / 4.13.0-39-generic, LLVM 5.0.0)   clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR)  No devices found in platform   clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM)  No devices found in platform   clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL)  Success (1)     Platform Name                                 Clover     Device Name                                   AMD CAYMAN (DRM 2.50.0 / 4.13.0-39-generic, LLVM 5.0.0)ICD loader properties   ICD loader Name                                 OpenCL ICD Loader   ICD loader Vendor                               OCL Icd free software   ICD loader Version                              2.2.11   ICD loader Profile                              OpenCL 2.1

 

 

I've had a look in the forums but couldn't find a way to enable FP64 support. Does anyone know how to do this?

mikey
mikey
Joined: 22 Jan 05
Posts: 12705
Credit: 1839110349
RAC: 3608

jolly-roger

jolly-roger wrote:

Hello,

 

Any tasks that require the GPU fail to run on my system. Here are two examples:

 

I've had a look in the forums but couldn't find a way to enable FP64 support. Does anyone know how to do this?

I'm not a Linux guy so can't tell you how but I think it's your drivers, that support is provided thru the gpu drivers and you are using 'generic' ones:

"AMD AMD CAYMAN (DRM 2.50.0 / 4.13.0-39-generic, LLVM 5.0.0) (2048MB)"  is what it says when I look at your pc drivers.

Gary Roberts
Gary Roberts
Moderator
Joined: 9 Feb 05
Posts: 5872
Credit: 117808291831
RAC: 34705029

jolly-roger wrote:Any tasks

jolly-roger wrote:
Any tasks that require the GPU fail to run on my system...

I run a lot of machines with AMD GPUs under Linux.  I'm not a programmer, just a user so I can't tell you specifically what the app requires that your OpenCL implementation is not providing but I can make guesses (in general terms) and give suggestions on how to overcome the problem.

As a general comment, I've seen quite a few people having difficulty in getting the Einstein app working under Mesa/Clover, so I've never tried to go down that route.  For hardware that is not supported by amdgpu, (eg your 6970 and my 7850s, R7 370s, etc) I've found that the simplest course is to stay with the particular version of your Linux distro of choice that supported the final version of fglrx, the proprietary driver from AMD.

In my case that's PCLinuxOS in the latter half of 2016.  I know very little about other distros but I'm sure that many would have had support for fglrx up to the point that the Xorg changes deprecated that driver.  My intention is to keep using fglrx until the Southern Islands support matures in amdgpu.  I try to follow what is going on and my impression is that it will perhaps become usable for me in the not too distant future.

The architecture of Cayman GPUs (TeraScale) immediately preceeded that of my Southern Islands GPUs and, as I understand it, the new architecture (Graphics Core Next - GCN) was a big change from that.  Reading between the lines, it seems likely that all variants of GCN are likely to be supported eventually, through the new amdgpu open source driver model, but I'm not sure about the intentions for the previous architecture (TeraScale).  It is seemingly quite a big task but I do see quite a lot of praise for the way AMD (with the help of open source developers) is pushing on with it.  The 6970 was a decent GPU performance wise so if you want to use it just for crunching, fglrx is certainly a workable way to go while waiting for amdgpu support.

Quote:

Some of the last few lines in the tasks refer to FP64 support - I know that the 6970 has FP64 support

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 OpenCL device has no FP64 support

 

Yes, of course the 6970 has FP64 support in the hardware.  However, as the above message seems to suggest, it appears to be specific OpenCL support in the driver that is missing.  As I say, I'm not a programmer so I have little detailed knowledge of how things work at this low level.  Maybe someone who does understand these things can interpret the above and perhaps even suggest (for your distro) an extra package to install that would provide what is missing.  You might even be able to find what is needed through google if you use specific parts of the above message in your search string.

Quote:
I've had a look in the forums but couldn't find a way to enable FP64 support. Does anyone know how to do this?

I follow the forums fairly closely and I whilst I've seen this sort of problem posted before, I can't really recall a specific solution (though my memory is getting pretty lousy these days).  There are a couple of people who post (fairly infrequently) who might be able to help but I would think your best help might come through google.

Good luck with your search and if you find a solution, it would be very nice if you would post the details :-).

Cheers,
Gary.

Comment viewing options

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