Intel® Graphics Compute Runtime for oneAPI Level Zero and OpenCL™ Driver
Go to file
kamdiedrich e072275ae6 Reorganization directory structure [3/n]
Change-Id: If3dfa3f6007f8810a6a1ae1a4f0c7da38544648d
2020-02-23 23:48:28 +01:00
documentation Expand coding guidelines 2020-02-20 18:17:56 +01:00
manifests Reorganization directory structure [3/n] 2020-02-23 23:48:28 +01:00
offline_compiler Reorganization directory structure [3/n] 2020-02-23 23:48:28 +01:00
opencl Reorganization directory structure [3/n] 2020-02-23 23:48:28 +01:00
scripts ci: remove Neo builds with clang 4 and 5 2020-02-20 14:59:21 +01:00
shared/source Reorganization directory structure [3/n] 2020-02-23 23:48:28 +01:00
third_party Add new IOCTL call to disable persistence on given context 2019-12-23 16:18:58 +01:00
.clang-format Clang-format: update include order policy 2020-02-23 22:24:46 +01:00
.clang-tidy Move files from common to core 2020-02-21 11:27:28 +01:00
.ctags Initial commit 2017-12-21 00:45:38 +01:00
.gitattributes Initial commit 2017-12-21 00:45:38 +01:00
.gitignore Initial commit 2017-12-21 00:45:38 +01:00
.gitreview Add .gitreview file. 2019-10-16 16:27:47 +02:00
.travis.yml ci: remove Neo builds with clang 4 and 5 2020-02-20 14:59:21 +01:00
CMakeLists.txt Reorganization directory structure [3/n] 2020-02-23 23:48:28 +01:00
Jenkinsfile Prefer CPU transfer for Local Memory 32 bit applications. 2020-02-21 15:15:00 +01:00
LICENSE added license file 2018-02-15 11:05:43 +01:00
README.md Enforce fp64 override key in linux release builds. 2020-02-19 16:07:13 +01:00
common_macros.cmake Add cmake macro to append sources from properties 2019-11-20 11:58:10 +01:00
config.h.in Update copyright headers 2018-09-20 18:02:35 +02:00
driver_version.h.in Update copyright headers 2018-09-20 18:02:35 +02:00
igc.opencl.h.in Update copyright headers 2018-09-20 18:02:35 +02:00
lib_names.h.in remove unused entries from lib_names.h 2018-10-16 16:12:15 +02:00
os_release_info.cmake cpack: add distro code name do DEB packages name 2019-06-17 15:21:48 +02:00
package.cmake Rename cmake variables 2020-01-15 08:46:10 +01:00
package_config.cmake Link igdgmm in link time 2020-01-14 13:01:34 +01:00
platforms.cmake Simplify getAllSupportedTargetPlatforms function 2020-02-11 19:50:50 +01:00
shippable.yml ci: don't build unit tests on Shippable 2020-02-18 09:24:58 +01:00
ubsan.supp Rename offline compiler: cloc -> ocloc 2018-11-21 13:31:47 +01:00
version.cmake CMake: rename IGDRCL_SOURCE_DIR to NEO_SOURCE_DIR 2019-10-14 12:18:50 +02:00

README.md

Intel(R) Graphics Compute Runtime for OpenCL(TM)

Introduction

The Intel(R) Graphics Compute Runtime for OpenCL(TM) is an open source project to converge Intel's development efforts on OpenCL(TM) compute stacks supporting the GEN graphics hardware architecture.

Please refer to http://01.org/compute-runtime for additional details regarding Intel's motivation and intentions wrt OpenCL support in the open source.

License

The Intel(R) Graphics Compute Runtime for OpenCL(TM) is distributed under the MIT License.

You may obtain a copy of the License at: https://opensource.org/licenses/MIT

Installation Options

To allow Neo accessing GPU device make sure user has permissions to files in /dev/dri directory. In first step /dev/dri/renderD* files are opened, if it fails, /dev/dri/card* files are used.

Under Ubuntu* or Centos* user must be in video group. In Fedora* all users by default have access to /dev/dri/renderD* files, but have to be in video group to access /dev/dri/card* files.

Via system package manager

NEO is available for installation on a variety of Linux distributions and can be installed via the distro's package manager.

For example on Ubuntu* 19.04, 19.10:

apt-get install intel-opencl-icd

Procedures for other distributions.

Manual download

.deb packages for Ubuntu are provided along with installation instructions and Release Notes on the release page

Dependencies

Optional dependencies

Below packages are needed to enable cl_intel_va_api_media_sharing extension

Supported Platforms

  • Intel Core Processors with Gen8 graphics devices (formerly Broadwell) - OpenCL 2.1
  • Intel Core Processors with Gen9 graphics devices (formerly Skylake, Kaby Lake, Coffee Lake) - OpenCL 2.1
  • Intel Atom Processors with Gen9 graphics devices (formerly Apollo Lake, Gemini Lake) - OpenCL 1.2
  • Intel Core Processors with Gen11 graphics devices (formerly Ice Lake) - OpenCL 2.1
  • Intel Core Processors with Gen12 graphics devices (formerly Tiger Lake) - OpenCL 2.1

Linking applications

When building applications, they should link with ICD loader library (ocl-icd). Directly linking to the runtime library (igdrcl) is not supported.

Tutorial applications

The Intel(R) GPU Compute Samples repository has sample source code to demonstrate features of Intel(R) Graphics Compute Runtime for OpenCL(TM) Driver.

Feature double-precision emulation (FP64)

By default NEO driver enables double precision operations only on platforms with supporting hardware. This is signified by exposing the "cl_khr_fp64" extension in the extension string. For other platforms, this support can be emulated by the compiler (IGC).

How do I enable emulation?

FP64 emulation can only be enabled on Linux. There are two settings that have to be set.

Runtime setting:

There are two ways you can enable this feature in NEO:

  • Set an environment variable OverrideDefaultFP64Settings to 1: OverrideDefaultFP64Settings=1

  • In igdrcl.config configuration file in the same directory as application binary (you may have to create this file) add a line as such: OverrideDefaultFP64Settings = 1

Compiler setting:

IGC reads flags only from environment, so set IGC_EnableDPEmulation to 1 as such: IGC_EnableDPEmulation=1

After both settings have been set you can run the application normally.

Known issues and limitations

Intel does not claim full specification conformance when using emulated mode. We reserve the right to not fix issues that appear only in emulation mode. Performance degradation is to be expected and has not been measured by Intel.

How to provide feedback

By default, please submit an issue using native github.com interface: https://github.com/intel/compute-runtime/issues.

How to contribute

Create a pull request on github.com with your patch. Make sure your change is cleanly building and passing ULTs. A maintainer will contact you if there are questions or concerns. See contribution guidelines for more details.

See also

(*) Other names and brands may be claimed as property of others.