diff --git a/README.md b/README.md index 1527d51f0a..b374047ea2 100644 --- a/README.md +++ b/README.md @@ -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/) diff --git a/level_zero/doc/RELEASENOTES_CORE.md b/level_zero/doc/RELEASENOTES_CORE.md index b2573d8cfd..49a8cfaab1 100644 --- a/level_zero/doc/RELEASENOTES_CORE.md +++ b/level_zero/doc/RELEASENOTES_CORE.md @@ -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. diff --git a/level_zero/doc/experimental_extensions/DRIVER_EXPERIMENTAL_EXTENSIONS.md b/level_zero/doc/experimental_extensions/DRIVER_EXPERIMENTAL_EXTENSIONS.md index 2e7858c4e5..a81c86e635 100644 --- a/level_zero/doc/experimental_extensions/DRIVER_EXPERIMENTAL_EXTENSIONS.md +++ b/level_zero/doc/experimental_extensions/DRIVER_EXPERIMENTAL_EXTENSIONS.md @@ -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 diff --git a/level_zero/doc/experimental_extensions/MULTI_CCS_MODES.md b/level_zero/doc/experimental_extensions/MULTI_CCS_MODES.md index df9297134b..497e7b11a3 100644 --- a/level_zero/doc/experimental_extensions/MULTI_CCS_MODES.md +++ b/level_zero/doc/experimental_extensions/MULTI_CCS_MODES.md @@ -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: diff --git a/programmers-guide/ALLOCATIONS_GREATER_THAN_4GB.md b/programmers-guide/ALLOCATIONS_GREATER_THAN_4GB.md index 672f8cd6b6..af371de064 100644 --- a/programmers-guide/ALLOCATIONS_GREATER_THAN_4GB.md +++ b/programmers-guide/ALLOCATIONS_GREATER_THAN_4GB.md @@ -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 diff --git a/programmers-guide/METRICS.md b/programmers-guide/METRICS.md index 7f5ccb194d..ec02ecf46f 100644 --- a/programmers-guide/METRICS.md +++ b/programmers-guide/METRICS.md @@ -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()). diff --git a/programmers-guide/MODULE_SYMBOL_SUPPORT.md b/programmers-guide/MODULE_SYMBOL_SUPPORT.md index 14a4e1012d..298d1cf402 100644 --- a/programmers-guide/MODULE_SYMBOL_SUPPORT.md +++ b/programmers-guide/MODULE_SYMBOL_SUPPORT.md @@ -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. diff --git a/programmers-guide/SYSMAN.md b/programmers-guide/SYSMAN.md index 46129aa788..60c2469d27 100644 --- a/programmers-guide/SYSMAN.md +++ b/programmers-guide/SYSMAN.md @@ -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).
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
(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
(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
(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