Can't load OpenCL runtime / or fails to load for xmrig

9,885

I finally found instructions that work!

I've tried to install OpenCl from numerous instructions I found all around the web. Most were an exercise in frustration. This is the one that worked for me. https://gist.github.com/kytulendu/3351b5d0b4f947e19df36b1ea3c95cbe

Share:
9,885
Joe Molnar
Author by

Joe Molnar

Updated on September 18, 2022

Comments

  • Joe Molnar
    Joe Molnar almost 2 years

    I have updated from Ubuntu 16.04 to 20.04. While doing so the uprade failed and I ended up doing a fresh install of 20.04. Fortunately, I have my home folder on another drive so that was saved. There was still a lot to recover. The last item I am stuck on is getting my AMD Radeon 580 GPU working. AMD does not support drivers for Ubuntu after 16.04. I tried installing OPENCL from this below page. And, I hope I installed the right software.

    https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html

    While following along with the advice of this video: https://www.youtube.com/watch?v=efKjfBkjPlM

    The object is to do a bit of GPU crypto mining using the xmrig program while my computer is idle.

    To check for successful completion I have rocminfo and clinfo comands.

    Result of rocminfo is:

    joe@joeslinux:~$ /opt/rocm/bin/rocminfo

    ROCk module is loaded
    joe is member of video group
    =====================    
    HSA System Attributes    
    =====================    
    Runtime Version:         1.1
    System Timestamp Freq.:  1000.000000MHz
    Sig. Max Wait Duration:  18446744073709551615 (0xFFFFFFFFFFFFFFFF) (timestamp count)
    Machine Model:           LARGE                              
    System Endianness:       LITTLE                             
    
    ==========               
    HSA Agents               
    ==========               
    *******                  
    Agent 1                  
    *******                  
      Name:                    AMD Ryzen Threadripper 1950X 16-Core Processor
      Marketing Name:          AMD Ryzen Threadripper 1950X 16-Core Processor
      Vendor Name:             CPU                                
      Feature:                 None specified                     
      Profile:                 FULL_PROFILE                       
      Float Round Mode:        NEAR                               
      Max Queue Number:        0(0x0)                             
      Queue Min Size:          0(0x0)                             
      Queue Max Size:          0(0x0)                             
      Queue Type:              MULTI                              
      Node:                    0                                  
      Device Type:             CPU                                
      Cache Info:              
        L1:                      32768(0x8000) KB                   
      Chip ID:                 0(0x0)                             
      Cacheline Size:          64(0x40)                           
      Max Clock Freq. (MHz):   3400                               
      BDFID:                   0                                  
      Internal Node ID:        0                                  
      Compute Unit:            32                                 
      SIMDs per CU:            0                                  
      Shader Engines:          0                                  
      Shader Arrs. per Eng.:   0                                  
      WatchPts on Addr. Ranges:1                                  
      Features:                None
      Pool Info:               
        Pool 1                   
          Segment:                 GLOBAL; FLAGS: KERNARG, FINE GRAINED
          Size:                    65778612(0x3ebb3b4) KB             
          Allocatable:             TRUE                               
          Alloc Granule:           4KB                                
          Alloc Alignment:         4KB                                
          Acessible by all:        TRUE                               
        Pool 2                   
          Segment:                 GLOBAL; FLAGS: COARSE GRAINED      
          Size:                    65778612(0x3ebb3b4) KB             
          Allocatable:             TRUE                               
          Alloc Granule:           4KB                                
          Alloc Alignment:         4KB                                
          Acessible by all:        TRUE                               
      ISA Info:                
        N/A                      
    *******                  
    Agent 2                  
    *******                  
      Name:                    gfx803                             
      Marketing Name:          Ellesmere [Radeon RX 470/480/570/570X/580/580X/590]
      Vendor Name:             AMD                                
      Feature:                 KERNEL_DISPATCH                    
      Profile:                 BASE_PROFILE                       
      Float Round Mode:        NEAR                               
      Max Queue Number:        128(0x80)                          
      Queue Min Size:          4096(0x1000)                       
      Queue Max Size:          131072(0x20000)                    
      Queue Type:              MULTI                              
      Node:                    1                                  
      Device Type:             GPU                                
      Cache Info:              
        L1:                      16(0x10) KB                        
      Chip ID:                 26591(0x67df)                      
      Cacheline Size:          64(0x40)                           
      Max Clock Freq. (MHz):   1340                               
      BDFID:                   16640                              
      Internal Node ID:        1                                  
      Compute Unit:            36                                 
      SIMDs per CU:            4                                  
      Shader Engines:          4                                  
      Shader Arrs. per Eng.:   1                                  
      WatchPts on Addr. Ranges:4                                  
      Features:                KERNEL_DISPATCH 
      Fast F16 Operation:      FALSE                              
      Wavefront Size:          64(0x40)                           
      Workgroup Max Size:      1024(0x400)                        
      Workgroup Max Size per Dimension:
        x                        1024(0x400)                        
        y                        1024(0x400)                        
        z                        1024(0x400)                        
      Max Waves Per CU:        40(0x28)                           
      Max Work-item Per CU:    2560(0xa00)                        
      Grid Max Size:           4294967295(0xffffffff)             
      Grid Max Size per Dimension:
        x                        4294967295(0xffffffff)             
        y                        4294967295(0xffffffff)             
        z                        4294967295(0xffffffff)             
      Max fbarriers/Workgrp:   32                                 
      Pool Info:               
        Pool 1                   
          Segment:                 GLOBAL; FLAGS: COARSE GRAINED      
          Size:                    8388608(0x800000) KB               
          Allocatable:             TRUE                               
          Alloc Granule:           4KB                                
          Alloc Alignment:         4KB                                
          Acessible by all:        FALSE                              
        Pool 2                   
          Segment:                 GROUP                              
          Size:                    64(0x40) KB                        
          Allocatable:             FALSE                              
          Alloc Granule:           0KB                                
          Alloc Alignment:         0KB                                
          Acessible by all:        FALSE                              
      ISA Info:                
        ISA 1                    
          Name:                    amdgcn-amd-amdhsa--gfx803          
          Machine Models:          HSA_MACHINE_MODEL_LARGE            
          Profiles:                HSA_PROFILE_BASE                   
          Default Rounding Mode:   NEAR                               
          Default Rounding Mode:   NEAR                               
          Fast f16:                TRUE                               
          Workgroup Max Size:      1024(0x400)                        
          Workgroup Max Size per Dimension:
            x                        1024(0x400)                        
            y                        1024(0x400)                        
            z                        1024(0x400)                        
          Grid Max Size:           4294967295(0xffffffff)             
          Grid Max Size per Dimension:
            x                        4294967295(0xffffffff)             
            y                        4294967295(0xffffffff)             
            z                        4294967295(0xffffffff)             
          FBarrier Max Size:       32                                 
    *** Done ***             
    

    clinfo is a stranger. Running clinfo, I got:

    joe@joeslinux:~$ clinfo
    terminate called after throwing an instance of 'cl::Error'
      what():  clGetPlatformIDs
    Aborted (core dumped)
    

    Running it from the directory got a different error:

    joe@joeslinux:~$ /opt/rocm/opencl/bin/x86_64/clinfo
    ERROR: clGetPlatformIDs(-1001)
    

    Running it with sudo from the directory got what appears to be valid output. joe@joeslinux:~$ sudo /opt/rocm/opencl/bin/x86_64/clinfo

    Number of platforms:                 1
      Platform Profile:              FULL_PROFILE
      Platform Version:              OpenCL 2.1 AMD-APP (3098.0)
      Platform Name:                 AMD Accelerated Parallel Processing
      Platform Vendor:               Advanced Micro Devices, Inc.
      Platform Extensions:               cl_khr_icd cl_amd_event_callback cl_amd_offline_devices 
    
    
      Platform Name:                 AMD Accelerated Parallel Processing
    Number of devices:               1
      Device Type:                   CL_DEVICE_TYPE_GPU
      Vendor ID:                     1002h
      Board name:                    Ellesmere [Radeon RX 470/480/570/570X/580/580X/590]
      Device Topology:               PCI[ B#65, D#0, F#0 ]
      Max compute units:                 36
      Max work items dimensions:             3
        Max work items[0]:               1024
        Max work items[1]:               1024
        Max work items[2]:               1024
      Max work group size:               256
      Preferred vector width char:           4
      Preferred vector width short:          2
      Preferred vector width int:            1
      Preferred vector width long:           1
      Preferred vector width float:          1
      Preferred vector width double:         1
      Native vector width char:          4
      Native vector width short:             2
      Native vector width int:           1
      Native vector width long:          1
      Native vector width float:             1
      Native vector width double:            1
      Max clock frequency:               1340Mhz
      Address bits:                  64
      Max memory allocation:             7301444403
      Image support:                 Yes
      Max number of images read arguments:       128
      Max number of images write arguments:      8
      Max image 2D width:                16384
      Max image 2D height:               16384
      Max image 3D width:                2048
      Max image 3D height:               2048
      Max image 3D depth:                2048
      Max samplers within kernel:            26591
      Max size of kernel argument:           1024
      Alignment (bits) of base address:      1024
      Minimum alignment (bytes) for any datatype:    128
      Single precision floating point capability
        Denorms:                     No
        Quiet NaNs:                  Yes
        Round to nearest even:           Yes
        Round to zero:               Yes
        Round to +ve and infinity:           Yes
        IEEE754-2008 fused multiply-add:         Yes
      Cache type:                    Read/Write
      Cache line size:               64
      Cache size:                    16384
      Global memory size:                8589934592
      Constant buffer size:              7301444403
      Max number of constant args:           8
      Local memory type:                 Scratchpad
      Local memory size:                 65536
      Max pipe arguments:                16
      Max pipe active reservations:          16
      Max pipe packet size:              3006477107
      Max global variable size:          7301444403
      Max global variable preferred total size:  8589934592
      Max read/write image args:             64
      Max on device events:              1024
      Queue on device max size:          8388608
      Max on device queues:              1
      Queue on device preferred size:        262144
      SVM capabilities:              
        Coarse grain buffer:             Yes
        Fine grain buffer:               Yes
        Fine grain system:               No
        Atomics:                     No
      Preferred platform atomic alignment:       0
      Preferred global atomic alignment:         0
      Preferred local atomic alignment:      0
      Kernel Preferred work group size multiple:     64
      Error correction support:          0
      Unified memory for Host and Device:        0
      Profiling timer resolution:            1
      Device endianess:              Little
      Available:                     Yes
      Compiler available:                Yes
      Execution capabilities:                
        Execute OpenCL kernels:          Yes
        Execute native function:             No
      Queue on Host properties:              
        Out-of-Order:                No
        Profiling :                  Yes
      Queue on Device properties:                
        Out-of-Order:                Yes
        Profiling :                  Yes
      Platform ID:                   0x7fe7119b5d30
      Name:                      gfx803
      Vendor:                    Advanced Micro Devices, Inc.
      Device OpenCL C version:           OpenCL C 2.0 
      Driver version:                3098.0 (HSA1.1,LC)
      Profile:                   FULL_PROFILE
      Version:                   OpenCL 1.2 
      Extensions:                    cl_khr_fp64 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_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_fp16 cl_khr_gl_sharing cl_amd_device_attribute_query cl_amd_media_ops cl_amd_media_ops2 cl_khr_image2d_from_buffer cl_khr_subgroups cl_khr_depth_images cl_amd_copy_buffer_p2p cl_amd_assembly_program 
    

    clinfo and it’s folder are owned by 1001. I know that this means there is no owner 1001.

    drwxrwxr-x  5 1001 1001 4096 May 17 22:28 opencl
    

    I changed owner to root. Then I ran the clinfo command agaion, but that made no difference.

    The program which I am trying to run is xmrig.

    Here is the error line:

    ./xmrig ...
    
    * OPENCL       disabled (failed to load OpenCL runtime)
    

    Also note, that I have not run this xmrig mining program before, that is while on 16.04. I had used a different miner at that time.

    Thank you in advance.