====== 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 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 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 ===== [[https://developer.nvidia.com/opencl|Nvidia OpenCL documentation and Examples.]] ===== 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