Code Monkey home page Code Monkey logo

onevpl-intel-gpu's Introduction

Intel® oneVPL GPU Runtime

Intel® oneVPL GPU Runtime is a Runtime implementation of oneVPL API for Intel Gen GPUs. Runtime provides access to hardware-accelerated video decode, encode and filtering.

Supported video encoders: HEVC, AVC, MPEG-2, JPEG, VP9
Supported video decoders: HEVC, AVC, VP8, VP9, MPEG-2, VC1, JPEG, AV1
Supported video pre-processing filters: Color Conversion, Deinterlace, Denoise, Resize, Rotate, Composition

Implementation is written in C++ 14 with parts in C-for-Media (CM).

oneVPL GPU Runtime is a part of Intel software stack for graphics:

  • Linux Graphics Drivers - General Purpose GPU Drivers for Linux Operating Systems
    • Visit documentation for instructions on installing, deploying, and updating Intel software to enable general purpose GPU (GPGPU) capabilities for Linux-based operating system distributions.

oneVPL Library and oneVPL GPU Runtime are successors for Intel Media SDK.

How to use

This runtime implementation is not self-sufficient. Application should use one of the available frontend dispatcher libraries:

We strongly recommend to use oneVPL as a dispatcher frontend (libvpl.so.2). Media SDK dispatcher (libmfx.so.1) can be used as well, but you will get capabilities limited by those which are exposed via Media SDK API and which are actually implemented by oneVPL Runtime. Basically, compatibility with Media SDK is provided to support Media SDK based applications which did not yet migrate to oneVPL on a new HW platforms.

oneVPL Gen Runtime implementation supports the following hardware platforms:

GPU Supported
TGL (Tiger Lake)
DG1 (Xe MAX)
RKL (Rocket Lake)
ADL-S (Alder Lake S)
ADL-P (Alder Lake P)

Dependencies

oneVPL GPU Runtime depends on LibVA. This version of oneVPL GPU Runtime is compatible with the open source Intel Media Driver for VAAPI. Dispatcher and Samples code hosted in oneVPL repository.

Table of contents

License

oneVPL GPU Runtime is licensed under MIT license. See LICENSE for details.

How to contribute

See CONTRIBUTING for details. Thank you!

System requirements

Operating System:

  • Linux x86-64 fully supported
  • Linux x86 only build

Software:

Hardware: Intel platforms supported by the Intel Media Driver for VAAPI starting with Tiger Lake.

How to build

Build steps

Get sources with the following Git* command (pay attention that to get full oneVPL GPU Runtime sources bundle it is required to have Git* with LFS support):

git clone https://github.com/oneapi-src/oneVPL-intel-gpu onevpl-gpu
cd onevpl-gpu

To configure and build oneVPL GPU Runtime install cmake version 3.14 or later and run the following commands:

mkdir build && cd build
cmake ..
make
make install

oneVPL GPU Runtime depends on a number of packages which are identified and checked for the proper version during configuration stage. Please, make sure to install these packages to satisfy oneVPL GPU Runtime requirements. After successful configuration 'make' will build oneVPL GPU Runtime binaries and samples. The following cmake configuration options can be used to customize the build:

Option Values Description
ENABLE_ITT ON|OFF Enable ITT (VTune) instrumentation support (default: OFF)
ENABLE_TEXTLOG ON|OFF Enable textlog trace support (default: OFF)
ENABLE_STAT ON|OFF Enable stat trace support (default: OFF)
BUILD_ALL ON|OFF Build all the BUILD_* targets below (default: OFF)
BUILD_RUNTIME ON|OFF Build oneVPL runtime (default: ON)
BUILD_TESTS ON|OFF Build unit tests (default: OFF)
USE_SYSTEM_GTEST ON|OFF Use system gtest version instead of bundled (default: OFF)
BUILD_TOOLS ON|OFF Build tools (default: OFF)
MFX_ENABLE_KERNELS ON|OFF Build oneVPL with media shaders support (default: ON)

The following cmake settings can be used to adjust search path locations for some components oneVPL GPU Runtime build may depend on:

Setting Values Description
CMAKE_ITT_HOME Valid system path Location of ITT installation, takes precendence over CMAKE_VTUNE_HOME (by default not defined)
CMAKE_VTUNE_HOME Valid system path Location of VTune installation (default: /opt/intel/vtune_amplifier)

Enabling Instrumentation and Tracing Technology (ITT)

To enable the Instrumentation and Tracing Technology (ITT) API you need to:

and configure oneVPL GPU Runtime with the -DENABLE_ITT=ON. In case of VTune it will be searched in the default location (/opt/intel/vtune_amplifier). You can adjust ITT search path with either CMAKE_ITT_HOME or CMAKE_VTUNE_HOME.

Once oneVPL GPU Runtime was built with ITT support, enable it in a runtime creating per-user configuration file ($HOME/.mfx_trace) or a system wide configuration file (/etc/mfx_trace) with the following content:

Output=0x10

Recommendations

  • In case of GCC compiler it is strongly recommended to use GCC version 6 or later since that's the first GCC version which has non-experimental support of C++14 being used in oneVPL GPU Runtime.

onevpl-intel-gpu's People

Contributors

gfxvplsdm avatar mgonchar avatar dvrogozh avatar dmitryermilov avatar aobolensk avatar ivan-losev avatar egorovdanil avatar lakulako avatar alexelizarov avatar intel-mediadev avatar eistarov avatar wangyan42164 avatar vshampor avatar dmitrybrazhkin avatar xhaihao avatar eshiryae avatar yskuridi avatar microyy avatar denwolf avatar spossos avatar wyc55069407 avatar ogolikov avatar fzhar avatar andreyor avatar semelianova avatar daleksan avatar romka0017 avatar alariono avatar pgribov avatar lwan108 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.