5.8 KiB
Frequently asked questions
OS support
Which Linux versions does NEO support?
NEO should work on any modern Linux distribution (i.e. Ubuntu, Fedora, etc.) with default / stock configuration (no kernel patches), assuming the underlying kernel's drm subsystem is 4.7 or higher. Newer platforms will require a kernel version that provides support for that platform (e.g. Coffee Lake requires kernel 4.14 or higher).
Our default (most frequent) validation config is currently (as of Q1'18) Ubuntu 16.04.3 LTS.
What toolchain do you recommend for building NEO on CentOS?
We recommend the following packages:
- devtoolset-4-gcc-c++
- llvm-toolset-7-clang
Does NEO support Microsoft Windows?
Our closed-source driver for Windows is using the same codebase. At this time, we do not support compilation of the OpenCL stack for Windows. It is our long-term intention to offer that option.
Why is the feature set different in latest Windows driver vs. latest NEO on github?
Our Windows release process takes up to several weeks before drivers are available through intel.com and/or Windows update. Features available in github will be available on Windows later. This is applicable for most recent driver version (currently 15.65 as of Q1'18)
- older platforms (e.g. Broadwell) are considered to be in maintenance mode for Windows.
Does NEO support Android?
The code can be ported and cross-compiled for Android systems. It is our long-term intention to offer that option.
Platform support
Which Intel platforms are supported by the driver?
See README.md.
When will support for platform X be added?
We will start adding platform support after platform is disclosed by Intel. It is our intention to offer full support ahead of platform's market availability.
OpenCL version
Which version of OpenCL is supported?
See README.md.
Which platforms will receive OpenCL 2.2 support?
Any platforms supporting OpenCL 2.1 are eligible for move to OpenCL 2.2.
Feature: cl_cache
What is cl_cache?
This is a mechanism to cache binary representations of OpenCL kernels provided in text form by the application. By storing the binary representations, compiling is required only the first time, which improves performance.
How can cl_cache be enabled?
In the working directory, manually create cl_cache directory. The driver will use this directory to store the binary representations of the compiled kernels. Note: This will work on all supported OSes.
Configuring cl_cache location
Cached kernels can be stored in a different directory than the default one. This is useful when the application is installed into a directory for which the user doesn't have permissions.
Linux configuration
Set the environment variable named cl_cache_dir
to new location of cl_cache directory.
Example:
If the application's directory is /home/user/Document
, by default cl_cache will be stored in /home/user/Document/cl_cache
.
If the new path should be /home/user/Desktop/cl_cache_place
, set environment variable cl_cache_dir
to /home/user/Desktop/cl_cache_place
.
export cl_cache_dir=/home/user/Desktop/cl_cache_place
Subsequent application runs with passed source code and cl_cache_dir
environment variable set will reuse previously cached kernel binaries instead of compiling kernels from source.
Windows configuration
To set the new location of cl_cache directory - in the registry HKEY_LOCAL_MACHINE\SOFTWARE\Intel\IGFX\OCL
:
- add key
cl_cache_dir
- add string value named <path_to_app> to
cl_cache_dir
key - set data of added value to desired location of cl_cache
Example:
If application is located in C:\Program Files\application\app.exe
, by default cl_cache will be stored in C:\Program Files\application\cl_cache
.
If the new path should be C:\Users\USER\Documents\application\cl_cache
, to subkey HKEY_LOCAL_MACHINE\SOFTWARE\Intel\IGFX\OCL\cl_cache_dir
add string value named C:\Program Files\application\app.exe
with data C:\Users\USER\Documents\application\cl_cache
.
e.g.
string value : HKEY_LOCAL_MACHINE\SOFTWARE\Intel\IGFX\OCL\cl_cache_dir\C:\Program Files\application\app.exe
data : C:\Users\USER\Documents\application\cl_cache
Neo will look for string value (REG_SZ) C:\Program Files\application\app.exe
in key HKEY_LOCAL_MACHINE\SOFTWARE\Intel\IGFX\OCL\cl_cache_dir
. Data of this string value will be used as new cl_cache dump directory for this specific application.
What are the known limitations of cl_cache?
- Not thread safe. (Workaround: Make sure your clBuildProgram calls are executed in thread safe fashion.)
- Binary representation may not be compatible between various versions of NEO and IGC drivers. (Workaround: Manually empty cl_cache directory prior to update)
- Cache is not automatically cleaned. (Workaround: Manually empty cl_cache directory)
- Cache may exhaust disk space and cause further failures. (Workaround: Monitor and manually empty cl_cache directory)
- Cache is not process safe.
Who are we?
NEO OpenCL team is part of VPG (Visual and Parallel Computing group). Historically, our team was responsible for delivery of the closed source OpenCL driver for Windows, Linux, and Android.
With that in mind, we tend to compare NEO against previous closed source releases (i.e. SRB5).
Most of the developers are located in Poland (UTC+1 timezone).
I would like to join your team. How can I apply for a job?
- Go to: https://jobs.intel.com/ListJobs/All/Search/city/Gdansk/
- Filter for OpenCL in the job title
- Browse the descriptions looking for positions mentioning this GitHub repository