As of now there is suport for OpenCL 2.0 on Windows via AMD drivers.
Is there a way to get it implemented on Linux via amdgpu-pro drivers? and not ROCm ones with hacks?
We use the ROCm back end in the amdgpu-pro drivers for Vega and Navi HW. Which GPU are you using ?
You should be able to install either all-open or -pro packaged drivers from 20.45, include the appropriate "--opencl=xxx" parm depending on your GPU (rocr for Vega/Navi, legacy for earlier HW) and go.
Is there a specific concern you have re: ROCm drivers ?
I am on Ubuntu 20.04 LTS, and as of now 20.45 drivers give some errors on OpenCl installment. However 20.40 ones work like a charm. I use a RX580 GPU, and i install openCL via this command:
./amdgpu-pro-install --opencl=legacy,pal --headless (and installs OpenCl 1.2 succesfully)
P.S. i am aware that on 20.45 the command is slightnly changed ./amdgpu-pro-install --opencl=legacy,rocm --headless (but it fails at the end)
Are you suggesting i should replace legacy with 2.0?
./amdgpu-pro-install --opencl=2.0 --headless ?? (i hevent seent this in the AMD documentations)
My understanding was that we shipped the same OpenCL functionality on both Windows and Linux - 1.2 runtime with 2.0 kernel language support.
It's possible that got extended to 2.0 runtime support on Windows but I hadn't heard anything about it. Will see what I can find out.
Were you seeing OpenCL 2.0 support on Linux before the 20.45 release ?
until i saw open cl 2.0 working and installed by default on windows i was under the impresion that it was just for certain custom unoficial suported versions. so far on linux since about a year or so i havent seen anyone running 2.0 except some hacks on youtube from ROCm bits and oficial AMD bits
While my wondows os is allmost never used i didt bother update ing the GPU drivers, but you can see even a year ago 2.0 came bundeled into the drivers
Why do you think OpenCL is version 1.2? clinfo is reporting the following about amdgpu-pro 20.40:
Platform Version: OpenCL 2.1 AMD-APP (3180.7)
And about amdgpu-pro 20.40:
Platform Version: OpenCL 2.0 AMD-APP (3188.4)
And I'm fairly certain ROCm contains OpenCL 2.0, or 2.1 as well.
It's possible that something changed between 20.40 and 20.45, since we moved from PAL back end to ROCR back end on Linux for Navi and Vega.
We may just be reporting more accurately now, since AFAIK we never had 2.0 runtime, just 2.0 kernel language.
EDIT - ignore first statement since you are using Ellesmere
Number of platforms 1
Platform Name AMD Accelerated Parallel Processing
Platform Vendor Advanced Micro Devices, Inc.
Platform Version OpenCL 2.1 AMD-APP (3180.7)
Platform Profile FULL_PROFILE
Platform Extensions cl_khr_icd cl_amd_event_callback cl_amd_offline_devices
Platform Host timer resolution 1ns
Platform Extensions function suffix AMD
Platform Name AMD Accelerated Parallel Processing
Number of devices 1
Device Name Ellesmere
Device Vendor Advanced Micro Devices, Inc.
Device Vendor ID 0x1002
Device Version OpenCL 1.2 AMD-APP (3180.7)
Driver Version 3180.7
Device OpenCL C Version OpenCL C 1.2
because this is the same result clinfo gives me no matter the Linux distro or driver version
Ahh, good - Ellesmere. So we didn't change anything other than bug fixes between 20.40 and 20.45 for you. In hindsight I should have figured that out as soon as you said that installing with --opencl=pal,legacy was successful.
The info you pasted looks like it came from clinfo - I guess it would be interesting to see what clinfo on Windows says. I would offer to run it but my Windows box is pretty stone-age.
I'll ask our OpenCL devs and see what they expect.
clinfo reports the following about OpenCL versions:
Platform Version: OpenCL 2.0 AMD-APP (3188.4) Device OpenCL C version: OpenCL C 2.0 Version: OpenCL 2.0
This is about OpenCL running Ubuntu 20.10, a Vega64, and amdgpu-pro OpenCL 20.45.
I'm using Navi (Ubuntu) for Blender and I need pro drivers. I have a problem with ROCm:
and (until it is fixed) I wold like to use OpenCl instead.
Info from ROCm developers is unfavorable for me:
So, is there a possibility to install OpenCl instead of ROCm?
Yes and no. The OpenCL code in the 20.45 driver packages is newer than what we have in the ROCm packages and we did quite a bit of testing/fixing on Blender. It's in slightly better shape on RDNA2 than RDNA1 but AFAIK should work on both (I'll try to find the test results). The 20.45 driver should install on any 5.4x kernel but since Ubuntu just pushed everything to 5.8.x you'll need to go back to the GA kernel rather than the HWE kernel. That's the "yes" part.
The "no" part is just that on 20.45 we are using the ROCr back end for OpenCL just like on the ROCm stack, but hopefully that should not be a problem for you. If you did want to try going all the way back to PAL-based OpenCL you should be able to install the 20.40 drivers but you'll need to take your kernel version back to 5.4.0-54 or older for 20.40 to install successfully.
With 20.40 I have that - "Split kernel error:failed to lad kernel_path_init".
Baking textures with 20.40 and 20.45 is impossible for me.
I've bought that card mostly for work with Blender and can't use it as I expected (put in slot, install drivers and use).
It is far away from professional services.
As I remember problems with drivers is a never ending story, even with pro wx.
A reliable drivers! A reliable drivers! My kingdom for a reliable drivers!
OpenCL wasn't working with earlier versions of Blender, but I haven't had error messages with the current version. In some cases GPU rendering doesn't make any difference, and in some cases GPU rendering takes longer, but I haven't had any problems installing or using OpenCL with Blender. If you only need OpenCL, as I do, you can install AMDGPU-PRO OpenCL on any of the last Ubuntu's. For instance, I'm using OpenCL with a number of applications (including Blender) on Ubuntu 21.04.
I've installed 20.40 like so:
./amdgpu-install --no-dkms --headless --opencl=pal
If you've got an older card, you can also use --opencl=legacy,pal or even --opencl=legacy.
I've also tried to install 20.45 like this:
./amdgpu-install --no-dkms --headless --opencl=rocr
--opencl can be legacy, or legacy,rocr as well. This has changed because AMD currently isn't using PAL anymore, but ROCm.
But this didn't work as I was expecting, because no-dkms is ignored when you use the rocr option. Legacy may be fine though. I've been able to install it after all by removing amdgpu-dkms, and removing the blacklisting of AMDGPU.