OneAPI Spec Versions Save

oneAPI Specification source files

oneAPI-v1.3-rev-1

6 months ago

Changes since 1.2

oneDPL

  • Specified how random number generators and distributions support sycl::vec
  • Incremental improvements and fixes

oneCCL

  • For oneCCL, we added new APIs for point to point send/recv operations.

Level Zero

oneTBB

  • Allowed using pointers to class functions and members in place of function objects
  • Incremental improvements and fixes, including fixes in the oneTBB named requirements

oneMKL

  • Introduced RNG Device API
  • Added complex version of BLAS SYR/SYR2/SYMV
  • Added optional index_base parameter for BLAS IAMAX/IAMIN
  • Allow either values or pointers for scalar parameters to BLAS functions with USM interfaces
  • Added DFT move/copy constructor/assignment to descriptor class
  • Added forward/backward strides to DFT API
  • Added SYCL queue to Sparse BLAS matrix handle initialization API
  • Added NNZ argument to Sparse BLAS set_csr_data API
  • Fixed bugs

oneAPI-v1.3-provisional-rev-1

8 months ago

oneVPL-v2.9

1 year ago

New in this release:

  • Deprecated :cpp:member:mfxExtCodingOption2::BitrateLimit.
  • Added note that applications must call MFXVideoENCODE_Query() to check for support of :cpp:struct:mfxExtChromaLocInfo and :cpp:struct:mfxExtHEVCRegion extension buffers.
  • Added AV1 HDR metadata description and further clarified :cpp:struct:mfxExtMasteringDisplayColourVolume and :cpp:struct:mfxExtContentLightLevelInfo.
  • Added deprecation messages to the functions :cpp:func:MFXQueryAdapters, :cpp:func:MFXQueryAdaptersDecode, and :cpp:func:MFXQueryAdaptersNumber. Applications should use the process described in :ref:oneVPL Dispatcher <onevpl-dispatcher> to enumerate and select adapters.
  • Fixed multiple spelling errors.
  • Added extension buffer :cpp:struct:mfxExtSyncSubmission to return submission synchronization sync point.
  • Added extension buffer :cpp:struct:mfxExtVPPPercEncPrefilter to control perceptual encoding prefilter.
  • Deprecated mfxPlatform::CodeName and corresponding enum values.
  • Added :cpp:member:mfxExtendedDeviceId::RevisionID and :cpp:struct:extDeviceUUID to be aligned across multiple domains including compute and specify device UUID accordingly.
  • Added extension buffer :cpp:struct:mfxExtTuneEncodeQuality and correspondent enumeration to specify encoding tuning option.
  • Updated description of :cpp:func:MFXEnumImplementations to clarify that the input :cpp:type:mfxImplCapsDeliveryFormat determines the type of structure returned.
  • Updated mfxvideo++.h to use MFXLoad API.

oneAPI-v1.2-rev-1

1 year ago

