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
- 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 ID | Hardware Device |
|---|---|
| CL_DEVICE_TYPE_GPU | Intel® HD Graphics |
| CL_DEVICE_TYPE_CPU | Intel® CPU |
| Platform Info ID | Value |
|---|---|
| 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
| Extension Name | GPU 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
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
- 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
enumtypes compilation. - Fixed issue in conversion of
float3tofloat4. - Fixed issues when using the Inte® VTune™ Amplifier XE 2011 software with an OpenCL* application.
Technical Requirements
Intel® SDK for OpenCL* Applications 2012 introduces support for the 3rd Generation Intel® Core™ processor family.
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.
AVX-enabled processors are introduced with 2nd Generation Intel® Core™ Proccesor Family.
Product Limitations and Known Issues
- 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 OSC:\Windows\System32\IntelOpenCL64.dll- on 64-bit OSC:\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
NULLasdevice_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 callingclEnqueueUnmapMemObjecton the other device (while this is enabled by the specification). - Use image formats supported by both devices only.
- Do not trigger for both devices (specify
- 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.
- If the Offline Compiler does not work, make sure that Java* runtime is properly installed on your system:
- If
JAVA_HOMEenvironment variable exists, make sure that it contains the right path to the java library. - Add the path to the java bin library:
- If
JAVA_HOMEexists, add%JAVA_HOME%\binto thePathenvironment variable. - If
JAVA_HOMEdoes not exist add the full path to the java bin library.
- If
- Remove any other java paths (other java versions) from the Path environment variable.
- If
- 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
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).
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.
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
Run Time
- The calling convention of the Native Kernel
user_funcparameter forclEnqueueNativeKernel, 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
clFinishon a queue from the same thread you calledclFlushfor 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_fissionextension:- Calling
clCreateSubdevicesEXTsimultaneously with other OpenCL* calls by use of multithreading. - Calling
clCreateSubdevicesEXTwhile 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, andclEnqueueNativeTask. - Dynamically creating and releasing devices currently refers to the existing OpenCL* context. Before creating any contexts you should divide the devices as required.
- Calling
- 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.dllC:\Windows\System32\igdfcl64.dllC:\Windows\System32\igdrcl64.dllC:\Windows\SysWOW64\igdbcl32.dllC:\Windows\SysWOW64\igdfcl32.dllC:\Windows\SysWOW64\igdrcl32.dll
C:\Windows\System32\igdbcl32.dllC:\Windows\System32\igdfcl32.dllC:\Windows\System32\igdrcl32.dll
Language
clCreateKernelcrashes 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.
printfhas a limit of1024characters per single % conversion.
Intel® HD Graphics Device Limitations
- 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.
GPU device is supported only on the Intel® HD Graphics 2500 and the Intel® HD Graphics 4000. Use the latest version of the driver.
