Versions#

If you are looking for the base oneAPI Specification go here: oneAPI Spec. oneAPI Level Zero is at this site. All other specs have been archived. For any questions, file an issue at level-zero-spec issues.

Level Zero#

Release Notes#

Level Zero v1.18.31#

  • New Features in v1.18

    • Promote the Power Saving Hint experimental extension to a standard extension

    • New Core APIs for handle introspection - zeKernelGetModuleHandle and zeModuleGetDeviceHandle

    • Add zeDeviceGetCompilerInfo generic compiler-info query

    • Add zeCommandListAppendSignalEventWithParameters and zeCommandListAppendWaitOnEventsWithParameters

    • Add ze_init_driver_app_version_ext for applications to declare their API version at zeInitDrivers

    • Add IPC Physical Memory Range extension

    • Add ze_device_npu_properties_ext_t extension for NPU device properties, including compiler capability fields

    • Add CommandQueue SetPriority optional extension

    • Add Sysman Device Health extension to get and set device health status

    • Add Sysman support for optional delayed device discovery

    • Add Sysman composite temperature sensor support

    • Add Sysman memory vendor ID query

    • Add additional device state flags to zes_device_state_ext_flags_t

  • Patches since v1.17.24 release

    • Extend return codes from zeGraphInstantiateExt and refine the Record and Replay Graph specification

    • Update Counter-Based Events IPC restrictions

    • Fix incorrect Counter-Based Event operation in documentation

    • Clarify cross-device aggregated events usage

    • Update zesPowerGetUsage usage details

    • Cleanup of metrics dma_buf export docs and sample

    • Fix unused reference link for zePhysicalMem

    • Spelling and grammar fixes

Level Zero v1.17.24#

  • New Features in v1.17

    • New class of APIs for introspection

      • zeCommandQueueGetFlags, zeCommandQueueGetMode, zeCommandQueueGetPriority

      • zeCommandListGetFlags, zeCommandListImmediateGetFlag, zeCommandListImmediateGetMode, zeCommandListImmediateGetMode

      • zeCommandListIsMutableExp

      • zeDeviceGetCounterBasedEventMaxValue query for maximum value for external memory counter based events

      • zeEventGetCounterBasedFlags introspection API

    • Add Record and Replay Graph extension to capture, instantiate, and replay command lists

      • zeGraphCreateExt, zeGraphInstantiateExt, zeGraphDumpContentsExt, zeGraphIsEmptyExt, zeGraphDestroyExt

      • zeCommandListBeginGraphCaptureExt, zeCommandListBeginCaptureIntoGraphExt, zeCommandListIsGraphCaptureEnabledExt, zeCommandListEndGraphCaptureExt, zeCommandListGetGraphExt, zeCommandListAppendGraphExt

      • zeGraphGetPrimaryCommandListExt, zeGraphSetDestructionCallbackExt, zeExecutableGraphGetSourceGraphExt, zeExecutableGraphDestroyExt

    • Add zeCommandListAppendHostFunction API for enqueuing host callbacks

    • Promote the Relaxed Allocation Limits experimental extension to a standard extension

    • Add Virtual Memory Read-Only Properties extension to query device read-only memory capability

    • Add Sysman extended Device State extension

    • Add Sysman OEM serial number extension structure

    • Synchronize Core and Sysman memory types

  • Deprecations:

    • Deprecate zeCommandListCreateCloneExp

    • Deprecate ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES version

  • Patches since v1.16.24 release

    • Clarify External Memory Mapping (sysmem) extension semantics

    • Clarify counter-based events device assignment

    • Update docs to show DDI Driver Handles are default as of 1.17

    • Update docs on IPC/P2P usage of reserved memory

    • Clarify loader dispatch given number of drivers and tools

    • Update specification for zeCommandListAppendMemoryFill

    • Add ‘or’ verbiage for MAPPED_TIMESTAMP to AppendQuery

    • Fix timestamp documentation in the spec

    • Clarify Context/Device usage for IPC objects

Level Zero v1.16.24#

  • New Features in v1.16

    • New Sysman APIs for Power Usage and Power Limits

    • New Sysman RAS Error types

    • New Sysman APIs for RAS, SetConfigExp and GetConfigExp to handle extended error types

    • Add FABRIC_ACCESIBLE flags for IPC handles

    • Add READ_ONLY flag to indicate memory acecss to allocated host memory

    • New Core API for querying ORTC Compatibility Strings

    • New Core API for AppendMemoryCopy/MemoryFill/CommandLists with Parameters

    • New Core API for querying BDPAS and DPAS HW support and data types

  • Deprecations:

    • Deprecate zetMetricsStreamerReadData behavior for querying for available sizes

    • Deprecate zesSetConfig and zesGetConfig due to limited error type

  • Patches since v1.15.31 release

    • Fix issue where MetricGroup and Metric Export Memory extensions not being listed in Exp Extensions list

    • Fix incorrect name of ZE_IPC_MEM_HANDLE in sample code

    • Improve docs for zeModuleGetGlobalPointer extension

    • Fix the description of size in zes_mem_state_t

    • Remove const qualifier for pSystemMemory member in ze_external_memmap_sysmem_ext_desc_t

