Intel® SDK for OpenCL* Applications 2012 Release Notes

Submit New Article



Intel® SDK for OpenCL* Applications 2012* Release Notes contain information about the Intel® SDK for OpenCL* Applications 2012 new features, fixed bugs, and includes the updated list of supported hardware and software. It also includes information on SDK limitations and known issues.

3rd Generation Intel® Core™ processor family supports the OpenCL* 1.1 standard across both CPU and the Intel® HD Graphics directly through the Intel® HD Graphics driver on the Microsoft Window* 7 operating systems.

For the OpenCL* support on previous generations of the Intel® Core™ processors and the Intel® Xeon® processors, and for Linux* operating systems, the CPU only runtime package is available either directly through the Intel® SDK for OpenCL* Applications 2012 or by downloading the Intel® SDK for OpenCL* - CPU only runtime package 2012.

Table of Contents

New in this Release (Intel® SDK for OpenCL* Applications 2012)

Intel® HD Graphics Support

Back to top

  • Intel® SDK for OpenCL* Applications now supports OpenCL* 1.1 on the 3rd Generation Intel® Core™ processor family.
  • This release supports a single OpenCL* platform to seamlessly access the compute power across both Intel® Architecture CPU and Intel® HD Graphics devices.
  • OpenCL* support on the 3rd Generation Intel® Core™ Processors with the Intel® HD Graphics 4000/2500 is seamlessly available with the Intel® HD Graphics Driver on both CPU and the Intel® HD Graphics.
  • OpenCL* platform consists of two OpenCL* devices:
    • Intel® Architecture CPU
    • Intel® HD Graphics (GPU)
Device Type IDHardware Device
CL_DEVICE_TYPE_GPU Intel® HD Graphics
CL_DEVICE_TYPE_CPU Intel® CPU

Platform Info IDValue
CL_PLATFORM_VENDOR Intel® Corporation
CL_PLATFORM_NAME Intel OpenCL*

Intel platform for the Intel® Xeon® processors or for previous generations of the Intel® Core™ processors includes only the CPU device.


OpenCL* Extensions Support

Back to top


Extension NameGPU Device (Intel® HD Graphics)CPU Device
cl_khr_icd Yes Yes
cl_khr_global_int32_base_atomics Yes Yes
cl_khr_global_int32_extended_atomics Yes Yes
cl_khr_local_int32_base_atomics Yes Yes
cl_khr_local_int32_extended_atomics Yes Yes
cl_khr_gl_sharing Yes Yes
cl_khr_d3d10_sharing Yes No
cl_khr_3d_image_writes Yes No
cl_khr_byte_addressable_store Yes Yes
cl_intel_dx9_media_sharing Yes Yes
cl_khr_fp64 No Yes
cl_intel_printf No Yes
cl_ext_device_fission No Yes
cl_intel_exec_by_local_thread No Yes

Intel® SDK for OpenCL* Applications Development Tools

Back to top

Intel® SDK for OpenCL* Applications provides a comprehensive environment for build, debug, and tune stages of the OpenCL* applications development.

Intel® SDK for OpenCL* Applications comprises:

  • Intel® SDK for OpenCL* - Debugger: Support OpenCL* kernel debugging on the Intel® Architecture CPUs.
  • Intel® SDK for OpenCL* - Offline Compiler: Support OpenCL* kernel development and offline build across both CPU and the Intel® HD Graphics.

This SDK also provides profiling and tuning of OpenCL* applications through Intel® Graphics Performance Analyzers (Intel® GPA) and Intel® VTune™ Amplifier XE.


