129 lines
5.6 KiB
Markdown
129 lines
5.6 KiB
Markdown
|
|
# 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 Q4'18) Ubuntu 18.04 LTS.
|
|
|
|
Note: Neo will not work correctly on legacy kernels with Intel patches (e.g. 4.7.0.intel.r4.0).
|
|
|
|
### 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.
|
|
|
|
Note: 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](https://github.com/intel/compute-runtime/blob/master/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](https://github.com/intel/compute-runtime/blob/master/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`.
|
|
```bash
|
|
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`:
|
|
1. add key `cl_cache_dir`
|
|
1. add string value named <path_to_app> to `cl_cache_dir` key
|
|
1. 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?
|
|
|
|
1. Not thread safe. (Workaround: Make sure your clBuildProgram calls are executed in thread safe fashion.)
|
|
1. Binary representation may not be compatible between various versions of NEO and IGC drivers. (Workaround: Manually empty *cl_cache* directory prior to update)
|
|
1. Cache is not automatically cleaned. (Workaround: Manually empty *cl_cache* directory)
|
|
1. Cache may exhaust disk space and cause further failures. (Workaround: Monitor and manually empty *cl_cache* directory)
|
|
1. Cache is not process safe.
|
|
|
|
## Who are we?
|
|
|
|
NEO OpenCL team is part of VTT (Visual Technologies Team).
|
|
Historically, our team was responsible for delivery of the closed source OpenCL driver for Windows, Linux, and Android.
|
|
|
|
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?
|
|
|
|
1. Go to: https://jobs.intel.com/ListJobs/All/Search/city/Gdansk/
|
|
1. Filter for OpenCL in the job title
|
|
1. Browse the descriptions looking for positions mentioning this GitHub repository |