darktable and OpenCL (updated)

Thanks for the tip. This has given me an extra 2x speedup. :slight_smile:
But when I set “multiple GPUs” I get much better … another 4x speedup.
Very happy with the results now!!! :smiley: :smiley:

I’m getting the same result:

$ darktable -d opencl

** (darktable:13761): WARNING **: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-qHQglvLNCi: Connessione rifiutata
7.369256 [opencl_init] opencl related configuration options:
7.369289 [opencl_init] 
7.369294 [opencl_init] opencl: 1
7.369299 [opencl_init] opencl_library: ''
7.369312 [opencl_init] opencl_memory_requirement: 768
7.369320 [opencl_init] opencl_memory_headroom: 300
7.369327 [opencl_init] opencl_device_priority: '*/!0,*/*/*'
7.369339 [opencl_init] opencl_mandatory_timeout: 200
7.369349 [opencl_init] opencl_size_roundup: 16
7.369357 [opencl_init] opencl_async_pixelpipe: 0
7.369362 [opencl_init] opencl_synch_cache: 0
7.369371 [opencl_init] opencl_number_event_handles: 25
7.369381 [opencl_init] opencl_micro_nap: 1000
7.369386 [opencl_init] opencl_use_pinned_memory: 0
7.369395 [opencl_init] opencl_use_cpu_devices: 0
7.369405 [opencl_init] opencl_avoid_atomics: 0
7.369413 [opencl_init] 
7.369671 [opencl_init] could not find opencl runtime library 'libOpenCL'
7.369760 [opencl_init] could not find opencl runtime library 'libOpenCL.so'
7.370507 [opencl_init] found opencl runtime library 'libOpenCL.so.1'
7.370562 [opencl_init] opencl library 'libOpenCL.so.1' found on your system and loaded
7.370896 [opencl_init] could not get platforms: -1001
7.370903 [opencl_init] FINALLY: opencl is NOT AVAILABLE on this system.
7.370906 [opencl_init] initial status of opencl enabled flag is OFF.

What does “could not get platforms: -1001” mean?

Hi Paolo,

did you download and install the amdgpu-pro package?
It is a bit of a “heart in your mouth” moment, because for me there is the fear of making my system unusable, and hard to return to its previous state.
However I have had success in Ubuntu and Manjaro with the -pro package. It is, unfortunately, not FOSS.
I’m thinking about trying the latest (update as at 20 March 2018) here because I do have some flicker issues that - once they start (sometimes after half an hour, sometimes never) - only a reboot solves.

Sorry, an actual answer to your question:

Blockquote
What does “could not get platforms: -1001” mean?

-1001 is an error code, and it means that opencl_init was unable to find a GPU enabled for opencl :sob:

I’m thinking about trying the latest (update as at 20 March 2018) here

That’s the “Radeon Pro Software Enterprise Edition”. The support site isn’t clear about what that means: The page https://support.amd.com/en-us/download/workstation?os=Linux%20x86_64#release-notes says:

Radeon Pro Software Enterprise Edition 18.Q1.1 for Linux Highlights

Radeon™ Pro Software Enterprise Edition 18.Q1.1 for Linux delivers enterprise-level support for RHEL 7.4 and CentOS 7.4.

​Download Full Release Not​e​s

Radeon Pro Software Adrenalin Edition 17.12.1 for Linux Highlights

Radeon™ Pro Software Adrenalin Edition 17.12.1 for Linux delivers amdgpu-pro and amdgpu-open stack using the same packaging infrastructure and introduces support for RHEL 7.4 and CentOS 7.4.

Download Full Release Notes

I cannot understand if I must use “Radeon Pro Software Enterprise Edition 18.Q1.1” or “Radeon Pro Software Adrenalin Edition 17.12.1”, they do not explain what is each for. I actually trying installing both, the first makes my system unusable, the second works but doesn’t make openocl works…