Level Zero v1.15.31#

  • New Features:

    • Add new return code to zeCommandListAppendMemoryFill

    • Add additional offload hint to command list creation flags

  • Patches since v1.15.26 release

    • Removed limitation on module program extension, to allow native format in addition to SPIRV

    • Clarify wording for waitParams and signalParams in Appending External Semaphore extensions

Level Zero v1.15.26#

  • New Features:

    • Add new Counter Based Events API and documentation

    • Add Event properties query extension

    • Add Event synchronization modes

    • Add additional common return codes to all APIs

    • Add support for using IPC Mem Handle type

    • Add support for External memory import/export with physical memory

    • Add extension to query image format via ze_image_format_t

    • Add depth component enum for images

    • Add extension to query free memory from zeDeviceProperties, no longer requires Sysman API

    • Add support for user defined pitch for 2D linear pitched images

    • Add APIs to support PCIe link speed downgrade in Sysman

    • Add voltage, thermal and power aggregated reasons to Sysman

    • Deprecate expirmental counter based event pools APIs

  • Patches since v1.14.0 release

    • Add new Runtime API Guide documentation

    • Updated and clarified documentation on Extension Requirements and Guidelines

    • Fix doxygen warnings for invalid explicit links in headers

    • Fix definitions of zes_mem_state_t for free and size members

    • Clarify documentation for zeKernelSuggestMaxCooperativeGroupCount

    • Clarify documentation for zeDevicGetCommandQueueGroupProperties

Level Zero v1.14.33#

  • Update Features:

    • Add additional UNSUPPORTED_IMAGE_FORMAT error code to kernel argument API

    • Add Core API zeCommandListAppendLaunchKernelWithParameters

    • Add new external memory system type for memmap allocations

    • Add new class of APIs zer*, r for Runtime, for simplified execution

    • Add command queue flag to hint offloading copy oerates to different engines

    • Add new environment variables ZEL_DRIVERS_ORDER to adjust driver load ordering

    • Add new HBM memory types to memory module types

    • Add new ABARRIER type into memory descriptor for debugger

    • Add new HOST_IMPORTED type into memory allocation type

    • Add new ZE_RESULT_ERROR_ADDRESS_NOT_FOUND error code type

    • Add new experimental extension to retrieve kernel allocation properties

  • Patches to v1.13.0 release

    • Update pitch info for 2d images with linear pitch

    • Clarify AppendMemoryFill ptr alignment requirements

    • Fix improper const from pArguments argument in append with arguments

    • Deprecate Copy BW properties extension

    • Deprecate Driver API Tracing, in favor of layered API tracing approach

    • Various fixes to init and discovery examples

    • Various formatting and build error fixes

Level Zero v1.13.0#

  • Update Features:

    • Deprecated flags ZE_COMMAND_LIST_FLAG_EXPLICIT_ONLY and ZE_COMMAND_QUEUE_FLAG_EXPLICIT_ONLY

    • Promote the RTAS Builder experimental extension to a standard extension

    • Add Extension querying the device vector widths

    • Add Extension APIs for querying device cache line size

    • Add Sysman Extension mechanism for getting ECC state

    • Add Sysman extension error ERROR_SURVIVABILITY_MODE_DETECTED

    • Add Metrics Extension for runtime enabling and disabling

    • Add Metrics Extension for group based markers

  • Patches to v1.12.5 release

    • Clarify documentation for zeKernelGetSourceAttributes

    • Add deprecation warning to image_view_planar_exp

    • Clarify API Versioning reported by drivers

    • Clarify Documentation for zeMemFree() and zeMemFreeExt() policies

    • Fix various build warnings and broken web links

    • Grammar Fix Replace informal “thru” with “through”

    • Add clarification for MetricGroupDestroy API

Level Zero v1.12.15#

  • Updated Features:

    • Add External semaphores API

    • Add Driver DDI Handles Extension

    • Add GENERIC type into Metrics

  • Patches to v.1.11.8 release:

    • Fix Spec Documentation Links

    • Add missing version structure for zeKernelGetBinaryExp

    • Corrected and added METRIC_GROUP_NAME_PREFIX_EXP

    • Fix Multiple Documentation Syntax to remove warnings

    • Fix for vf telemetry APIs

Level Zero v1.11.8#

  • Patches to v1.11 release:

    • Fixing ABI compatibility issues with v1.11.

    • Fix metric types for new experimental types.

    • Scripts updated to raise a proper exception when parse errors occur.

    • Fix zeKernelGetBinaryExp’s inclusion.

    • Update documentation on Init and add deprecation comments for init changes.

