Skip to content

Commit

Permalink
update build documentation
Browse files Browse the repository at this point in the history
- add information about libdrm and libva compilation
  libva is needed to support cl_intel_va_api_media_sharing extension
  libdrm is needed to compile libva
- add information about building on Centos 7

Change-Id: I56df50c7d312b4e5be0f85576300a5d1ba311e80
  • Loading branch information
JacekDanecki authored and Compute-Runtime-Automation committed Apr 27, 2018
1 parent c2455b4 commit aee6d10
Show file tree
Hide file tree
Showing 4 changed files with 158 additions and 19 deletions.
31 changes: 19 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,23 +13,28 @@ motivation and intentions wrt OpenCL support in the open source.

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
You may obtain a copy of the License at: https://opensource.org/licenses/MIT

## Dependencies

GmmLib - https://github.com/intel/gmmlib
Intel Graphics Compiler - https://github.com/intel/intel-graphics-compiler
Google Test v1.7.0 - https://github.com/google/googletest
Google Mock v1.7.0 - https://github.com/google/googlemock
Khronos OpenCL Headers - https://github.com/KhronosGroup/OpenCL-Headers
* GmmLib - https://github.com/intel/gmmlib
* Intel Graphics Compiler - https://github.com/intel/intel-graphics-compiler
* Google Test v1.7.0 - https://github.com/google/googletest
* Google Mock v1.7.0 - https://github.com/google/googlemock
* Khronos OpenCL Headers - https://github.com/KhronosGroup/OpenCL-Headers

## Optional dependencies

