Kernel#

oneAPI Level Zero Specification - Version 1.18.31

Kernel Functions#

zetKernelGetProfileInfo#

Added in version 1.0

ZE_APIEXPORT ze_result_t ZE_APICALL zetKernelGetProfileInfo(zet_kernel_handle_t hKernel, zet_profile_properties_t *pProfileProperties)#

Retrieve profiling information generated for the kernel.

  • Module must be created using the following build option:

    • ”-zet-profile-flags <n>” - enable generation of profile information

    • ”<n>” must be a combination of zet_profile_flag_t, in hex

  • The application may call this function from simultaneous threads.

  • The implementation of this function should be lock-free.

Parameters:
  • hKernel – [in] handle to kernel

  • pProfileProperties – [out] pointer to profile properties

Returns:

Kernel Enums#

zet_profile_flags_t#

Added in version 1.0

enum zet_profile_flag_t#

Values:

enumerator ZET_PROFILE_FLAG_REGISTER_REALLOCATION#

request the compiler attempt to minimize register usage as much as possible to allow for instrumentation

enumerator ZET_PROFILE_FLAG_FREE_REGISTER_INFO#

request the compiler generate free register info

enumerator ZET_PROFILE_FLAG_FORCE_UINT32#

Value marking end of ZET_PROFILE_FLAG_* ENUMs.

zet_profile_token_type_t#

Added in version 1.0

enum zet_profile_token_type_t#

Supported profile token types.

Values:

enumerator ZET_PROFILE_TOKEN_TYPE_FREE_REGISTER#

GRF info.

enumerator ZET_PROFILE_TOKEN_TYPE_FORCE_UINT32#

Value marking end of ZET_PROFILE_TOKEN_TYPE_* ENUMs.

Kernel Structures#

zet_profile_properties_t#

Added in version 1.0

struct zet_profile_properties_t#

Profiling meta-data for instrumentation.

Public Members

zet_structure_type_t stype#

[in] type of this structure

void *pNext#

[in,out][optional] must be null or a pointer to an extension-specific structure (i.e. contains stype and pNext).

zet_profile_flags_t flags#

[out] indicates which flags were enabled during compilation. returns 0 (none) or a combination of zet_profile_flag_t

uint32_t numTokens#

[out] number of tokens immediately following this structure

zet_profile_free_register_token_t#

Added in version 1.0

struct zet_profile_free_register_token_t#

Profile free register token detailing unused registers in the current function.

Public Members

zet_profile_token_type_t type#

[out] type of token

uint32_t size#

[out] total size of the token, in bytes

uint32_t count#

[out] number of register sequences immediately following this structure

zet_profile_register_sequence_t#

Added in version 1.0

struct zet_profile_register_sequence_t#

Profile register sequence detailing consecutive bytes, all of which are unused.

Public Members

uint32_t start#

[out] starting byte in the register table, representing the start of unused bytes in the current function

uint32_t count#

[out] number of consecutive bytes in the sequence, starting from start