Get Started with Intel® SDK for OpenCL™ Applications 2017

Intel® SDK for OpenCL™ Applications 2019 Beta represents a significant departure and refactor effort over Intel® SDK for OpenCL™ Applications 2017. View the Intel® SDK for OpenCL™ Applications 2019 Beta (as part of Intel® System Studio XE 2019) for more information. Intel® Graphics Compute Runtime for OpenCL™ Driver users on Linux* OS developers should pay close attention to the 2019 SDK. Relevant details for the new SDK are at the bottom of this page, as well as on the OpenCL™ deployments page.

0. Overview

Intel® SDK for OpenCL™ Applications 2017 is the primary development vehicle to unlock OpenCL™ development on Intel® Graphics Technology and Intel® CPUs. The SDK includes three layers of components to enable the developer stack.

Intel® SDK for OpenCL™ Applications 2017

  1. Developer Tools
    • Debug facility for OpenCL™ applications
    • Analysis facility for OpenCL™ applications
    • IDE Helper Plugin (Eclipse* or Visual Studio*)
    • Intel® offline compiler for OpenCL™ kernels, ioc64
  2. OpenCL™ Headers and an Interrogator Runtime
    • Headers and link libraries to build and execute OpenCL™ programs.
  3. Intel® Experimental OpenCL™ 2.1 CPU Only implementation
    • Provides the ability to run kernels on the CPU with no need for an accelerator/coprocessor device. This experimental runtime is intended for development only. It is not intended for redistribution.

    The Intel® SDK for OpenCL™ Applications does not contain any kernel mode components.


    1. Basic Example

    A basic, functioning OpenCL™ application can be built with the SDK components like so:

    Intel® SDK for OpenCL™ Applications 2017

    • In this example, the developer:
      • Writes C or C++ sources (far left, .cpp), including OpenCL™ headers (middle right). The sources choose the platform provided by the Intel® Experimental OpenCL™ 2.1 CPU Only runtime (bottom).
      • Writes her OpenCL-C kernel source file (middle,.cl)
      • Builds and links the C or C++ objects to the OpenCL™ interrogator runtime library (middle right)
    • At runtime, the OpenCL™ API facilities either just in time build the OpenCL-C kernel source or load a user precompiled kernel. The OpenCL™ implementation executes the kernel binary on the OpenCL™ target device.
      • In this example that target device is the CPU. Kernel compilation and execution is afforded by the platform provided with the Intel® Experimental OpenCL 2.1 CPU Only runtime.

     

    There are more considerations and options when executing OpenCL applications. The reader is encouraged to explore the Khronos* reference on OpenCL™ registry page and the Intel® SDK for OpenCL™ Applications release notes for more detail.


    2. Example Developer Configurations

    The following three examples describe SDK setup for possibilities for different OpenCL™ target devices. More detail is shown for the components at each layer. Note: FPGA devices are not mentioned here. For FPGA developer resources and guidance, see the fpgasoftware.intel.com portal.

    CPU

    The first example shows CPU targeting. This system has the CPU targeted OpenCL™ runtime suitable for application deployment. Note: this scenario applies similarly to both supported Windows* OS and supported Linux* OS:

    Intel® SDK for OpenCL™ Applications 2017 CPU targeting

    The user application can select the OpenCL™ CPU platform provided by the Intel® CPU OpenCL™ Runtime 16.1.2 (Standalone, deployment suitable). For more information about the Intel® CPU OpenCL™ Runtime 16.1.2 Standalone please see the Intel® article for OpenCL™ deployments.

     


    Graphics / Windows* OS

    This second example shows the Intel® SDK for OpenCL™ Applications 2017 targeting Intel® Graphics Technology with Windows* OS.

    Component boxes highlighted in:

    • Purple - apply for both supported Intel® CPU and supported Intel® Graphics Technology platforms.
    • Blue - apply for supported Intel® CPU platforms.
    • Red - apply for supported Intel® Graphics Technology platforms.

    Intel® SDK for OpenCL™ Applications 2017 Windows* OS Graphics targeting

    For programs on Windows* OS targeting Intel® Graphics Technology, the OpenCL™ program will select the platform afforded by the Intel® Graphics Compute Runtime for OpenCL™ Driver. This OpenCL™ implementation is distributed as part of the Intel® Graphics Technology driver package for Windows* OS. The Intel® graphics driver package for Windows* OS also contains the CPU Standalone distribution described in the first example. See more information on Intel® Graphics Technology deployment section at the deployment page.


    Graphics / Linux* OS

    The third example shows SDK development targeting Intel® Graphics Technology on Linux* OS:

    Intel® SDK for OpenCL™ Applications 2017 Linux* OS Graphics Targeting

    See more about obtaining the Intel® SRB5.0 Runtime for OpenCL™ applications on the legacy deployment page. Notice that to execute with the OpenCL™ platform provided by the SRB5.0 deployment, a patched kernel is expected.

    The Linux* OS article SDK getting started guide has some recommendations for configuring prerequisites for CentOS* and Ubuntu* OS development setup, including guidance for creation of the patched kernel for SRB5.0. The base kernels supported for SRB5.0 were 4.4 and 4.7, geared toward Intel® Media Server Studio 2017 R3 and OpenCL™ enablement respectively. Continue to the 2017 version SDK for Linux* OS getting started guide to setup development for targeting systems using the SRB5.0 runtime.


    3. Misc and Next Steps

    The Intel® Graphics Compute Runtime for OpenCL™ Driver, known as “NEO”, is an opensource, actively maintained OpenCL™ implementation. It was introduced for Intel® Graphics Technology GEN8 microarchitecture Broadwell processors as well as GEN9 platforms and later. The upcoming Intel® SDK for OpenCL™ Applications 2019 is intended to support development with the NEO implementation and move away from the SRB5.0 implementation. For more on NEO, view the Intel® deployment page for OpenCL™ runtimes and the NEO github portal.

    The Intel® SDK for OpenCL™ Applications 2019 will be offered as a subcomponent for Intel® System Studio 2019. The Beta program for Intel® System Studio 2019 ends September 17, 2018 and beta licenses expire on October 23, 2018.

    For more tools capable of heterogeneous analysis and profiling assistance consider Intel® VTune™ Amplifier XE, as found:

    • as a standalone tool
    • within Intel® Parallel Studio XE
    • within Intel® System Studio XE.

    ioc64 is a command line utility to build OpenCL™ kernels offline as opposed to at runtime. Ioc64 supports various iterations of SPIR (Standard Portable Intermediate Representation) targeting. ioc64 serves as a pass through to the OpenCL™ implementations available on the system.

    For an authoritive reference of Intel® Processor SKU’s featuring Intel® Graphics Technology, please see the ark database.

    For more complete information about compiler optimizations, see our Optimization Notice.

    14 comments

    Top
    peter b.'s picture

    I have followed the steps and not installed :(

    step 2) just install prerequisites - how to install driver itself? Since I am still have

    "ioc64: command not found"

    and where can I find "CodeBuilder*.jar" since I want to do an integration with Eclipse.

    Thanks. 

     

    gagliano, luca's picture

    Hi I cannot manage to perform step 1 of the installation process, I get the error:

     

    ERROR: failed to run apt-get update
    Problem (or disk space)?
                    sudo -E ./install_OCL_driver.sh
    2. Verify that you have enough disk space, and run the script again.

     

    But I checked space available, and it is more than enough.

    Any clue?

    gagliano, luca's picture

    Hi, Trying to install opencl according to the instruction provided. In step 1 when I run the script I have the error below, however I checked the space available and it is more than enough. Any suggestions?

    ERROR: failed to run apt-get update
    Problem (or disk space)?
                    sudo -E ./install_OCL_driver.sh
    2. Verify that you have enough disk space, and run the script again.
    
    Hal G. (Intel)'s picture

    Questions regarding  Intel® SDK for OpenCL™ Applications should be posted to the forums here: https://software.intel.com/en-us/forums/opencl

    Questions posted to Articles may or may not be responded to.

    Regards, Hal

    Intel(R) Developer Zone Support

    https://software.intel.com
    *Other names and brands may be claimed as the property of others.

    Questions regarding Intel® Visual Fortran Compiler for Windows* should be posted to the forums here: https://software.intel.com/en-us/forums/intel-visual-fortran-compiler-for-windows

     

    Questions posted to Articles may or may not be responded to.

     

    Regards, Hal

    Intel(R) Developer Zone Support

    https://software.intel.com
    *Other names and brands may be claimed as the property of others.

    sanivarapu, aditya's picture

    I followed steps 1 and 2  and now tried the below command.

    ioc64 -input=simpleAdd.cl -asm

    but I got

    ioc64: command not found

    how to install ioc64?

    melnikov, andrey's picture

    How do you do!

    I have successfully completed all the steps listed above. When running neon.3 eclipse I have got the following message:

    "Cannot get platform list:

    Could not load required libraries; please make sure to set the correct path under the Code Builder for OpenCL preference page."

    python sys_analyzer output:

    "

    --------------------------
    Hardware readiness checks:
    --------------------------
     [ OK ] Processor name: Intel(R) Core(TM) i3-4010U CPU @ 1.70GHz
    --------------------------
    OS readiness checks:
    --------------------------
     [ OK ] GPU visible to OS
    --------------------------
    Media Server Studio Install:
    --------------------------
     [ OK ] user in video group
     [ ERROR ] libva.so.1 not found.  Check LD_LIBRARY_PATH contains '/usr/lib64;/usr/local/lib'
     [ ERROR ] libva not loading Intel iHD
     [ ERROR ] vainfo not reporting codec entry points
     [ ERROR ] no libdrm include files. Are Intel components installed?
    --------------------------
    Component Smoke Tests:
    --------------------------
     [ ERROR ] no Media SDK include files.  Are Intel components installed?
     [ OK ] OpenCL check:platform:Intel(R) OpenCL GPU OK CPU OK
    platform:Experimental OpenCL 2.1 CPU Only Platform GPU OK CPU OK

    "

    from the command line if you type:

    echo $LD_LIBRARY_PATH

    then the output is:
    /etc/alternatives/opencl-intel-tools/lib64;/etc/alternatives/opencl-intel-tools/bin;/usr/lib64;/usr/local/lib

     

     

    What is wrong?

    Can you help, please?

    Thank you.

    Andrey M.

    li, dandan's picture

    I'm trying to run this on Debian Testing but when running "./install.sh install" I get this error:

     

    Intel Graphics Driver Installer for OpenCL on CentOS

    Running on Generic distribution

    The installer will download (unless they already exist):
    * OpenCL user-mode driver (87MiB)  
    * Linux 4.7 kernel (66MiB)  

    Setup requires ~10GiB disk space, and takes ~1h on a 4-cores machine.
    (~8.9GiB for building the Linux kernel, ~1GiB for other files)

    Do you want to continue? [y/n] y
    Found existing workspace at /root/intel-opencl...
    ~/intel-opencl /home/dandan
    Installing user mode driver...
    Downloading user mode driver...
    SRB5.0_linux64.zip already exists, skipping download...
    unzip -o SRB5.0_linux64.zip
    Archive:  SRB5.0_linux64.zip
     inflating: intel-opencl-cpu-r5.0-63503.x86_64.rpm   
     inflating: intel-opencl-cpu-r5.0-63503.x86_64.tar.xz   
     inflating: intel-opencl-cpu-r5.0-63503.x86_64.tar.xz.sig   
     inflating: intel-opencl-devel-r5.0-63503.x86_64.rpm   
     inflating: intel-opencl-devel-r5.0-63503.x86_64.tar.xz   
     inflating: intel-opencl-devel-r5.0-63503.x86_64.tar.xz.sig   
     inflating: intel-opencl-r5.0-63503.x86_64.rpm   
     inflating: intel-opencl-r5.0-63503.x86_64.tar.xz   
     inflating: intel-opencl-r5.0-63503.x86_64.tar.xz.sig   
     inflating: vpg_ocl_linux_rpmdeb.public   
    Looking for previously installed user-mode driver...
    rm -rf /etc/ld.so.conf.d/libintelopencl.conf
    rm -rf /etc/OpenCL/vendors/intel.icd
    rm -rf /etc/profile.d/libintelopencl.sh
    rm -rf /opt/intel/opencl
    tar -C intel-opencl -Jxf intel-opencl-cpu-r5.0-63503.x86_64.tar.xz
    tar -C intel-opencl -Jxf intel-opencl-devel-r5.0-63503.x86_64.tar.xz
    tar -C intel-opencl -Jxf intel-opencl-r5.0-63503.x86_64.tar.xz
    cp -R intel-opencl/* /
    ldconfig
    Downloading Linux kernel 4.7...
    linux-4.7.tar.xz already exists, skipping download...
    Installing Linux kernel 4.7...
    linux-4.7 kernel directory exists, skipping extract...
    ~/intel-opencl/linux-4.7 ~/intel-opencl /home/dandan
    patch -p1 < /opt/intel/opencl/kernel-4.7.patch
    can't find file to patch at input line 19
    Perhaps you used the wrong -p or --strip option?
    The text leading up to this was:
    --------------------------
    |From 18c0bd9224ea2764698bc42ceba47f1be4ed7967 Mon Sep 17 00:00:00 2001
    |From: =?UTF-8?q?Micha=C5=82=20Winiarski?= <michal.winiarski@intel.com>
    |Date: Wed, 21 Oct 2015 13:11:24 +0200
    |Subject: [PATCH 01/17] drm/i915: Add L3_LRA_1 Register to cmdparser whitelist
    |MIME-Version: 1.0
    |Content-Type: text/plain; charset=UTF-8
    |Content-Transfer-Encoding: 8bit
    |
    |Change-Id: I4fba318061b175d481ea2f2f02593d70930daf23
    |Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
    |---
    | drivers/gpu/drm/i915/i915_cmd_parser.c |    1 +
    | 1 files changed, 1 insertions(+), 0 deletions(-)
    |
    |diff --git a/drivers/gpu/drm/i915/i915_cmd_parser.c b/drivers/gpu/drm/i915/i915_cmd_parser.c
    |index a337f33..85f0f2f 100644
    |--- a/drivers/gpu/drm/i915/i915_cmd_parser.c
    |+++ b/drivers/gpu/drm/i915/i915_cmd_parser.c
    --------------------------
    File to patch:

     

    What do I do with it (what do I enter at "File to patch")?

     

    Thanks!

    sober, paul's picture

    make sure you add your user to video group by:

    sudo usermod -a -G video $LOGNAME

    siromoni, sandipan's picture

     

    in this  article there is 3 part  1) Install the driver 2) install SDK 3) set up Eclipse 

    so 1st part I have finished succsssfully , but for 2nd part .i.e. installing SDK i m facing issue 

    while installing intel opencl SDK on my system i.e.  while running the script  ./install_GUI.sh   I am getting GPU not supported error

      I have intel i5-3210M processor  and graphics is intel  HD4000 , I am installing all these on centOs core 7.2 

     

    can anyone help me on this issue 

    Pages

    Add a Comment

    Have a technical question? Visit our forums. Have site or software product issues? Contact support.