Changes since 1.1

  • SYCL

    The following extensions were added:

    • sycl_ext_oneapi_assert - Support for device-side assert.
    • sycl_ext_oneapi_default_context - Adds the concept of a platform default context.
    • sycl_ext_oneapi_discard_queue_events - Adds a queue property that can optimize queues in some circumstances.
    • sycl_ext_oneapi_srgb - Exposes sRGB support for images.
    • sycl_ext_oneapi_usm_device_read_only - Adds a property for USM allocations.
  • oneDPL

    The following updates were added in oneDPL specification for version 1.2:

    • The content was reorganized.
    • API for random number generation was added.
    • Incremental improvements and bug fixes.
  • oneDNN

    This is a new major release of oneDNN spec, which breaks compatibility with previously published versions.

    • oneDNN Graph extension: a graph extension is added to allow seamless fusion of operations, and more flexibility for backend specific optimizations.
    • reworked quantization workflow: in order to support dynamic quantization efficiently and allow better reuse of primitive objects, quantization parameters are no longer passed at primitive creation, but at primitive execution. This also allows to pass quantization parameters from device memory, instead of passing them from host memory.
    • opaque memory descriptors, and removal of operation descriptors: this allows more flexibility for oneDNN implementation to add new memory layouts and primitive extensions without breaking compatibility.
    • Better support for type conversion fusion: all primitives now take separate descriptors for input and output, which allows to fuse type conversions to all primitives.
  • Level Zero

    See Level Zero Release Notes

  • oneTBB

    The following updates were added in oneTBB specification for version 1.2:

    • Support for core types and thread-per-core limit was added to task_arena constraints.
    • API of concurrent_queue and concurrent_bounded_queue was extended to better match C++ standard containers.
    • Incremental improvements and bug fixes.
  • oneVPL

    This release updates oneVPL specification to version 2.8.0. New features include:

    • Encode statistics API: A new API is introduced to provide access to encoder statistics at frame, tile, slice, or block levels.
    • Improved multi-adapter support: Extended device ID reporting is added to provide additional properties for device matching and identification outside of oneVPL.
    • Priority loading option for custom libraries: The environment variable ONEVPL_PRIORITY_PATH may be used to force loading of user-defined libraries with highest priority.
    • ONEVPL_EXPERIMENTAL macro for introduction of experimental API features: Applications may access experimental API features by defining ONEVPL_EXPERIMENTAL at build time.
    • Session initialization controls: New dispatcher configuration properties are introduced to set the number of threads, configure the device copy mode, or attach extension buffers during session initialization.
    • Camera Processing API: A new API is introduced for processing Camera RAW data.
    • Support for new video color formats: New color formats are added including 4:4:4 XYUV and 16-bit floating-point ABGR.
  • oneMKL

    The following updates were added in oneMKL specification for version 1.2:

    • Dense matrix copy and transpose routines were added in the BLAS-like extensions
    • half/bfloat16 precision support were added to several L1 BLAS routines
    • The supported precisions for BLAS gemm and gemm_batch were updated
    • Several routines in BLAS had const attributes properly assigned to arguments
    • Add a missing constraint on parameter "n" for LAPACK orgqr routines
    • Improve directories tree of VM, RNG, Stats domains of oneMKL. Fix minor issues in RNG
    • Other changes include minor clarifications and bug fixes.

oneVPL-v2.8

1 year ago

New in this release:

  • Introduced MFX_FOURCC_ABGR16F FourCC for 16-bit float point (per channel) 4:4:4 ABGR format.
  • Clarified the mfxExtMasteringDisplayColourVolume::DisplayPrimariesX, mfxExtMasteringDisplayColourVolume::DisplayPrimariesY for the video processing usage.
  • Added MFX_CONTENT_NOISY_VIDEO in ContentInfo definition.
  • Added Camera Processing API for Camera RAW data.
  • Introduced hint to disable external video frames caching for GPU copy.
  • Clarified usage of mfxExtMasteringDisplayColourVolume::InsertPayloadToggle and mfxExtContentLightLevelInfo::InsertPayloadToggle during decode operations.
  • Fixed multiple spelling errors.
  • Experimental API: introduced mfxExtMBQP::Pitch value for QP map defined in mfxExtMBQP.
  • Clarified when MFXEnumImplementations() may be called for implementation capabilities query.
  • Added table with filenames included in the dispatcher’s search process.

Bug Fixes:

  • Fixed Experimental API table to note that mfxExtRefListCtrl and MFX_EXTBUFF_UNIVERSAL_REFLIST_CTRL were moved to production in version 2.8.

oneAPI-v1.2-provisional-rev-1

1 year ago

oneVPL-v2.7.1

2 years ago

Bug Fixes:

  • changed use of word "interface" in header to avoid conflict with MSVC reserved words.

oneVPL-v2.7

2 years ago

New in this release:

  • mfxExtVppAuxData::RepeatedFrame flag has been un-deprecated.
  • Clarified GPUCopy control behavior.
  • Introduced MFX_FOURCC_XYUV FourCC for non-alpha packed 4:4:4 format.
  • Notice added to the mfxFrameSurfaceInterface::OnComplete to clarify when library can call this callback.
  • Annotated missed aliases mfxExtHEVCRefListCtrl, mfxExtHEVCRefLists, mfxExtHEVCTemporalLayers.
  • Refined description of mfxExtMasteringDisplayColourVolume and mfxExtContentLightLevelInfo for HDR SEI decoder usage.
  • Experimental API: introduced interface to get statistics after encode.
  • New dispatcher config properties:
    • Pass through extension buffer to mfxInitializationParam.
    • Select host or device responsible for the memory copy between host and device.