Paolo, it seems to me that there is rebranding going on. “Radeon Pro Software Enterprise Edition 18.Q1.1” is obviously the more recent iteration. (The other is referencing December 2017). As I mentioned, the most recent update is 20 March this year. It’s obviously disappointing that neither give you what you want - a stable, usable display output and provision of opencl using your AMD GPU(s).

You may find that using Andreas’ method works for you; it’s a case of your mileage may vary because of the huge number of variables: which exact hardware, which Linux distro, and sometimes the way you hold your mouth :stuck_out_tongue_winking_eye:

Good luck, and please do share any success stories.

1 Like

Good luck, and please do share any success stories.

Heeding my own request, I am hapy to report that while the mid-April release of the Radeon Pro software resulted in instability and much flickering on my Kubuntu 18.04 official release installation, the May 3 release (definitively after the April 26 official Ubuntu 18.04 and flavours release date) - installed flawlessly and I have only noticed one glitch, that have not since been able to reproduce - a slowing to a crawl of darktable (but no other running applications).

So, I am happy to recommend downloading and installing from here the amdgpu-pro-18.20-579836 version.

I’m running AMD A12-9800 (APU with Radeon R7 Graphics - 8 graphics cores). Your mileage may vary.

1 Like

Hi to all! I’m planning to buy new PC. What graphic card should I choose to have easy opencl setup and effective use in DT in ubuntu based distribution? Now I select nvidia gt1030 with 1Gb Ram. Am I right?

As I mentioned in another thread, if you’re after OpenCL performance, the “best” card you can buy is the one that doesn’t break your wallet. The more compute power you can throw at OpenCL, the faster it’ll go, generally.

If you want to go the nVidia router, and don’t mind the proprietary driver, have a look at using the Ubuntu Graphics Drivers PPA, I’m using it on my KDE neon computer get the the freshest drivers. It has worked very well for me on this computer.

However, if you want an out-of-the-box experience, I believe that AMD will soon be the better route.

If you want libre drivers, AMD is the only route.

As always, research carefully and make sure the driver you want to use supports the hardware you’re going to buy.

Thanks for reply! But I think with Amd you still need to use proprietary drivers (at least part of it) to enable opencl in dt…

Do you mean AMDGPU-pro driver? I wonder what is missing in Mesa that dt cannot use opencl?

I’m not a pro in Linux gpu drivers world. I just heard that open Amd drivers are garbage (maybe I wrong).

You are wrong. They’re far better than they used to be, and nearly on par with the Nvidia drivers for performance.

Its the free nVidia drivers that are not great, because nVidia does not help the people who write the free driver, while AMD at least answers questions about their hardware for those writing the free driver.

Pharonix actually has good coverage of all the video card driver stuff.

Yes, from what I have read, AMD has been working hard to bridge the gap. A good attitude to have. :sunny:

Thanks to all for explanation!

The problem with low bugdet nvidia cards I had in the past was there weak performance with the equalizier and the profiled denoise. Please correct me if I’m wrong, but OpenCl is still not fully supported by the opensource AMD drivers. There are several descriptions howto extract the OpenCl libraries from the proprietary drivers and use them with the opensource AMD drivers. So, for both vendors you need at least some parts (for AMD) of the proprietary drivers.

Since 2003 proprietary nvidia drivers are working for me. Whereas AMD proprietary drivers dropped support in AMDgpu-pro two years after I bought a R9 270X. And frglx is not working on newer LInux distributions. You will find some discussions about this “issues” on the darktable mailing lists. My R9 270X performed very well with mentioned moduls, which made it even more annoying. :disappointed_relieved:

You can find benchmarks for opencl here:

and here:
https://math.dartmouth.edu/~sarunas/darktable_bench.html

My only advice I can give is to carefully check the driver situation for your case.

The new way to use OpenCL with AMD cards on the open source drivers is ROCm, but it only supports recent CPUs (needs PCIe atomics) and certain versions of Linux. I’m not sure when it’s going to be mainlined…

I have ROCm for OpenCL running. However the RHEL packages seem to not exist for ROCm 1.8.1 yet. I’ve just extract the needed libs from there.