Intel OpenCL CPU-drivers 2013 beta with OpenCL 1.2 support

Screenshot from Intel’s “God Rays” demo

This article is still work-in-progress

Intel has just released its OpenCL bit CPU-drivers, version 2013 bèta. It has support for OpenCL 1.1 (not 1.2 as for the CPU) on Intel HD Graphics 4000/2500 of the 3rd generation Core processors (Windows only). The release notes mention support for Windows 7 and 8, but the download-site only mentions windows 8. Support under Linux is limited to 64 bits.

The release notes mention:

  • General performance improvements for many OpenCL* kernels running on CPU.
  • Preview Tool: Kernel Builder (Windows)
  • Preview Feature: support of  kernel source code hotspots analysis with the Intel VTuneT Amplifier XE 2011 update 3 or higher.
  • The GNU Project Debugger (GDB) debugging support on Linux operating systems.
  • New OpenCL 1.2 extensions supported by the CPU device:
    • cl_khr_int64_base_atomics and cl_khr_int64_extended_atomics
    • cl_khr_fp16
    • cl_khr_gl_sharing
    • cl_khr_gl_event
    • cl_khr_d3d10_sharing
    • cl_khr_dx9_media_sharing
    • cl_khr_d3d11_sharing.
  • OpenCL 1.1 extensions that were changed in OpenCL 1.2:
    • Device Fission supports both OpenCL 1.1 EXT API’s and also OpenCL* 1.2 fission core features
    • Media Sharing support intel 1.1 media sharing extension and also the 1.2 KHR media sharing extension
    • Printf extension is aligned with OpenCL 1.2 core feature.

Check the release notes for full information.

The drivers can be found on http://software.intel.com/en-us/articles/vcsource-tools-opencl-sdk-2013/. Installation is simple. For Windows there is a installer. If you have Linux, make sure you remove any previous version of Intel’s openCL drivers. If you have a Debian-based Linux, use the command ‘alien’ to convert the rpm to deb, and make sure ‘libnuma1‘ is installed. There are requirements for libc 2.11 or 2.12 – more information on that later as Ubuntu 12.04 has libc6 2.15.

This is OpenCL-info on a test-machine with Intel i7:

  Platform Name:		 Intel(R) OpenCL
Number of devices:		 1
  Device Type:			 CL_DEVICE_TYPE_CPU
(...)
  Compiler available:		 Yes
  Execution capabilities:		 
    Execute OpenCL kernels:	 Yes
    Execute native function:	 Yes
  Queue properties:		 
    Out-of-Order:		 Yes
    Profiling :			 Yes
  Platform ID:			 0x1d13d50
  Name:				 Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
  Vendor:			 Intel(R) Corporation
  Driver version:		 1.2
  Profile:			 FULL_PROFILE
  Version:			 OpenCL 1.2 (Build 43113)
  Extensions:			 cl_khr_fp64
				 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_intel_printf
				 cl_ext_device_fission
				 cl_intel_exec_by_local_thread

SDK

The current examples can be downloaded from: http://software.intel.com/file/43406 http://software.intel.com/sites/products/vcsource/files/43406/intel_ocl_samples.zip  – you will need to alter them to work on Linux/OSX. Below are the examples I have altered to work on Linux/OSX – they are untested on any other machine than my primary computer. Make sure you have the latest version of the common files and check if files are missing as I have not included large data-files.

Just use make to build the binary – the binaries in the zip-file are 64 bit.
If you can’t wait – most examples run well when using the altered common files, commenting out ‘windows.h’ and changing two lines (forward-slash and utils.cpp instead of .h):
#include "CL/cl.h"
#include "utils.cpp"

Also add a function to the bottom of the main cpp:

int main(int argc, _TCHAR* argv[]) {
    return _tmain(argc, argv);
}

And then it’s just finding equivalents of standard C/C++ for MS flavour of C/C++. These are to be put in sc_linux.h

Benchmarks

In an update the results of a previous benchmark will be done.

7 thoughts on “Intel OpenCL CPU-drivers 2013 beta with OpenCL 1.2 support”

    1. On Linux there is no support for the HD 4000, while on Windows there is. But there is much more than just the embedded GPU: AVX and SSE

    1. Thanks for letting me know! The link at Intel was redirected wrongly and returned only the first 2MB of the zip-file. I corrected the link.

Comments are closed.