oneAPI Specification Releases
Contents
oneAPI Specification Releases#
This document lists releases of oneAPI specifications.
In addition to be published as part of the oneAPI spefication, some of the components publish specifications independent from the oneAPI specification. Typically, a oneAPI specification includes a snapshot of the latest approved release of the component. This page lists releases of the oneAPI specification and releases of component specifications. Releases of collections of oneAPI components (e.g. Intel oneAPI Basekit) identify the version of the oneAPI specification that it supports.
oneAPI Specification#
The latest approved specification is 1.2. The 1.3 specification is under development and is labeled provisional until it is approved. Releases are listed below. See GitHub for the latest build.
1.1#
Version |
Date |
View |
---|---|---|
2021-11-12 |
||
2021-7-19 |
||
2021-4-7 |
Release Notes#
1.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.
Level Zero
See 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.9.0. New features include:
Deprecated mfxExtCodingOption2::BitrateLimit.
Added note that applications must call MFXVideoENCODE_Query() to check for support of mfxExtChromaLocInfo and mfxExtHEVCRegion extension buffers.
Added AV1 HDR metadata description and further clarified mfxExtMasteringDisplayColourVolume and mfxExtContentLightLevelInfo.
Added deprecation messages to the functions MFXQueryAdapters, MFXQueryAdaptersDecode, and MFXQueryAdaptersNumber. Applications should use the process described in oneVPL Dispatcher to enumerate and select adapters.
Fixed multiple spelling errors.
Added extension buffer mfxExtSyncSubmission to return submission synchronization sync point.
Added extension buffer mfxExtVPPPercEncPrefilte to control perceptual encoding prefilter.
Deprecated mfxPlatform::CodeName and corresponding enum values.
Added mfxExtendedDeviceId::RevisionID and extDeviceUUID to be aligned across multiple domains including compute and specify device UUID accordingly.
Added extension buffer mfxExtTuneEncodeQuality and correspondent enumeration to specify encoding tuning option.
Updated description of MFXEnumImplementations to clarify that the input mfxImplCapsDeliveryFormat determines the type of structure returned.
Updated mfxvideo++.h to use MFXLoad API.
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.
1.2 provisional rev 1#
1.1 rev 1#
Changes since 1.0
Ray Tracing: Added
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.
oneTBB:
Introduces a way for collaborative one-time function processing (collaborative_call_once), mutex classes with adaptive waiting behavior (mutex, rw_mutex), the ability to wait for thread completion (task_scheduler_handle and the finalize function). Extended task_group and task_arena classes to support deferred task submission via the new task_handle class. Extended concurrent_hash_map with methods that support lookup for distinct key types.
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.
1.1 provisional rev 2#
oneVPL: Updated to 2.4.0
oneDAL: Updated some APIs
oneMKL: bug fixes
1.1 provisional rev 1#
Ray Tracing: added to oneAPI specification
VPL: Updated to 2.3.1
Level Zero: Updated to 1.1.2
oneDNN: Added graph API
1.0 rev 2#
Formatting fixes for PDF
1.0 rev 1#
Initial release
oneIPL#
Version |
Date |
View |
---|---|---|
2022-02-18 |
||
2021-10-8 |
Ray Tracing#
Version |
Date |
View |
---|---|---|
2021-2-18 |
Release Notes#
Ray Tracing v0.5#
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
oneDNN Graph#
Version |
Date |
View |
---|---|---|
2022-10-14 |
||
2021-04-01 |
||
2021-12-28 |
||
2021-11-8 |
||
2021-4-8 |
Release Notes#
oneDNN Graph v1.0-beta#
Introduced support for floating point math mode at graph construction phase.
Added finalize API to indicate that the user has finished adding operations into the graph and the graph is ready for partitioning.
Added operations AbsBackprop, Mish, MishBackprop, and LeakyReLU.
Removed operations HardTanh, Index, Pow, etc.
oneDNN Graph v1.0-alpha#
Introduced FP32 and BF16 training support on CPU
oneDNN Graph v0.9#
Introduced bf16 inference support.
Introduced multi-head attention (MHA) fusion supported by oneDNN Graph compiler with optimized code generation (experimental).
oneDNN Graph v0.8#
Introduces int8 inference support.
oneDNN Graph v0.5#
Provides more optimization and improves the programming experience. The main changes are as follows:
Support in-place optimization to reduce memory footprint and provide better data locality
Support using the partition vector directly for compilation and execution without maintaining a computation graph
Provide a special End op to express the multiple uses of a logical tensor, typically for indicating the output tensors of the graph
oneVPL#
Version |
Date |
View |
---|---|---|
2023-3-31 |
||
2022-11-1 |
||
2022-04-01 |
||
2022-3-10 |
||
2021-12-3 |
||
2021-8-30 |
||
2021-5-12 |
||
2021-4-8 |
Release Notes#
oneVPL v2.9.0#
Deprecated mfxExtCodingOption2::BitrateLimit.
Added note that applications must call MFXVideoENCODE_Query() to check for support of mfxExtChromaLocInfo and mfxExtHEVCRegion extension buffers.
Added AV1 HDR metadata description and further clarified mfxExtMasteringDisplayColourVolume and mfxExtContentLightLevelInfo.
Added deprecation messages to the functions MFXQueryAdapters, MFXQueryAdaptersDecode, and MFXQueryAdaptersNumber. Applications should use the process described in oneVPL Dispatcher to enumerate and select adapters.
Fixed multiple spelling errors.
Added extension buffer mfxExtSyncSubmission to return submission synchronization sync point.
Added extension buffer mfxExtVPPPercEncPrefilte to control perceptual encoding prefilter.
Deprecated mfxPlatform::CodeName and corresponding enum values.
Added mfxExtendedDeviceId::RevisionID and extDeviceUUID to be aligned across multiple domains including compute and specify device UUID accordingly.
Added extension buffer mfxExtTuneEncodeQuality and correspondent enumeration to specify encoding tuning option.
Updated description of MFXEnumImplementations to clarify that the input mfxImplCapsDeliveryFormat determines the type of structure returned.
Updated mfxvideo++.h to use MFXLoad API.
oneVPL v2.8.0#
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.
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 v2.6.0#
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 Intel Media Software Development Kit
Spelled out mfxVariant type usage for strings.
New product names for platforms:
Code name DG2,
Code name ATS-M.
oneVPL v2.5.0#
New in this release:
Added mfxMediaAdapterType to capability reporting.
Added surface pool interface.
Helper macro definition to simplify filter properties set up process for dispatcher.
Added mfxExtAV1BitstreamParam, mfxExtAV1ResolutionParam and mfxExtAV1TileParam for AV1e.
Added MFX_RESOURCE_VA_SURFACE_PTR and MFX_RESOURCE_VA_BUFFER_PTR enumerators.
Clarified HEVC Main 10 Still Picture Profile configuration.
External Buffer ID of mfxExtVideoSignalInfo and mfxExtMasteringDisplayColourVolume for video processing.
New MFX_WRN_ALLOC_TIMEOUT_EXPIRED return status. Indicates that all surfaces are currently in use and timeout set by mfxExtAllocationHints for allocation of new surfaces through functions GetSurfaceForXXX expired.
Introduced universal temporal layering structure.
Added MFX_RESOURCE_VA_SURFACE_PTR and MFX_RESOURCE_VA_BUFFER_PTR enumerators.
Introduced segmentation interface for AV1e, including ext-buffers and enums.
Introduced planar I422 and I210 FourCC codes.
Bug Fixes:
Dispatcher: Removed /etc/ld.so.cache from oneVPL search order.
mfxSurfaceArray: CDECL attribute added to the member-functions.
Deprecated:
mfxExtVPPDenoise extension buffer.
oneVPL v2.4.0#
Added ability to retrieve path to the shared library with the implementation.
Added 3DLUT (Three-Dimensional Look Up Table) filter in VPP.
Added mfxGUID structure to specify Globally Unique Identifiers (GUIDs).
Added QueryInterface function to mfxFrameSurfaceInterface.
Added AdaptiveRef and alias for ExtBrcAdaptiveLTR.
Added MFX_FOURCC_BGRP FourCC for Planar BGR format.
Environmental variables to control dispatcher’s logger.
oneVPL v2.3.1#
Encoding in Hyper mode.
New product names for platforms:
Code name Rocket Lake,
Code name Alder Lake S,
Code name Alder Lake P,
Code name Arctic Sound P.
mfx.h header file is added which includes all header files.
Added deprecation messages (deprecation macro) to the MFXInit and MFXInitEx functions definition.
Level Zero#
Version |
Date |
View |
---|---|---|
2023-5-19 |
||
2023-4-25 |
||
2023-3-31 |
||
2023-3-2 |
||
2023-2-28 |
||
2023-1-19 |
||
2023-1-11 |
||
2022-07-22 |
||
2022-05-05 |
||
2021-11-27 |
||
2021-05-11 |
||
2021-02-04 |
||
2020-10-02 |
||
2020-05-28 |
||
2020-03-04 |
Release Notes#
Level Zero v1.6.10#
Core
Clarify documentation on build logs lifetime
Set pNext pointer to NULL in programming guide
Sysman
Add support for machine independent calculation for metrics data
Update metrics timer resolution to cycle/sec
Tools
Fix html generation of metric export data example code
Fix base type for zet_metric_global_timestamps_resolution_exp_t
Infrastructure (Scripts)
Misc. formatting and infrastructure fixes
Level Zero v1.6.3#
Core
Import SECURITY.md
Sysman
Revert RAS Category and Fabric API changes, restoring backwards compatibility.
Infrastructure (Scripts)
Update copyright year for publication.
Level Zero v1.6.0#
Core Changes
Add zeMemPutIpcHandle and zeEventPoolPutIpcHandle
Add helper functions for IPC handle
Add zeDriverGetLastResultString
Add zeCommandListHostSynchronize
Module build option clarification
Introduce extension to query normalized kernel event timestamps
Clarify image buffers format/layout restrictions
Sysman
Extend the SYSMAN Frequency Domain list to include a MEDIA Domain
Infrastructure (Scripts)
Fixup extension references and substitutions
Fixup parser versions (add newer point releases to all_versions)
Level Zero v1.5.17#
Tool Changes
Add missing version to global metrics timestamps extension
Level Zero v1.5.16#
Core Changes
Clarify intended interpretation of 32-bit device id
Clarify that zeContextMakeMemoryResident is a cross-platform API
Clarify language for pString parameter of zeKernelGetSourceAttributes
Add an extension to get the kernel max group size properties
Fixup typo in PCI Properties extension example
Tool Changes
Add extension for global metrics timestamps
Sysman Changes
Explicitly state the timestamp unit for the memory bandwidth API
Update value of ZES_MAX_RAS_ERROR_CATEGORY_COUNT macro
Level Zero v1.5.8#
Infrastructure (Scripts)
Remove nullptr error code from params with mbz trait
Fix handling of mbz attributes
Fix ze_device_properties_t in samples
Level Zero v1.5.0#
Core Changes
Clarify that a context can also be used by sub-devices of devices
Add an extension for bfloat16 conversions
Relax restriction and allow ipc events with timestamps
Add an extension to return the device IP version
Move image view extension to standard
Fix off-by-one error for maximum memory allocation size
Add host support for IPC allocations
Add sub-allocations properties extensions
Clarify commands in an immediate command list may execute synchronously
Add additional default errors
Tool Changes
Add a deprecation message for ZET_ENABLE_API_TRACING_EXP
Sysman Changes
RAS Category and Fabric API
Remove out-of-date Sysman object hierarchy diagram
Mark zesPowerGetLimits and zesPowerSetLimits as deprecated
Separate APIs for initializing and enumerating sysman
Correct documentation for zesMemoryGetBandwidth
Level Zero v1.4.8#
Core Changes
Fix naming for some fabric extension function args.
Sysman Changes
Remove const for _zes_power_limit_ext_desc_t ouput params.
Modify zes_power_level_t desc entry.
Add missing structure type enums.
Level Zero v1.4#
Core Changes
Fabric Topology Discovery API extension added.
Add detail to allocation access capabilities
Add an extension to the Core API for obtaining memory BW
Add clarifications for printf
Add extension for querying device locally unique identifier
Fix reordering of stypes
Standardize use of desc in SetEccState
Level Zero v1.3#
Core Changes
Add EU count extension.
Add clarification that link log may contain unresolved symbols after dynamic linking.
Add documentation for dynamic linking.
Add extension for linkage inspection.
Add extension for obtaining PCI BDF address.
Clarify programming guide section on command queues & command lists.
Correct documentation regarding maxMemoryFillPatternSize.
Clarify that pNext should be nullptr as default.
Clarify that unsupported structure types in pNext are ignored.
Add extension for image copy to/from memory that permits pitch within the memory buffer.
Add support for sRGB.
Clarify that zeInit needs to be called after forking processes.
Clarify barrier execution semantics for zeCommandListAppendBarrier.
Add an extension for querying image allocation properties.
Add an experimental extension to supply compression hints.
Tools Changes
Add experimental extension for calculating multiple metrics.
Level Zero v1.2#
Core Changes
Added alloc flags for device and host initial placement.
Fix spec references.
Add clarification that SPIR-V import and export linkage types are used.
Add VPU to ze_device_type_t and ze_init_flags_t.
Add -ze-opt-level build option.
Add kernel scheduling hints experimental extension.
Add extended subgroups extension.
Add image view planar extension.
Add image view extension.
Add additional kernel preferred group size properties.
Add SPIR-V extension for linkonce-odr.
Add cache biasing flags for IPC handles.
Add documentation pages for extensions.
Add kernel scheduling hints for thread arbitration policy.
Add image memory properties experimental extension.
Add Event Query Timestamps experimental extension.
Fix compatibility issue device time resolution.
Add RGBP and BRGP image formats.
Sysman
New return codes for low power state.
Level Zero v1.1#
Core Changes
Add code example for interop sharing, importing Linux dma_buf as an external memory handle for device allocation.
Clarify zeInit behavior regarding multiple calls with different flags or environment variables.
Add experimental extension for global work offset property to be set on kernel.
Update timeResolution units to double in device properties.
Added zeDeviceGetGlobalTimestamps to return synchronized host and device global timestamps.
Clarification on non-standard extensions via zeDriverGetExtensionFunctionAddress.
Clarifications for execution behavior for submitting multiple command lists
Add zeContextCreateEx to support context visibility for one or more device objects.
Specify that kernel state is not stored in thread-local storage by implementation.
Add float atomics extension to support additional floating point atomics capabilities.
Add extension to relax allocation limits and allow for allocations > 4GB.
Sysman
Fix bug in fan spec. The fan configuration zes_fan_config_t should point to the table structure zes_fan_table_t instead of one temp/speed pair.
Tools
Add page fault debug event ZE_DEBUG_EVENT_TYPE_PAGE_FAULT.
Clarification for metric group properties.
Remove phWaitEvents parameters from zetCommandListAppendMetricQueryEnd.
Level Zero v1.0#
Core Changes
Update command queue group properties to indicate numQueues is number of physical engines.
Clarify ‘Get’ parameters such that the pCount description is more clear to what is return in array.
Clarify metrics flag in ze_command_queue_group_property_flags_t.
Fix API documentation to indicate that pIpcProperties argument is [in,out] for GetIpcProperties.
Add experimental extension “ze_experimental_module_program” to support compiling and linking multiple SPIR-V modules together.
Updates to Raytracing extension.
Clean up Introduction documentation to remove reference to CSA and update ABI compatibility.
Fix PG documentation error for -g build flag in Module Build Options section.
Clarify in PG the default signal / wait event behavior.
Add cooperative kernel launch code snippet in PG.
Clarify that app must ensure the location in the pool is not being used by another event in zeEventCreate.
Sysman
Update PG to describe that both min and max temperatures across sensors will be included in temp components.
Clarify fan configuration comment to indicate that fan temp/speeds are passed back as table.
Fixed comment showing how to calculate %allocated and %free memory in memory state structure.
Clean up ambiguous comments in the function and structures for scheduler and memory components.
Tools
Fix wrong type in pseudo-code for API Tracing documentation.
Level Zero v0.95#
Updates from implementation team.
Level Zero v0.91#
Initial release