New in this release:

  • Intel® SDK for OpenCL* Applications 2012 supports the Microsoft Visual Studio* 2010 in addition to the Microsoft Visual Studio* 2008.
  • Intel® SDK for OpenCL* - Offline Compiler plug-in for the Microsoft Visual Studio*. This plug-in supports:
    • New project templates
    • Syntax highlighting
    • Auto-completion for types and functions
    • Offline compilation and build of OpenCL* kernels
    • LLVM code view
    • Assembly code view
    • program IR generation
    • Selection of target OpenCL* device - CPU or GPU.
  • You can choose the target device (CPU or the Intel® HD Graphics) in the standalone version of the Intel® SDK for OpenCL* - Offline Compiler.
  • Intel® SDK for OpenCL* - Debugger plug-in support for the Microsoft Visual Studio* 2010

OpenCL* Sample Code

Back to top

  • Samples are available for both Microsoft Visual Studio* 2008 and 2010 versions.
  • Each sample is now available for independent downloads at the SDK for OpenCL* Application Code Samples page.
  • The following samples are added:
    • intel_ocl_resource_sharing (DirectX* 10 and media sharing interoperability)
    • intel_ocl_tone_mapping_multi_device (CPU + Intel® HD Graphics)
  • Intel® Media SDK interoperability sample is updated to work entirely on the Intel® HD Graphics (OpenCL* and Intel® Media SDK interoperability)

Resolved Issues

Issues resolved since the Intel® OpenCL* SDK 1.5

  • Performance issue when using small work-group size.
  • High variance in performance when using the CPU device on Linux* OS.
  • Fixed issue in enum types compilation.
  • Fixed issue in conversion of float3 to float4.
  • Fixed issues when using the Inte® VTune™ Amplifier XE 2011 software with an OpenCL* application.

Technical Requirements

Back to top

Intel® SDK for OpenCL* Applications 2012 introduces support for the 3rd Generation Intel® Core™ processor family.

NOTE:
Intel® SDK for OpenCL* Applications 2012 CPU device requires support for the Intel® Streaming SIMD Extensions 4.1 (Intel® SSE 4.1) or higher (Intel® SSE 4.2, Intel® Advanced Vector Extensions (Intel® AVX)). Installation may fail on unsupported hardware or operating system.

Intel® Processors Support Matrix


Windows* OS support

Linux* OS support

Intel® Processors

CPU

Intel® HD Graphics

CPU

Intel® HD Graphics

Mobile and Desktop Products

3rd Generation Intel® Core™ Processors (i3, i5, i7)

-

2nd Generation Intel® Core™ Processors (i3, i5, i7, i7 Extreme)

-

-

Previous Generation Intel® Core™ Processors (i3, i5, i7, i7 Extreme)

-

-

Intel® Core™ 2 processor family

- Intel® Core™ 2 Extreme Processor, 9000 series

- Intel® Core™ 2 Quad Processor 8000 and 9000 series

- Intel® Core™ 2 Dou Processor, 8000 series

- Intel® Core™ 2 Dou Processor, E7200 series

* All other versions of Intel® Core™ 2 processors are not supported

-

-

Intel® Celeron® Processors

-

-

-

-

Intel® Pentium Processors

-

-

-

-

Intel® Atom Processors

-

-

-

-

Server Products

Intel® Xeon® Processor E7 Family

-

-

Intel® Xeon® Processor E5 Family

-

-

Intel® Xeon® Processor E3 Family

-

-

Intel® Xeon® Processor 6000/7000 Sequence

- Intel® Xeon® Processor 6500/7500 series

- Intel® Xeon® Processor 7400 series

* All other 7xxx series are not supported

-

-

Intel® Xeon® Processor 5000 Sequence

- Intel® Xeon® Processor 5600 series

- Intel® Xeon® Processor 5500 series

- Intel® Xeon® Processor 5400 series

- Intel® Xeon® Processor 5200 series

* All other 5xxx series are not supported

-

-

Intel® Xeon® Processor 3000 Sequence

- Intel® Xeon® Processor 3600 series

- Intel® Xeon® Processor 3500 series

- Intel® Xeon® Processor 3400 series

- Intel® Xeon® Processor 3300 series

