Getting OpenCL 1.2 to work with AMD GPUs on Ubuntu

On Ubuntu 22.04, you can install OpenCL 1.2 using Mesa’s Clover OpenCL implementation. Here’s the procedure:


Step 1: Update Your System

Ensure your system is up to date to avoid compatibility issues:

sudo apt update && sudo apt upgrade -y

Step 2: Install Mesa’s OpenCL ICD

Install the Mesa OpenCL runtime and the OpenCL ICD loader:

sudo apt install mesa-opencl-icd ocl-icd-libopencl1 ocl-icd-opencl-dev clinfo opencl-headers -y

Step 3: Verify the Mesa Version

Confirm you have a Mesa version that supports OpenCL 1.2 (e.g., Mesa 21.x or later):

dpkg -l | grep mesa

Look for mesa-opencl-icd and libegl-mesa0 with a version 21.x or newer.

Step 4: Ensure LLVM Version Compatibility

Mesa OpenCL depends on LLVM for OpenCL support. Older LLVM versions may restrict OpenCL to 1.1.

  1. Check the LLVM version:

Step 4: Check OpenCL Version

Verify that OpenCL is correctly installed and supports version 1.2:

clinfo | grep -i opencl

The output should include lines like:

Platform Version                                OpenCL 1.2 Mesa ...
Device Version OpenCL 1.2 Mesa ...

Notes

  • Ensure Mesa Compatibility: Mesa OpenCL requires GPUs supported by Mesa drivers (e.g., AMD with radeonsi or Intel with iris).
  • No Proprietary Drivers: If you’ve installed AMDGPU-Pro or ROCm drivers, they might conflict with Mesa. Ensure they’re uninstalled.