I need to install Intel OpenCL support under CentOS 6.5, and after considerable research, I believe the answer is the depricated 'OpenCL Applications XE 2013 R3' package. Problem is, after two days of searching, I cannot find it anywhere. Surely Intel has an archive somewhere ...?... Can someone direct me to where I might download this package. I only need OCL 1.2...
Sorry for the delayed reply. What hardware are you targeting? That will matter more than the Linux distro you are using.
For GPU support: If you want to run on 5th Generation Core or newer you can use the most recent driver packages or Media Server Studio. For older, you can use archived versions of Media Server Studio -- which contain OpenCL.
For CPU only, check the CPU runtimes options on the drivers and runtimes page. https://software.intel.com/en-us/articles/opencl-drivers.
We are not interested in GPU processing, we're targeting recent Intel Core/Xeon CPUs. The Linux distro is critically important because none of the currently available downloads from https://software.intel.com/en-us/intel-opencl will install on our CentOS 6.8 systems.
Again, none of the standard OpenCL SDK packages on the link you provided will install under CentOS 6.
Do you happen to have a link for archived versions of Media Server Studio?
You can get older versions of Media Server Studio by signing up for the community edition, then going into Intel Registration Center and selecting an older version. However, the method you would use for install on CentOS 6.5 for CPU only would be the same as for the newer versions of Media Server Studio. You would just do a generic install, which means you would manually copy the OpenCL CPU runtimes to system directories. No reason to go to an older release.
There should be a more direct route to get the CPU runtimes and SDK installed on CentOS 6.5/6.8. The main concern is that the supported CPU instruction sets are available. Let me see if we can find a better recommendation for you.
Just to clarify, is your goal to install to CentOS 6.5 or 6.8?
Correct. CentOS 6.8 (although, I believe the kernel is the same in 6.5-6.9)
If I'm going to have to do a 'generic install', then I'll need a description of what files need to be copied where, of course.
Oh, and thank you, Jeff, for your help. It's greatly appreciated.
Sorry for the delay getting back to you. Just wanted to let you know that I was able to get code to compile and run with the experimental OpenCL 2.1 in CentOS 6.8. I will write back with a more detailed description soon.
Very sorry for the delayed reply again.
I've successfully tested this combination in CentOS 6.8:
- Latest CPU-only runtime package (16.1.2)
- Latest Intel(r) SDK for OpenCL(tm) Applications package
yum install redhat-lsb-core yum groupinstall "Development tools" tar -xvzf opencl_runtime_16.1.2_x64_rh_22.214.171.124.tgz cd opencl_runtime_16.1.2_x64_rh_126.96.36.199 run install_GUI.sh tar -xvzf intel_sdk_for_opencl_2017_188.8.131.521_x64.tgz cd intel_sdk_for_opencl_2017_184.108.40.2061_x64 run install_GUI.sh
For simplicity, skip the "Intel Debugger for Heterogeneous Compute" components with a custom install.
You can test like this with the basic capabilities sample:
unzip intel_ocl_caps_basic.zip cd CapsBasic/ make ./CapsBasic [user@localhost CapsBasic]$ ./CapsBasic Number of available platforms: 2 Platform names:  Intel(R) OpenCL [Selected]  Experimental OpenCL 2.1 CPU Only Platform Number of devices available for each type: CL_DEVICE_TYPE_CPU: 1 CL_DEVICE_TYPE_GPU: 0 CL_DEVICE_TYPE_ACCELERATOR: 0 *** Detailed information for each device *** CL_DEVICE_TYPE_CPU CL_DEVICE_NAME: Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz CL_DEVICE_AVAILABLE: 1 CL_DEVICE_VENDOR: Intel(R) Corporation CL_DEVICE_PROFILE: FULL_PROFILE CL_DEVICE_VERSION: OpenCL 1.2 (Build 37) CL_DRIVER_VERSION: 220.127.116.11 CL_DEVICE_OPENCL_C_VERSION: OpenCL C 1.2 CL_DEVICE_MAX_COMPUTE_UNITS: 1 CL_DEVICE_MAX_CLOCK_FREQUENCY: 1600 CL_DEVICE_MAX_WORK_GROUP_SIZE: 8192 CL_DEVICE_ADDRESS_BITS: 64 CL_DEVICE_MEM_BASE_ADDR_ALIGN: 1024 CL_DEVICE_MAX_MEM_ALLOC_SIZE: 338732032 CL_DEVICE_GLOBAL_MEM_SIZE: 1354928128 CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE: 131072 CL_DEVICE_GLOBAL_MEM_CACHE_SIZE: 262144 CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE: 64 CL_DEVICE_LOCAL_MEM_SIZE: 32768 CL_DEVICE_PROFILING_TIMER_RESOLUTION: 1 CL_DEVICE_IMAGE_SUPPORT: 1 CL_DEVICE_ERROR_CORRECTION_SUPPORT: 0 CL_DEVICE_HOST_UNIFIED_MEMORY: 1 CL_DEVICE_EXTENSIONS: cl_khr_icd 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_depth_images cl_khr_3d_image_writes cl_intel_exec_by_local_thread cl_khr_spir cl_khr_fp64 cl_intel_vec_len_hint CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT: 1 CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG: 1 CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT: 1 CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE: 1 CL_DEVICE_NATIVE_VECTOR_WIDTH_INT: 4 CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG: 2 CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT: 8 CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE: 4
And like this with the SimpleOptimizations sample:
unzip intel_ocl_simple_optimizations.zip cd SimpleOptimizations make ./SimpleOptimizations -s 1024 -p "Intel" (runs with 16.1.2 CPU implementation) ./SimpleOptimizations -s 1024 -p "Experimental" (runs with experimental implementation from SDK)