Bug 107680

Summary: OpenCL does not work on Ubuntu 18.04 with Nvidia
Product: Mesa Reporter: Devyn Collier Johnson <DevynCJohnson>
Component: OtherAssignee: mesa-dev
Status: RESOLVED NOTOURBUG QA Contact: mesa-dev
Severity: critical    
Priority: medium    
Version: 18.1   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Devyn Collier Johnson 2018-08-24 19:39:55 UTC
System Info
     - System: Ubuntu 18.04
     - Linux Kernel Version: I tried 4.15 through 4.17 (both custom and standard repo kernels)
     - Nvidia Driver: 396
     - Graphics Card (GPU): Nvidia GeForce 1080
     - CPU: i7-8700K (Coffeelake)
     - Cuda Version: 9.1
     - ocl-icd-libopencl1 Version: 2.2.11-1ubuntu1
     - ocl-icd-libopencl1 Provides: libopencl-1.1-1, libopencl-1.2-1, libopencl-2.0-1, libopencl-2.1-1, libopencl1
     - clinfo Output:

        Number of platforms                               1
          Platform Name                                   Clover    
          Platform Vendor                                 Mesa    
          Platform Version                                OpenCL 1.1 Mesa 18.1.1    
          Platform Profile                                FULL_PROFILE    
          Platform Extensions                             cl_khr_icd    
          Platform Extensions function suffix             MESA       
          Platform Name                                   Clover    
        Number of devices                                 0        
        NULL platform behavior    
          clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...)  Clover    
          clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...)   Clover

          clCreateContext(NULL, ...) [default]            No devices found in platform    
          clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT)  No devices found in platform    
          clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU)  No devices found in platform    
          clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU)  No devices found in platform    
          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)  No devices found in platform        
        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 have been using OpenGL and OpenCL successfully for quite some time. However, I have not been able to use OpenCL recently. I update my system monthly. I used OpenCL successfully in May. As for June, I did not use OpenCL until the second week of June. I assume an update that I got in the beginning of June is the cause (but I could be wrong). I have tried downgrading the Linux kernel (and trying various kernel versions), Nvidia drivers (390 and 396), and various graphics-related libraries without success. The output of clinfo no longer sees my Nvidia card (like it did in May).

I have tried reinstalling nvidia-cuda-toolkit as well as all other Nvidia and Cuda packages. I also tried reinstalling intel-microcode and all Optimus/Prime related packages. I also tried uninstalling such packages and reinstalling. I have also tried uninstalling all intel-iGPU (such as Beignet and intel-microcode) related packages. The ubuntu-additional-drivers program only ever shows the Nvidia driver.

Interestingly, OpenGL is perfectly fine. I can still use the Nvidia card for graphics rendering. The output of nvidia-smi shows my various processes running on the graphics card in graphics-mode (but no compute-mode processes).

What am I over-looking in getting OpenCL to work again?

This detail may or may not be related or provide a hint, but the output of eglinfo shows that dlopen cannot find vgem_dri.so.
Comment 1 Rhys Kidd 2018-08-24 21:47:43 UTC
Is your objective to utilize the proprietary NVIDIA drivers on Ubuntu 18.04 to provide the OpenCL API? e.g. when you ran clinfo previously with your desired output, it reported:

>  $ clinfo
>    ...
>    Number of platforms           2
>      ...
>      Platform Name               NVIDIA CUDA
>      Platform Vendor             NVIDIA Corporation

If so, you should request support through NVIDIA's proprietary driver support channels (which it looks like you have [0]) or Ubuntu's distribution channels.

This bugtracker is for upstream open source Mesa drivers (including OpenCL provided by the Mesa driver stack).


[0] https://devtalk.nvidia.com/default/topic/1036967/linux/unable-to-use-opencl-cuda-on-ubuntu-18-04/
Comment 2 Devyn Collier Johnson 2018-08-25 01:48:40 UTC
Good idea, Rhys. Thanks!

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.