openCL

Fedora 23

OpenCL on all systems.

Example Intel

Intel Integrated Graphics

Beignet 1.2 (OpenCL 1.2, OpenCL C 1.2)

Results on IvyBridge

Excerpt of clinfo
  Platform Name                                   Intel Gen OCL Driver
  Platform Vendor                                 Intel
  Platform Version                                OpenCL 1.2 beignet 1.1.1 (git-2eea2c9)
  Platform Profile                                FULL_PROFILE
  Platform Extensions                             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_byte_addressable_store cl_khr_spir cl_khr_icd
  Platform Extensions function suffix             Intel
Result of clpeak
Platform: Intel Gen OCL Driver
  Device: Intel(R) HD Graphics IvyBridge GT1
    Driver version  : 1.1.1 (Linux x64)
    Compute units   : 6
    Clock frequency : 1000 MHz
 
    Global memory bandwidth (GBPS)
      float   : 13.44
      float2  : 12.47
      float4  : 11.75
      float8  : h11.81
      float16 : 7.29
 
    Single-precision compute (GFLOPS)
      float   : 24.16
      float2  : 24.06
      float4  : 24.05
      float8  : 24.03
      float16 : 23.94
 
    No double precision support! Skipped
 
    Transfer bandwidth (GBPS)
      enqueueWriteBuffer         : 9.16
      enqueueReadBuffer          : 5.96
      enqueueMapBuffer(for read) : 346368.34
        memcpy from mapped ptr   : 5.98
      enqueueUnmap(after write)  : 1789569.62
        memcpy to mapped ptr     : 5.99
 
    Kernel launch latency : 17.03 us
 
Platform: Portable Computing Language
  Device: pthread-Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz
    Driver version  : 0.12 (Linux x64)
    Compute units   : 4
    Clock frequency : 3600 MHz
 
    Global memory bandwidth (GBPS)
      float   : 13.15
      float2  : 18.80
      float4  : 17.79
      float8  : 16.90
      float16 : 17.95
 
    Single-precision compute (GFLOPS)
      float   : 10.41
      float2  : 3.55
      float4  : 13.39
      float8  : 26.40
      float16 : 44.52
 
    Transfer bandwidth (GBPS)
      enqueueWriteBuffer         : 9.58
      enqueueReadBuffer          : 5.99
      enqueueMapBuffer(for read) : 46281.97
        memcpy from mapped ptr   : 6.16
      enqueueUnmap(after write)  : 82595.53
        memcpy to mapped ptr     : 6.15
 
    Kernel launch latency : 24.81 us

Ubuntu 12.04.5

By default NO OpenCL!

With AMD or Nvidia graphic drivers installed there is some OpenCL support available, but you have to use some tricks to get it almost working. Nvidia

Only installing the graphic driver nvidia-current (minimum necessary) or nvidia-experimental-310 there are still parts missing for OpenCL support.

You have to install CUDA (best 5.0) to get all libs, headers and tools you need, but you will always _only_ get OpenCL 1.1.

Device OpenCL C version: OpenCL C 1.1
Driver version: 310.14
Profile: FULL_PROFILE
Version: OpenCL 1.1 CUDA

Stuff, Examples and Tutorials

Problems

Every ICD Loader can call any ICD (Installable Client Driver). The features (available version) provided to the Application are specified by the ICD Loader.

  • Intel ICD Loader support OpenCL 1.2
Intel ICD support OpenCL 1.1 and some functions of OpenCL 1.2

Can run on CPU and/or GPU, only works with (Sandy-)Ivy-Bridge or newer,
  • NVidia ICD and ICD Loader support OpenCL 1.1,
  • AMD ICD and ICD Loader support OpenCL 1.2
Support also running on CPU with SSE3

Problems/Warning for different combinations of ICD *Loaders* used at compile-time (CT) and at run-time (RT)

CT\RT ocl-icd AMD NVidia Intel
ocl-icd ok ok MVS, MS MVS, MSO
AMD ok ok MVS, MS MVS, MSO
NVidia ok ok ok MSO
Intel BSO BSO BSO ok
  • MVS: missing version on symbol ⇒; a warning from the linker at program start
  • MS: missing symbols. The linker can fail to find some symbols (NVidia ICD
    • Loader still only support the 1.1 API)
  • BSO: the libOpenCL.so link must be present at runtime.
    • The requested soname is libOpenCL.so
    • The soname in the loaded library (filename) is libOpenCL.so.1
  • MSO: wrong soname:
    • The requested soname is libOpenCL.so.1
    • The soname in the loaded library (filename) is libOpenCL.so
Log In