Bug Fixes:

  • Fixed misprint in mfxExtDeviceAffinityMask description.
  • MFXVideoENCODE_Query description fixed for query mode 1.

oneVPL-v.2.6

2 years ago

New in this release:

  • New development practice to treat some new API features as experimental was introduced. All new experimental API is wrapped with ONE_EXPERIMENTAL macro.

  • Experimental API: introduced MFX_HANDLE_PXP_CONTEXT to support protected content.

  • Experimental API: introduced CPUEncToolsProcessing hint to run adaptive encoding tools on CPU.

  • Experimental API: extended device ID reporting to cover multi-adapter cases.

  • Experimental API: introduced common alias for mfxExtAVCRefListCtrl

  • Experimental API: mfxExtDecodeErrorReport ErrorTypes enum extended with new JPEG/MJPEG decode error report.

  • Clarified LowPower flag meaning.

  • Described that mfxExtThreadsParam can be attached to mfxInitializationParam during session initialization.

  • Refined description of the MFXVideoDECODE_VPP_DecodeFrameAsync function.

  • New dispatcher's config filter property: MediaAdapterType.

  • Marked all deprecated fields as MFX_DEPRECATED.

  • Introduced priority loading option for custom libraries.

  • Clarified AV1 encoder behavior about writing of IVF headers.

  • Removed outdated note about loading priority of |msdk_full_name|. For loading details see :ref:onevpl_coexistense.

  • Spelled out mfxVariant type usage for strings.

  • New product names for platforms:

    • Code name DG2,
    • Code name ATS-M.

oneapi-v1.1-rev-1

2 years ago

Ray Tracing

Ray tracing capabilities have been added to the oneAPI specification providing software developers across the industry the ability to “write once” for high-fidelity ray-traced computations across multiple vendors’ systems and accelerators. Standardizing these interfaces provides well-designed, tried and true APIs and options for a broad set of compute and rendering infrastructure development.

The ray tracing functionality is subdivided into several domains within the oneAPI Specification:

  • Geometric ray tracing computations
  • Volumetric computation and rendering
  • Image denoising
  • Scalable rendering and visualization infrastructure

The set of Ray Tracing APIs include the following, which are in active use via the Intel® oneAPI Rendering Toolkit:

  • Embree
  • Open Volume Kernel Library
  • Open Image Denoise
  • OSPRay

oneMKL

Introduces additional batched APIs for dense linear algebra. Sparse matrix-dense matrix product has been extended to support both row and column major layout for the dense matrix. The input USM pointers in the vector math APIs are now const qualified. To align with changes in SYCL 2020, all oneMKL USM APIs were updated to take an (optional) std::vector of input events instead of sycl::vector_class. Other changes include minor clarifications and bug fixes.

DPC++

The new extensions listed as part of oneAPI 1.1 include simplified device selection through text-based filtering, a default context for each platform to simplify common coding patterns, interoperability with devices that use Level Zero as a backend, an easier to use kernel-scope local memory allocation mechanism, GPU-specific information queries, FPGA-specific performance tuning controls, and a sub-group mask feature.

DPC++ features that were incorporated into the SYCL 2020 spec were removed from this document.

oneVPL

New AV1 encode features. Enabled support for planar I422, I210, and BGR formats. Added surface pool interface for surface management.

Level Zero

Updates included significantly improved image processing functionality, better interoperability with other APIs and operating systems, new extensions for floating-point atomics and additional subgroup operations, and extensions to tune and optimize the way memory is allocated and kernels are scheduled on specific devices.

What's Changed

New Contributors

Full Changelog: https://github.com/oneapi-src/oneAPI-spec/compare/oneVPL-v.2.5...oneapi-v1.1-rev-1