Below packages are needed to enable [cl_intel_va_api_media_sharing](https://www.khronos.org/registry/OpenCL/extensions/intel/cl_intel_va_api_media_sharing.txt) extension

* libdrm - https://anongit.freedesktop.org/git/mesa/drm.git
* libva - https://github.com/intel/libva.git

## 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 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

## Linking applications

Expand All @@ -46,7 +51,9 @@ Create a pull request on github.com with your patch. Make sure your change is cl
A maintainer will contact you if there are questions or concerns.

## See also
* Building and installation: [BUILD.md](https://github.com/intel/compute-runtime/blob/master/documentation/BUILD.md)
* Building and installation:
* [Ubuntu 16.04](https://github.com/intel/compute-runtime/blob/master/documentation/BUILD_Ubuntu.md)
* [Centos 7](https://github.com/intel/compute-runtime/blob/master/documentation/BUILD_Centos.md)
* Contribution guidelines: [CONTRIB.md](https://github.com/intel/compute-runtime/blob/master/documentation/CONTRIB.md)
* Known issues and limitations: [LIMITATIONS.md](https://github.com/intel/compute-runtime/blob/master/documentation/LIMITATIONS.md)
* Frequently asked questions: [FAQ.md](https://github.com/intel/compute-runtime/blob/master/documentation/FAQ.md)
Expand Down
80 changes: 80 additions & 0 deletions documentation/BUILD_Centos.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Intel(R) Graphics Compute Runtime for OpenCL(TM)

## Building

*Instructions assume clean Centos 7.4.1708 installation.**

1. Download & install required dependencies

Example:

```shell
sudo yum groups install "Development Tools"
sudo yum install centos-release-scl epel-release
sudo yum install devtoolset-4-gcc-c++ llvm-toolset-7-clang cmake3 ninja-build p7zip rpm-build dpkg xorg-x11-util-macros libpciaccess-devel which zlib-devel
sudo /usr/sbin/alternatives --install /usr/bin/cmake cmake /usr/bin/cmake3 50
```

2. Create workspace folder and download sources:
```
workspace
|- clang_source https://github.com/llvm-mirror/clang
|- common_clang https://github.com/intel/opencl-clang
|- llvm_patches https://github.com/intel/llvm-patches
|- llvm_source https://github.com/llvm-mirror/llvm
|- gmmlib https://github.com/intel/gmmlib
|- gmock https://github.com/google/googlemock
|- gtest https://github.com/google/googletest
|- igc https://github.com/intel/intel-graphics-compiler
|- khronos https://github.com/KhronosGroup/OpenCL-Headers
|- neo https://github.com/intel/compute-runtime
```

Example:

```shell
git clone -b release_40 https://github.com/llvm-mirror/clang clang_source
git clone https://github.com/intel/opencl-clang common_clang
git clone https://github.com/intel/llvm-patches llvm_patches
git clone -b release_40 https://github.com/llvm-mirror/llvm llvm_source
git clone https://github.com/intel/gmmlib gmmlib
git clone -b release-1.7.0 https://github.com/google/googlemock gmock
git clone -b release-1.7.0 https://github.com/google/googletest gtest
git clone https://github.com/intel/intel-graphics-compiler igc
git clone https://github.com/KhronosGroup/OpenCL-Headers khronos
git clone https://github.com/intel/compute-runtime neo
```

Note: Instructions for compiling *Intel Graphics Compiler* copied from https://github.com/intel/intel-graphics-compiler/blob/master/README.md

3. Create folder for build:

Example:

```shell
mkdir build
```

4. Enabling additional extension

* [cl_intel_va_api_media_sharing](https://github.com/intel/compute-runtime/blob/master/documentation/cl_intel_va_api_media_sharing.md)

5. Build complete driver:

```shell
cd build
scl enable devtoolset-4 llvm-toolset-7 "cmake -DBUILD_TYPE=Release -DCMAKE_BUILD_TYPE=Release ../neo"
scl enable devtoolset-4 llvm-toolset-7 "make -j `nproc` package"
```

## Installing

To install OpenCL driver please use rpm package generated during build

Example:

```shell
sudo rpm -i intel-opencl-1.0-0.x86_64-igdrcl.rpm
```

___(*) Other names and brands my be claimed as property of others.___
16 changes: 9 additions & 7 deletions documentation/BUILD.md → documentation/BUILD_Ubuntu.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@

## Building

*Instructions assume clean Ubuntu* 16.04.3 LTS installation.*
*Instructions assume clean Ubuntu 16.04.3 LTS installation.**

1. Download & install required dependencies

Example:

```shell
sudo apt-get install ccache flex bison clang-4.0 cmake g++ git patch zlib1g-dev
sudo apt-get install ccache flex bison clang-4.0 cmake g++ git patch zlib1g-dev autoconf xutils-dev libtool pkg-config libpciaccess-dev
```

See [LIMITATIONS.md](https://github.com/intel/compute-runtime/blob/master/documentation/LIMITATIONS.md) for other requirements and dependencies, when building and installing NEO.
Expand All @@ -26,7 +26,6 @@ See [LIMITATIONS.md](https://github.com/intel/compute-runtime/blob/master/docume
|- gtest https://github.com/google/googletest
|- igc https://github.com/intel/intel-graphics-compiler
|- khronos https://github.com/KhronosGroup/OpenCL-Headers
|- libdrm https://anongit.freedesktop.org/git/mesa/drm.git
|- neo https://github.com/intel/compute-runtime
```

Expand All @@ -42,7 +41,6 @@ git clone -b release-1.7.0 https://github.com/google/googlemock gmock
git clone -b release-1.7.0 https://github.com/google/googletest gtest
git clone https://github.com/intel/intel-graphics-compiler igc
git clone https://github.com/KhronosGroup/OpenCL-Headers khronos
git clone https://anongit.freedesktop.org/git/mesa/drm.git libdrm
git clone https://github.com/intel/compute-runtime neo
```

Expand All @@ -56,15 +54,19 @@ Example:
mkdir build
```

4. Build complete driver:
4. Enabling additional extension

* [cl_intel_va_api_media_sharing](https://github.com/intel/compute-runtime/blob/master/documentation/cl_intel_va_api_media_sharing.md)

5. Build complete driver:

```shell
cd build
cmake -DBUILD_TYPE=Release -DCMAKE_BUILD_TYPE=Release ../neo
make -j`nproc` package
```

## Install
## Installing

To install OpenCL driver please use deb package generated during build

Expand All @@ -74,4 +76,4 @@ Example:
sudo dpkg -i intel-opencl-1.0-0.x86_64-igdrcl.deb
```

___(*) Other names and brands my be claimed as property of others.___
___(*) Other names and brands my be claimed as property of others.___
50 changes: 50 additions & 0 deletions documentation/cl_intel_va_api_media_sharing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Intel(R) Graphics Compute Runtime for OpenCL(TM)

## Enabling [cl_intel_va_api_media_sharing](https://www.khronos.org/registry/OpenCL/extensions/intel/cl_intel_va_api_media_sharing.txt) extension

To enable cl_intel_va_api_media_sharing extension Neo needs to be compiled on system with libva 2.x installed.
Before compilation additional packages have to be installed.

1. Download sources:

* libdrm https://anongit.freedesktop.org/git/mesa/drm.git
* libva https://github.com/intel/libva.git

Example:

```shell
git clone https://anongit.freedesktop.org/git/mesa/drm.git libdrm
git clone https://github.com/intel/libva.git libva

2. Compile and install libdrm

Example:

```shell
cd libdrm
./autogen.sh
make -j `nproc`
sudo make install
```

3. Compile and install libva

Example:

```shell
cd libva
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
./autogen.sh
make -j `nproc`
sudo make install
```

4. During Neo compilation verify libva was discovered

```shell
-- Checking for module 'libva>=1.0.0'
-- Found libva, version 1.1.0
-- Looking for vaGetLibFunc in va
-- Looking for vaGetLibFunc in va - found
-- Using libva
```

0 comments on commit aee6d10

Please sign in to comment.