Releases: uxlfoundation/oneAPI-spec
oneAPI-v1.3-rev-1
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
- See 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
oneVPL-v2.9
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
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.
- oneDNN Graph extension: a graph extension is added to allow seamless fusion of operations, and more flexibility for
-
Level Zero
-
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.
- Encode statistics API: A new API is introduced to provide access to encoder statistics at frame, tile,
-
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
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
cleanup for 1.2 provisional rev 1 (#436)
oneVPL v2.7.1
Bug Fixes:
- changed use of word "interface" in header to avoid conflict with MSVC reserved words.
oneVPL v2.7.0
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 Spec v2.6
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
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
- Update log1p.rst by @kurylo in #321
- [oneTBB] Changing description for containers deduction guides by @kboyarinov in #355
- [oneTBB] Rework the parallel_for_each algorithm requirements by @ivankochin in #348
- [oneTBB] fixed wording for ordered set/multiset description by @anton-potapov in #366
- [oneTBB] Fix link ParallelReduceReduction requirement by @anton-potapov in #347
- [oneTBB] Add adaptive mutexes by @pavelkumbrasev in #354
- [oneTBB] Add task_scheduler_handle by @alexey-katranov in #358
- [oneTBB] Fix flow graph inaccuracies by @Iliamish in #367
- [oneTBB] Fix flow graph copyright year by @Iliamish in #369
- [oneTBB] collaborative_call_once algorithm by @isaevil in #362
- [oneTBB] Fix namespaces and headers by @alexandraepan in #353
- [oneTBB] task_group/task_arena extensions by @anton-potapov in #368
- [oneTBB] - fix license date by @anton-potapov in #370
- [oneTBB] - fix task_group_context argument description by @anton-potapov in #371
- [oneTBB] Heterogeneous overloads for concurrent_hash_map by @kboyarinov in #356
- [oneTBB] Function object iso cpp requirements by @anton-potapov in #372
- Update overview.inc.rst further incorporation of oneART into the description by @dmnemshi in #376
- Update overview.inc.rst incorporating oneART into the description by @dmnemshi in #375
- Update index.rst adding oneART to precede Advanced Ray Tracing by @dmnemshi in #374
- Update conf.py replacing Advanced Ray Tracing with oneART by @dmnemshi in #373
- make release doc point to github by @rscohn2 in #377
- [oneTBB] Fix code example in collaborative_call_once by @isaevil in #378
- oneMKL: replace unsupported sycl::vector_class with std:vector in USM API by @mkrainiuk in #381
- [oneTBB] Pass range to the parallel_sort algorithm by forwarding reference by @ivankochin in #380
- [oneMKL][spblas] updated sparse::gemm routines spec, which adds supporting matrix storage layout by @baeseung-intel in #363
- oneART component updates by @dmnemshi in #385
- Update DPC++ specification for 1.1 release by @mkinsner in #384
- spelling fixes by @rscohn2 in #386
- [oneMKL] Add BLAS APIs by @aaronjohnson in #383
- update for latest releases by @rscohn2 in #387
- freeze versions to avoid build error by @rscohn2 in #388
New Contributors
- @kboyarinov made their first contribution in #355
- @anton-potapov made their first contribution in #366
- @pavelkumbrasev made their first contribution in #354
- @isaevil made their first contribution in #362
- @alexandraepan made their first contribution in #353
- @baeseung-intel made their first contribution in #363
- @aaronjohnson made their first contribution in #383
Full Changelog: oneVPL-v.2.5...oneapi-v1.1-rev-1