- Intel® Xeon® Processor 3100 series

* All other 3xxx series are not supported

-

-


Supported Operating Systems


Intel® SDK for OpenCL* Applications 2012 supports the following operating systems:

  • Microsoft Windows 7* (32-bit version)
  • Microsoft Windows 7* (64-bit version)
  • Microsoft Windows 7* Service Pack 1 (32-bit version)
  • Microsoft Windows 7* Service Pack 1 (64-bit version)
  • Microsoft Windows Vista* Service Pack 2 (32-bit version)
  • Microsoft Windows Vista* Service Pack 2 (64-bit version)
  • Microsoft Windows Server 2008 R2
  • Novell* SUSE* Linux Enterprise Server 11 Service Pack 1 (64-bit version)
  • Red Hat* Enterprise Linux 6.1 (64-bit version)

Use the Microsoft Windows 7* Service Pack 1 to achieve better performance on the 2nd and the 3rd Generation Intel® Core™ processors.

Due to several Intel® AVX issues in the default glibc 2.11.1 implementation, the Intel® SDK for OpenCL* Applications libraries for 64-bit Linux* OS have the following requirements:

  • SuSE Linux Enterprise Server 11, SP1 OS requires glibc-2.11.1-0.32.1
  • For RedHat Enterprise Linux 6 OS requires glibc-2.12-1.47 (See also: http://rhn.redhat.com/errata/RHSA-2011-1526.html)

If you use a CPU that is not AVX-enabled, the patch might not be required.

NOTE:
AVX-enabled processors are introduced with 2nd Generation Intel® Core™ Proccesor Family.

Product Limitations and Known Issues

Back to top

  • Before installing the Intel® SDK for OpenCL* 2012 on Windows* OS running on processors that do not include the OpenCL* support for the Intel® HD Graphics, make sure you deleted the following files from your system:
    • C:\Windows\System32\IntelOpenCL32.dll - on 32-bit OS
    • C:\Windows\System32\IntelOpenCL64.dll - on 64-bit OS
    • C:\Windows\SYSWOW64\IntelOpenCL32.dll - on 64-bit OS
  • Linux* operating systems support only 64-bit applications.
  • Media Sharing extension has been validated on Windows7* OS only.
  • To overcome shared context (the OpenCL* context which includes both CPU and GPU devices) limitations:
    • Do not trigger for both devices (specify NULL as device_list parameter)
    • Avoid using images with CL_MEM_USE_HOST_PTR flag.
    • Avoid using on systems with discrete graphics.
    • Avoid calling clEnqueueMapBuffer[Image] on one device while calling clEnqueueUnmapMemObject on the other device (while this is enabled by the specification).
    • Use image formats supported by both devices only.
  • Compilation support for the Intel® Advanced Vector Extension (AVX) instruction set architecture works on the 3rd Generation Intel® Core™ Processors.
  • Intel® SDK for OpenCL* - Offline Compiler GUI is not supported on the 2nd Generation Intel® Core™ Processors running Red Hat Enterprise* Linux* 6 operating systems.

  • NOTE:
    To work with the Intel® SDK for OpenCL* - Offline Compiler plug-in on 64-bit OS, you must configure the Visual Studio* for 64-bit applications (64-bit compiler and tools).

  • If the Offline Compiler does not work, make sure that Java* runtime is properly installed on your system:
    • If JAVA_HOME environment variable exists, make sure that it contains the right path to the java library.
    • Add the path to the java bin library:
      • If JAVA_HOME exists, add %JAVA_HOME%\bin to the Path environment variable.
      • If JAVA_HOME does not exist add the full path to the java bin library.
    • Remove any other java paths (other java versions) from the Path environment variable.
  • Interoperability with the Intel® GPA is supported only for the Microsoft Windows* operating systems.
  • Microsoft Windows* Remote desktop does not work for the Intel® GPA interoperability.
  • Intel® SDK for OpenCL* Applications supports the Intel® VTune™ Amplifier XE 2011 update 3 or higher.
  • Intel® SDK for OpenCL* - Debugger does not support:
    • Disassembly view
    • Edit and continue capability
    • Multithreaded debugging
    • Two instances of visual studio running simultaneously

Installer

You may encounter the following error message while installing the software required for the Intel® SDK for OpenCL* Applications 2012 functionality:
"Setup has detected that the publisher of file cannot be verified".
To fix the problem, download and install the latest update for Root Certificates from the Microsoft* website (windowsupdate.microsoft.com), then try to install the SDK again.

NOTE:
To manually update security certificates, as of March 2011 you can install the Microsoft* patch residing in the Microsoft* website. This patch matches the Microsoft Windows XP*, Microsoft Windows Vista* and Microsoft Windows 7* operating systems.

CPU Device Limitations

Back to top

Run Time

  • The calling convention of the Native Kernel user_func parameter for clEnqueueNativeKernel, has changed to "CL_CALLBACK" keyword. This change is according to the OpenCL* 1.1 specification.
  • Setting affinity for the main thread before initializing the OpenCL* library may cause unpredictable results on Linux* operating systems. Create the OpenCL* context first if you want to set the affinity for your master thread.
  • On Linux* operating systems the application thread should not exit while the OpenCL* commands are still being execute, otherwise it may cause undefined behavior.
  • Call clFinish on a queue from the same thread you called clFlush for that queue to avoid performance loss.
  • Avoid creating multiple command queues on the same sub-device. Scheduling between multiple command queues on the sub-device level is depth-first.
  • The following scenarios are not supported by cl_ext_device_fission extension:
    • Calling clCreateSubdevicesEXT simultaneously with other OpenCL* calls by use of multithreading.
    • Calling clCreateSubdevicesEXT while a build is in progress, by use of multithreading or via an asynchronous build call.
    • Calling any of the fission APIs from within a callback, by use of clSetEventCallback, a build callback, an error reporting function, and clEnqueueNativeTask.
    • Dynamically creating and releasing devices currently refers to the existing OpenCL* context. Before creating any contexts you should divide the devices as required.
  • After GFX driver was installed and then removed, CPU Bundle (the OpenCL* CPU Runtime) does not work. To fix the issue, remove the following files:
    On 64-bit version of Windows* OS:
    • C:\Windows\System32\igdbcl64.dll
    • C:\Windows\System32\igdfcl64.dll
    • C:\Windows\System32\igdrcl64.dll
    • C:\Windows\SysWOW64\igdbcl32.dll
    • C:\Windows\SysWOW64\igdfcl32.dll
    • C:\Windows\SysWOW64\igdrcl32.dll
    On 32-bit version of Windows* OS:
    • C:\Windows\System32\igdbcl32.dll
    • C:\Windows\System32\igdfcl32.dll
    • C:\Windows\System32\igdrcl32.dll

Language

  • clCreateKernel crashes if the name of the kernel does not appear in program source code.
  • The compiler incorrectly accepts initialized and non-function scope local variables as reported at the Intel® SDK for OpenCL* Applications forum.
  • printf has a limit of 1024 characters per single % conversion.

Intel® HD Graphics Device Limitations

Back to top

  • Intel® HD Graphics supports OpenCL* only on the 3rd Generation Intel® Core™ Processors with the Intel® HD Graphics 4000/2500.
  • Intel® HD Graphics is supported only on the Microsoft Windows* 7 operating systems.
  • For details on known issues with the OpenCL* standard on the Intel® HD Graphics, refer to the relevant driver release notes. Use the Intel® Driver Update Utility to identify your Intel® HD Graphics and to obtain the latest version of driver and release notes.
NOTE:
GPU device is supported only on the Intel® HD Graphics 2500 and the Intel® HD Graphics 4000. Use the latest version of the driver.