mirror of
https://github.com/intel/compute-runtime.git
synced 2025-11-15 10:14:56 +08:00
documentation: correct links to L0 specification
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
0168067c9c
commit
f46d2dcfb3
@@ -107,7 +107,7 @@ for more details.
|
||||
* [Frequently Asked Questions](https://github.com/intel/compute-runtime/blob/master/FAQ.md)
|
||||
|
||||
### Level Zero specific
|
||||
* [oneAPI Level Zero specification](https://spec.oneapi.com/versions/latest/elements/l0/source/index.html)
|
||||
* [oneAPI Level Zero specification](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/index.html)
|
||||
* [Intel(R) OneApi Level Zero Specification API C/C++ header files](https://github.com/oneapi-src/level-zero/)
|
||||
* [oneAPI Level Zero tests](https://github.com/oneapi-src/level-zero-tests/)
|
||||
|
||||
|
||||
@@ -18,11 +18,11 @@ The update involves changes introduced in Level Zero spec v1.6. Some of the impo
|
||||
|
||||
| Feature | Spec link | Notes |
|
||||
| ------------------ | -------------------| ----------------------------- |
|
||||
| Support for zeCommandListHostSynchronize API | https://spec.oneapi.io/level-zero/latest/core/api.html#zecommandlisthostsynchronize | |
|
||||
| Support for zeDriverGetLastErrorDescription API | https://spec.oneapi.io/level-zero/latest/core/api.html#zedrivergetlasterrordescription | |
|
||||
| Support for zeMemPutIpcHandle API | https://spec.oneapi.io/level-zero/latest/core/api.html#zememputipchandle | |
|
||||
| Support for EventPool Get and put IPC handle APIs | https://spec.oneapi.io/level-zero/latest/core/api.html#zeeventpoolgetipchandle , https://spec.oneapi.io/level-zero/latest/core/api.html#zeeventpoolputipchandle | |
|
||||
| Support for host mapped and synchronized event timestamp extension API | https://spec.oneapi.io/level-zero/latest/core/api.html#eventquerykerneltimestamps | |
|
||||
| Support for zeCommandListHostSynchronize API | https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html#zecommandlisthostsynchronize | |
|
||||
| Support for zeDriverGetLastErrorDescription API | https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html#zedrivergetlasterrordescription | |
|
||||
| Support for zeMemPutIpcHandle API | https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html#zememputipchandle | |
|
||||
| Support for EventPool Get and put IPC handle APIs | https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html#zeeventpoolgetipchandle , https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html#zeeventpoolputipchandle | |
|
||||
| Support for host mapped and synchronized event timestamp extension API | https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html#eventquerykerneltimestamps | |
|
||||
|
||||
# Release Notes v1.5
|
||||
|
||||
@@ -36,11 +36,11 @@ The update involves changes introduced across Level Zero spec from v1.3 upto and
|
||||
|
||||
| Feature | Spec link | Notes |
|
||||
| ------------------ | -------------------| ----------------------------- |
|
||||
| Support for Device IP Version extension | https://spec.oneapi.io/level-zero/latest/core/api.html#deviceipversion-structures | |
|
||||
| Support for Image view and Image view planar extension | https://spec.oneapi.io/level-zero/latest/core/api.html#imageview | |
|
||||
| Support for sub allocation properties extension | https://spec.oneapi.io/level-zero/latest/core/api.html#suballocationsproperties | |
|
||||
| Support for Device IP Version extension | https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html#deviceipversion-structures | |
|
||||
| Support for Image view and Image view planar extension | https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html#imageview | |
|
||||
| Support for sub allocation properties extension | https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html#suballocationsproperties | |
|
||||
| Allow IPC events with timestamp events | | Previously spec had limitation disallowing usage of IPC for event pools created with timestamp flag. This limitation is now removed for both spec and implemenation |
|
||||
| Support for kernel max group size properties extension | https://spec.oneapi.io/level-zero/latest/core/api.html#kernelmaxgroupsizeproperties | |
|
||||
| Support for kernel max group size properties extension | https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html#kernelmaxgroupsizeproperties | |
|
||||
|
||||
|
||||
# Release Notes v1.3
|
||||
@@ -55,15 +55,15 @@ January 2022
|
||||
|
||||
Implicit scaling has been enabled by default on Level Zero on Xe HPC (PVC) B and later steppings. The `EnableImplicitScaling` debug key may be used to enable (`EnableImplicitScaling=1`) or disable (`EnableImplicitScaling=0`) implicit scaling on on Xe HPC and other multi-tile architectures.
|
||||
|
||||
### [Blocking Free](https://spec.oneapi.io/level-zero/latest/core/api.html#zememfreeext)
|
||||
### [Blocking Free](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html#zememfreeext)
|
||||
|
||||
The blocking free memory policy has been implemented for `zeMemFreeExt` extension. Defer free policy will be added in upcoming releases.
|
||||
|
||||
### [PCI Properties Extension](https://spec.oneapi.io/level-zero/latest/core/EXT_PCIProperties.html#pci-properties-extension)
|
||||
### [PCI Properties Extension](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/EXT_PCIProperties.html#pci-properties-extension)
|
||||
|
||||
Support for PCI properties extension has been added via `zeDevicePciGetPropertiesExt` interface. This currently provides access to device's BDF address only. Device bandwidth property will be exposed in future based on support from underlying components
|
||||
|
||||
### [Memory Compression Hints](https://spec.oneapi.io/level-zero/latest/core/EXT_MemoryCompressionHints.html#memory-compression-hints-extension)
|
||||
### [Memory Compression Hints](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/EXT_MemoryCompressionHints.html#memory-compression-hints-extension)
|
||||
|
||||
Memory compression hints for shared and device memory allocations and images have been added.
|
||||
|
||||
@@ -82,7 +82,7 @@ August 2021
|
||||
|
||||
## Changes in this release:
|
||||
|
||||
### [Extension to create image views for planar formats](https://spec.oneapi.com/level-zero/latest/core/api.html?highlight=relaxed#relaxedalloclimits-enums)
|
||||
### [Extension to create image views for planar formats](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/EXT_ImageViewPlanar.html#ze-extension-image-view-planar)
|
||||
|
||||
This extension allows accessing each plane for planar formats and have different interpretations of created images.
|
||||
|
||||
@@ -90,11 +90,11 @@ Sample code:
|
||||
|
||||
[https://github.com/intel/compute-runtime/blob/master/level_zero/core/test/black_box_tests/zello_image_view.cpp](https://github.com/intel/compute-runtime/blob/master/level_zero/core/test/black_box_tests/zello_image_view.cpp)
|
||||
|
||||
### [Extension for querying image properties](https://spec.oneapi.io/level-zero/latest/core/api.html?highlight=ze_image_memory_properties_exp_t#_CPPv432ze_image_memory_properties_exp_t)
|
||||
### [Extension for querying image properties](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html?highlight=ze_image_memory_properties_exp_t#_CPPv432ze_image_memory_properties_exp_t)
|
||||
|
||||
This extension allows querying the different properties of an image, such as size, row pitch, and slice pitch.
|
||||
|
||||
### [Definition of ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES_1_2 properties](https://spec.oneapi.io/level-zero/latest/core/api.html?highlight=ze_structure_type_device_properties_1_2#_CPPv439ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES_1_2)
|
||||
### [Definition of ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES_1_2 properties](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html#_CPPv4N19ze_structure_type_t39ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES_1_2E)
|
||||
|
||||
`ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES_1_2` properties allows users to request driver to return timer resolution in cycles per seconds,
|
||||
as defined v1.2 specification:
|
||||
@@ -122,36 +122,36 @@ zeDeviceGetProperties(device, &devProperties);
|
||||
uint64_t timerResolutionInNanoSeconds = devProperties.timerResolution;
|
||||
```
|
||||
### Extension to set preferred allocation for USM shared allocations
|
||||
[`ZE_DEVICE_MEM_ALLOC_FLAG_BIAS_INITIAL_PLACEMENT`](https://spec.oneapi.io/level-zero/latest/core/api.html?highlight=mem_alloc_flag_bias_initial_placement#_CPPv447ZE_DEVICE_MEM_ALLOC_FLAG_BIAS_INITIAL_PLACEMENT) and [`ZE_HOST_MEM_ALLOC_FLAG_BIAS_INITIAL_PLACEMENT`](https://spec.oneapi.io/level-zero/latest/core/api.html?highlight=mem_alloc_flag_bias_initial_placement#_CPPv445ZE_HOST_MEM_ALLOC_FLAG_BIAS_INITIAL_PLACEMENT) can now be set in
|
||||
[`ZE_DEVICE_MEM_ALLOC_FLAG_BIAS_INITIAL_PLACEMENT`](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html#_CPPv4N26ze_device_mem_alloc_flag_t47ZE_DEVICE_MEM_ALLOC_FLAG_BIAS_INITIAL_PLACEMENTE) and [`ZE_HOST_MEM_ALLOC_FLAG_BIAS_INITIAL_PLACEMENT`](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html#_CPPv4N24ze_host_mem_alloc_flag_t45ZE_HOST_MEM_ALLOC_FLAG_BIAS_INITIAL_PLACEMENTE) can now be set in
|
||||
`ze_device_mem_alloc_flags_t` and `ze_host_mem_alloc_flags_t`, respectively, when creating a shared-alloaction, to indicate
|
||||
the driver where a shared-allocation should be initially placed.
|
||||
|
||||
### [IPC Memory Cache Bias Flags](https://spec.oneapi.io/level-zero/latest/core/api.html?highlight=ze_ipc_memory_flag_bias_cached#ze-ipc-memory-flags-t)
|
||||
### [IPC Memory Cache Bias Flags](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html?highlight=ze_ipc_memory_flag_bias_cached#ze-ipc-memory-flags-t)
|
||||
|
||||
`ZE_IPC_MEMORY_FLAG_BIAS_CACHED` and `ZE_IPC_MEMORY_FLAG_BIAS_UNCACHED ` can be passed when opening an IPC
|
||||
memory handle with `zeMemOpenIpcHandle` to set the cache settings of the imported allocation.
|
||||
|
||||
### [Support for preferred group size](https://spec.oneapi.io/level-zero/latest/core/api.html?highlight=ze_kernel_preferred_group_size_properties_t#ze-kernel-preferred-group-size-properties-t)
|
||||
### [Support for preferred group size](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html?highlight=ze_kernel_preferred_group_size_properties_t#ze-kernel-preferred-group-size-properties-t)
|
||||
|
||||
`ze_kernel_preferred_group_size_properties_t` can be used through `zeKernelGetProperties` to query for the preferred
|
||||
multiple group size of a kernel for submission. Submitting a kernel with the preferred group size returned by the driver
|
||||
may improve performance in certain platforms.
|
||||
|
||||
### [Module compilation options](https://spec.oneapi.io/level-zero/latest/core/PROG.html#module-build-options)
|
||||
### [Module compilation options](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/PROG.html#module-build-options)
|
||||
|
||||
Optimization levels can now be passed to `zeModuleCreate` using the `-ze-opt-level` option, which are then communicated
|
||||
to the underlying graphics compiler as hint to indicate the level of optimization desired.
|
||||
|
||||
### [Extension to read the timestamps of each subdevice](https://spec.oneapi.io/level-zero/latest/core/api.html?highlight=zeeventquerytimestampsexp#zeeventquerytimestampsexp)
|
||||
### [Extension to read the timestamps of each subdevice](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html?highlight=zeeventquerytimestampsexp#zeeventquerytimestampsexp)
|
||||
|
||||
This extension defines the `zeEventQueryTimestampsExp` interface to query for timestamps of the parent device or
|
||||
all of the available subdevices.
|
||||
|
||||
### [Extension to set thread arbitration policy](https://spec.oneapi.io/level-zero/latest/core/api.html?highlight=ze_structure_type_device_properties_1_2#kernelschedulinghints)
|
||||
### [Extension to set thread arbitration policy](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html?highlight=ze_structure_type_device_properties_1_2#kernelschedulinghints)
|
||||
|
||||
The `zeKernelSchedulingHintExp` interface allows applications to set the thread arbitration policy desired for the
|
||||
target kernel. Avaialable policies can be queried by application through `zeDeviceGetModuleProperties` with the
|
||||
[`ze_scheduling_hint_exp_properties_t`](https://spec.oneapi.io/level-zero/latest/core/api.html?highlight=ze_scheduling_hint_exp_properties_t#_CPPv435ze_scheduling_hint_exp_properties_t) structure.
|
||||
[`ze_scheduling_hint_exp_properties_t`](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html?highlight=ze_scheduling_hint_exp_properties_t#_CPPv435ze_scheduling_hint_exp_properties_t) structure.
|
||||
|
||||
Policies include:
|
||||
|
||||
@@ -159,7 +159,7 @@ Policies include:
|
||||
* `ZE_SCHEDULING_HINT_EXP_FLAG_ROUND_ROBIN`
|
||||
* `ZE_SCHEDULING_HINT_EXP_FLAG_STALL_BASED_ROUND_ROBIN`
|
||||
|
||||
### [Extension for cache reservation](https://spec.oneapi.io/level-zero/latest/core/EXT_CacheReservation.html#cache-reservation-extension)
|
||||
### [Extension for cache reservation](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/EXT_CacheReservation.html#cache-reservation-extension)
|
||||
|
||||
With `zeDeviceReserveCacheExt`, applications can reserve sections of the GPU cache for exclusive use. Cache level
|
||||
support varies between platforms.
|
||||
@@ -176,7 +176,7 @@ April 2021
|
||||
## Changes in this release:
|
||||
|
||||
### Device allocations larger than 4GB size.
|
||||
https://spec.oneapi.com/level-zero/latest/core/api.html?highlight=relaxed#relaxedalloclimits-enums
|
||||
https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html?highlight=relaxed#relaxedalloclimits-enums
|
||||
|
||||
L0 driver now allows the allocation of buffers larger than 4GB. To use, the `ze_relaxed_allocation_limits_exp_desc_t`
|
||||
structure needs to be passed to `zeMemAllocHost` or `zeMemAllocShared` as a linked descriptor.
|
||||
@@ -197,7 +197,7 @@ In addition to this, kernels need to be compiled with `ze-opt-greater-than-4GB-b
|
||||
passed in `pBuildFlags` field in `ze_module_desc_t` descriptor while calling `zeModuleCreate`.
|
||||
|
||||
### zeDeviceGetGlobalTimestamps for CPU/GPU synchronized time.
|
||||
https://spec.oneapi.com/level-zero/latest/core/api.html?highlight=zedevicegetglobaltimestamps#_CPPv427zeDeviceGetGlobalTimestamps18ze_device_handle_tP8uint64_tP8uint64_t
|
||||
https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html?highlight=zedevicegetglobaltimestamps#_CPPv427zeDeviceGetGlobalTimestamps18ze_device_handle_tP8uint64_tP8uint64_t
|
||||
|
||||
Returns synchronized Host and device global timestamps.
|
||||
|
||||
@@ -214,7 +214,7 @@ zeMemAllocDevice(context, &deviceDesc, size, 0, device, &ptr);
|
||||
```
|
||||
|
||||
### Global work offset
|
||||
https://spec.oneapi.com/level-zero/latest/core/api.html?highlight=globaloffset#_CPPv426zeKernelSetGlobalOffsetExp18ze_kernel_handle_t8uint32_t8uint32_t8uint32_t
|
||||
https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html?highlight=globaloffset#_CPPv426zeKernelSetGlobalOffsetExp18ze_kernel_handle_t8uint32_t8uint32_t8uint32_t
|
||||
|
||||
Applications now can set a global work offset to kernels.
|
||||
|
||||
@@ -235,7 +235,7 @@ zeKernelSetGlobalOffsetExp(kernel, offsetx, offsety, offsetz);
|
||||
```
|
||||
|
||||
### Atomic floating point properties
|
||||
https://spec.oneapi.com/level-zero/latest/core/api.html?highlight=ze_structure_type_float_atomic_ext_properties#_CPPv432ze_float_atomic_ext_properties_t
|
||||
https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html?highlight=ze_structure_type_float_atomic_ext_properties#_CPPv432ze_float_atomic_ext_properties_t
|
||||
|
||||
Applications now can query for floating atomic properties supported by the device in a kernel.
|
||||
This is done by passing `ze_float_atomic_ext_properties_t` to zeDeviceGetModuleProperties as a linked property structure.
|
||||
@@ -255,7 +255,7 @@ if (extendedProperties.fp16Flags & ZE_DEVICE_FP_ATOMIC_EXT_FLAG_GLOBAL_ADD) {
|
||||
```
|
||||
|
||||
### Context Creation for specific devices
|
||||
https://spec.oneapi.com/level-zero/latest/core/api.html?highlight=zecontextcreate#_CPPv417zeContextCreateEx18ze_driver_handle_tPK17ze_context_desc_t8uint32_tP18ze_device_handle_tP19ze_context_handle_t
|
||||
https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html?highlight=zecontextcreate#_CPPv417zeContextCreateEx18ze_driver_handle_tPK17ze_context_desc_t8uint32_tP18ze_device_handle_tP19ze_context_handle_t
|
||||
|
||||
Added `zeContextCreateEX` to create a context with a set of devices. Resources allocated against that context
|
||||
are visible only to the devices for which the context was created.
|
||||
@@ -271,7 +271,7 @@ zeContextCreateEx(hDriver, &desc, devices.size(), devices.data(), &phContext);
|
||||
```
|
||||
|
||||
### Change on timer resolution
|
||||
https://spec.oneapi.com/level-zero/latest/core/api.html?highlight=timerresolution#_CPPv4N22ze_device_properties_t15timerResolutionE
|
||||
https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html?highlight=timerresolution#_CPPv4N22ze_device_properties_t15timerResolutionE
|
||||
|
||||
Time resolution returned by device properties has been changed to cycles/second (v1.0 has a resolution of nano-seconds).
|
||||
To help libraries with the transtition to the new resolution, the `UseCyclesPerSecondTimer` variable has been defined.
|
||||
|
||||
@@ -13,7 +13,7 @@ SPDX-License-Identifier: MIT
|
||||
|
||||
The following document describes the driver experimental extensions implemented in the Level Zero Intel(R) GPU driver. These extensions are meant to test and/or gather feedback on interfaces before they could potentially be added Level Zero specification, as well to provide access to functionality specific to Intel(R) GPUs.
|
||||
|
||||
Driver extensions may be defined as APIs (interfaces), flags, or environment variables. In the case of interfaces, these shall be accessed through [zeDriverGetExtensionFunctionAddress](https://spec.oneapi.io/level-zero/latest/core/api.html?highlight=zedrivergetextensionfunctionaddress#_CPPv435zeDriverGetExtensionFunctionAddress18ze_driver_handle_tPKcPPv). Sample code:
|
||||
Driver extensions may be defined as APIs (interfaces), flags, or environment variables. In the case of interfaces, these shall be accessed through [zeDriverGetExtensionFunctionAddress](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html?highlight=zedrivergetextensionfunctionaddress#_CPPv435zeDriverGetExtensionFunctionAddress18ze_driver_handle_tPKcPPv). Sample code:
|
||||
|
||||
|
||||
```cpp
|
||||
|
||||
@@ -20,7 +20,7 @@ Xe HPC (PVC) contains 4 CCSs (Compute-Command Streamers) per tile, which can be
|
||||
- All EUs may be assigned to a single CCS, on which case, only 1 CCS is needed to be exposed to users.
|
||||
- EUs may be distributed equally among the 4 CCSs, and all CCSs are exposed.
|
||||
|
||||
Applications query for the number of CCSs exposed in the target device by using Level Zero queue groups [https://spec.oneapi.io/level-zero/latest/core/PROG.html#command-queue-groups](https://spec.oneapi.io/level-zero/latest/core/PROG.html#command-queue-groups).
|
||||
Applications query for the number of CCSs exposed in the target device by using Level Zero queue groups [https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/PROG.html#command-queue-groups](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/PROG.html#command-queue-groups).
|
||||
|
||||
Depending on their execution patterns, applications may benefit more from using one or other configuration: Some may benefit from using 1 single CCS to access all EUs, while others may benefit from using more than 1 CCS, each with a fixed number of assigned EUs. For instance:
|
||||
|
||||
|
||||
@@ -149,6 +149,6 @@ When above flags are passed, compiler compiles kernels in a stateless addressing
|
||||
|
||||
# References
|
||||
|
||||
https://spec.oneapi.io/level-zero/latest/core/api.html#relaxedalloclimits
|
||||
https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html#relaxedalloclimits
|
||||
|
||||
https://spec.oneapi.io/level-zero/latest/core/api.html#ze-module-desc-t
|
||||
https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html#ze-module-desc-t
|
||||
|
||||
@@ -18,7 +18,7 @@ SPDX-License-Identifier: MIT
|
||||
|
||||
# Introduction
|
||||
|
||||
Implementation independent details of Level-Zero metrics are described in the Level-Zero specification [Metrics Section](https://spec.oneapi.io/level-zero/latest/tools/PROG.html#metrics). This implementation supports Time-based and Event-based sampling. Two domains are supported, one for collecting GPU performance metrics and one for collecting EU stall sampling data (type ZET_METRIC_TYPE_IP).
|
||||
Implementation independent details of Level-Zero metrics are described in the Level-Zero specification [Metrics Section](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/tools/PROG.html#metrics). This implementation supports Time-based and Event-based sampling. Two domains are supported, one for collecting GPU performance metrics and one for collecting EU stall sampling data (type ZET_METRIC_TYPE_IP).
|
||||
|
||||
# Dependencies
|
||||
|
||||
@@ -29,7 +29,7 @@ Metrics collection depends on:
|
||||
|
||||
# Environment Setup
|
||||
|
||||
As described in Level-Zero specification [Tools Section](https://spec.oneapi.io/level-zero/latest/tools/PROG.html#environment-variables) environment variable `ZET_ENABLE_METRICS` must be set to 1.
|
||||
As described in Level-Zero specification [Tools Section](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/tools/PROG.html#environment-variables) environment variable `ZET_ENABLE_METRICS` must be set to 1.
|
||||
|
||||
## Linux
|
||||
Additionally in Linux environment, is is required to disable the kernel module driver i915 performance stream paranoid mode. This can be done with command
|
||||
@@ -92,8 +92,8 @@ Using Level-Zero Loader Tracing Layer register epilog callbacks for L0 APIs. See
|
||||
2. Store the disassembled GPU kernel code.
|
||||
|
||||
### Metrics collection:
|
||||
1. Enumerate available metric groups and query properties for metrics in each group. Match the metric group named "EU stall sampling", which contains the metric type ZET_METRIC_TYPE_IP. See high level generic steps at https://spec.oneapi.io/level-zero/latest/tools/PROG.html#enumeration
|
||||
2. Open a streamer to collect metrics in "EU stall sampling" metric group. See high level generic steps at https://spec.oneapi.io/level-zero/latest/tools/PROG.html#metric-streamer
|
||||
1. Enumerate available metric groups and query properties for metrics in each group. Match the metric group named "EU stall sampling", which contains the metric type ZET_METRIC_TYPE_IP. See high level generic steps at https://oneapi-src.github.io/level-zero-spec/level-zero/latest/tools/PROG.html#enumeration
|
||||
2. Open a streamer to collect metrics in "EU stall sampling" metric group. See high level generic steps at https://oneapi-src.github.io/level-zero-spec/level-zero/latest/tools/PROG.html#metric-streamer
|
||||
3. Run workload using Level-Zero Core APIs.
|
||||
4. Read metrics data (zetMetricStreamerReadData()) and calculate metrics values (zetMetricGroupCalculateMultipleMetricValuesExp()).
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ To enable the ability for a Module to export Symbols, the Intel Graphics Compile
|
||||
- `-library-compilation` : Enables IGC to export Functions other than kernels as symbols.
|
||||
|
||||
# Function Pointers
|
||||
Function Pointers are supported in Level Zero through the API `https://spec.oneapi.io/level-zero/latest/core/api.html?highlight=functionpointer#_CPPv426zeModuleGetFunctionPointer18ze_module_handle_tPKcPPv`
|
||||
Function Pointers are supported in Level Zero through the API `https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html?highlight=functionpointer#_CPPv426zeModuleGetFunctionPointer18ze_module_handle_tPKcPPv`
|
||||
|
||||
Function pointers refer to non-kernel functions reported as an `export` symbol in the module.
|
||||
|
||||
@@ -56,18 +56,18 @@ And during llvm-spirv compile, use of the SPIRv function pointer extension:
|
||||
# Global Variables
|
||||
Global Variables in SPIRv Modules are reported and accessed through export symbols when the module is compiled with `-ze-take-global-address`.
|
||||
|
||||
The memory address retrieved from the API `https://spec.oneapi.io/level-zero/latest/core/api.html?highlight=getglobal#_CPPv424zeModuleGetGlobalPointer18ze_module_handle_tPKcP6size_tPPv`
|
||||
The memory address retrieved from the API `https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html?highlight=getglobal#_CPPv424zeModuleGetGlobalPointer18ze_module_handle_tPKcP6size_tPPv`
|
||||
|
||||
Is device-only and must not be read on the host otherwise one will access invalid memory. Only usage of the memory on the device is allowed.
|
||||
|
||||
# Dynamic Module Linking
|
||||
Dynamic Module Linking or Linking L0 Modules to other L0 Modules to resolve imported symbols is enabled through the following L0 APIs:
|
||||
`https://spec.oneapi.io/level-zero/latest/core/api.html#zemoduledynamiclink`
|
||||
`https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html#zemoduledynamiclink`
|
||||
|
||||
Please see the functionality described in detail here in the L0 spec: `https://spec.oneapi.io/level-zero/latest/core/PROG.html#dynamically-linked-modules`
|
||||
Please see the functionality described in detail here in the L0 spec: `https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/PROG.html#dynamically-linked-modules`
|
||||
|
||||
# Static Module Linking
|
||||
Static Module Linking or Linking L0 Modules to other L0 Modules during the zeModuleCreate is enabled through the extension:`https://spec.oneapi.io/level-zero/latest/core/api.html#ze-module-program-exp-desc-t`
|
||||
Static Module Linking or Linking L0 Modules to other L0 Modules during the zeModuleCreate is enabled through the extension:`https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html#ze-module-program-exp-desc-t`
|
||||
|
||||
This extension to `zeModuleCreate` allows for one to pass more than one Module to Create for the symbol linkage to be resolved into a single large binary.
|
||||
|
||||
|
||||
@@ -15,16 +15,16 @@ SPDX-License-Identifier: MIT
|
||||
|
||||
# Introduction
|
||||
|
||||
The following document describes limitations of using different initialization modes of System Resource Management Library (Sysman) in Level Zero. Implementation independent information on Level-Zero Sysman initialization are described in the Level-Zero specification [Sysman Programming Guide Section](https://spec.oneapi.io/level-zero/latest/sysman/PROG.html#sysman-programming-guide).
|
||||
The following document describes limitations of using different initialization modes of System Resource Management Library (Sysman) in Level Zero. Implementation independent information on Level-Zero Sysman initialization are described in the Level-Zero specification [Sysman Programming Guide Section](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/sysman/PROG.html#sysman-programming-guide).
|
||||
|
||||
# Initialization
|
||||
|
||||
An application can initialize Level Zero Sysman in following modes:
|
||||
|
||||
* [zeInit](https://spec.oneapi.io/level-zero/latest/core/api.html#zeinit) with [ZES_ENABLE_SYSMAN](https://spec.oneapi.io/level-zero/latest/sysman/PROG.html#environment-variables) environment variable (also referenced as "Legacy mode" for brevity in this document).
|
||||
* [zesInit](https://spec.oneapi.io/level-zero/latest/sysman/api.html#zesinit)
|
||||
* [zeInit](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html#zeinit) with [ZES_ENABLE_SYSMAN](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/sysman/PROG.html#environment-variables) environment variable (also referenced as "Legacy mode" for brevity in this document).
|
||||
* [zesInit](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/sysman/api.html#zesinit)
|
||||
|
||||
Psuedo code for the above can be referenced from [spec](https://spec.oneapi.io/level-zero/latest/sysman/PROG.html#sysman-programming-guide).
|
||||
Psuedo code for the above can be referenced from [spec](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/sysman/PROG.html#sysman-programming-guide).
|
||||
|
||||
# Support and Limitations
|
||||
|
||||
@@ -33,11 +33,11 @@ Following table summarizes the effect of using the specified initialization call
|
||||
| Initialization Mode | Core <-> Sysman Device Handle Casting | Core and Sysman device handle mapping | Sysman API's Support | Platform Support |
|
||||
|-------------------------------------------------------------------------------------------|---------------------------------------|-----------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------|
|
||||
| Legacy mode | Supported | Core <-> Sysman Device Handle Casting | Supported till [v1.5](https://spec.oneapi.io/releases/index.html#level-zero-v1-5-0).<br> API's introduced post 1.5 are not supported | Supported up to XeHPC (PVC) and earlier platforms |
|
||||
| zesInit | Not supported | [Sysman device mapping](https://spec.oneapi.io/level-zero/latest/sysman/api.html#sysmandevicemapping-functions) | All API's are supported | All Platforms supported |
|
||||
| zesInit + (zeInit W/o ZES_ENABLE_SYSMAN) Or <br> (zeInit W/o ZES_ENABLE_SYSMAN) + zesInit | Not supported | [Sysman device mapping](https://spec.oneapi.io/level-zero/latest/sysman/api.html#sysmandevicemapping-functions) | All API's are supported | All Platforms supported |
|
||||
| zesInit | Not supported | [Sysman device mapping](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/sysman/api.html#sysmandevicemapping-functions) | All API's are supported | All Platforms supported |
|
||||
| zesInit + (zeInit W/o ZES_ENABLE_SYSMAN) Or <br> (zeInit W/o ZES_ENABLE_SYSMAN) + zesInit | Not supported | [Sysman device mapping](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/sysman/api.html#sysmandevicemapping-functions) | All API's are supported | All Platforms supported |
|
||||
| zesInit + (Legacy mode) Or <br> (Legacy mode) + zesInit | Not supported | Not supported | Not supported | Not supported |
|
||||
|
||||
* Initialization with Legacy mode is supported only if Level Zero Core is operating on [composite device hierarchy](https://spec.oneapi.io/level-zero/latest/core/PROG.html#device-hierarchy) model.
|
||||
* Initialization with Legacy mode is supported only if Level Zero Core is operating on [composite device hierarchy](https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/PROG.html#device-hierarchy) model.
|
||||
|
||||
# Recommendation
|
||||
|
||||
|
||||
Reference in New Issue
Block a user