Level Zero v1.11#

  • Updated Features:

    • zePhysicalMemCreate to support physical system memory.

    • Added a new error code in GetGlobalTimestamps function.

    • Add support for metrics and groups to export memory.

    • Add API specification to retrieve kernel binary program data.

  • Patches to v1.10 release:

    • Addressed level-zero loader ABI breakage issue with spec v1.10.

    • Documentation update to spec to relax restriction to allow driver to create internal threads.

    • rename Programmable1Exp to ProgrammableExp2.

Level Zero v1.10#

  • Updated Features

    • Supports new single API for Level Zero Init and Driver Retrieval

    • Support for concurrent Metric group query

    • Supports experimental extension for metric tracer

    • Support to specify fp64 range to metric_value_info

    • Support zetCreateMetricGroupsFromMetricsExp programmable API

    • Support for new temperature sensor types

    • Support for ZE_API_VERSION_CURRENT_M macro for compile time version validation.

    • Supports version 1.1 of mutable commands extension

    • Support for NPU graph support for MCL extension

    • Support for new ELF memory space for debugger

    • Support for Metric Tracer Decode support for sub-devices

    • Support for byte normalized programmable type

    • Added updates to virtual management API

  • Patches to v1.9.3 release

    • Added description to replace C string parameter type

    • Fixed metricprogrammable spec issues

    • Update documentation on zesInit Usage

    • Remove VF experimental interfaces

    • fix metrics names in tracer

Level Zero v1.9.3#

  • Patches to v1.9.2 release

    • Misc infrastructure updates

    • Fix typo in for device property

    • Update support for sampled bindless images

    • Update new image formats

Level Zero v1.9.2#

  • Patch v1.9 to fix API version enum

Level Zero v1.9.1#

  • Misc. patches to v1.9.0 release

    • Add missing enumerations to programming guides

    • Add numWaitEvents parameter to mutable command list update wait events API (needed for loader)

    • Add range to phCommandLists description in append command lists extension

    • Fix spelling error in sysman subdevice properties structure type name

    • Fix immediate command list append API parameter description to work around script limitation

    • Convert fixed-length character array parameters to constant pointers in programmable metrics and firmware security version extensions

Level Zero v1.9.0#

  • Core

    • Fix device hierarchy environment variable value in docs

    • Add experimental extension for immediate command list append command lists

    • Add experimental extension to clone a command list

    • Add experimental extension for mutable command lists

    • Add experimental extension for bindless images

    • Add introspection APIs

    • Add invalid argument error code to zeContextMakeMemoryResident

  • Sysman

    • Fixes to Memory Bandwidth Extensions

    • Add SURVIVABILITY_MODE_DETECTED event type

    • Clarify engine stats details

    • Add clarification for setting frequency defaults

    • New firmware API for logging

    • Add extension to support Flat device model

    • Add experimental extension to access firmware security version

    • Add experimental extension for VF telemetry

  • Tools

    • Add support for programmable metrics

Level Zero v1.8.0#

  • Core

    • Add API Versions 1.7, 1.8

    • Add experimental extension for counter-based events

    • Clarify usage of IPC event pools

  • Sysman

    • Add RasClearState to extension listing

    • Add MEMORY power domain

    • Add GPU power domain

    • Clarify that the time units for engine activity counters are implementation specific

    • Describe extension discovery

    • Added GPU Board Temperature Metric

    • Add power domain properties extension

    • Deprecate unused APIs and/or APIs with enhanced replacements

    • Deprecate compute unit debug mode

    • Add memory timestamp valid bits experimental extension

    • Add flash progress API

    • Added Memory Page Offline Metrics

Level Zero v1.7.8#

  • Core

    • Fix timestamps results parameter attributes

  • Sysman

    • Add extension mechanism for dynamically discovering RAS error states

    • Move engine activity extension to separate extension file

    • Add clarifications to board and serial number descriptions

    • Clarify description for multi-port throughput

  • Tools

    • Clarify metric streamer desc member descriptions

Level Zero v1.7.0#

  • Core

    • Fix a spelling error in the core programming guide command queues section

    • Minor fix to kernel timestamp example in programming guide

    • Some fixes for kernel max group size extension

    • Add clarification to immediate command lists execution

    • Add system memory hint for memory advise

    • Add API to set atomic properties of a shared allocation

    • Add support for in-order lists

    • Add support for flexible device hierarchy model

    • Add ray tracing acceleration structure build experimental extension

  • Sysman

    • Various updates for engine, fabric, device and memory

    • Added Fabric Error Counters and API

    • Update engine group descriptions

    • Fixes to GetFabricPortMultiThroughput

  • Tools

    • Minor formatting fix for metric export data

    • Fix sample code for MetricGroupGetExportDataExp

    • Promote ZET_METRIC_TYPE_IP_EXP out of experimental

    • Fix ZET typo to conform to naming convention

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