driver may reorder commands (e.g., kernels, copies) between barriers and synchronization primitives.
what does that mean for timestamps? if the commands are reorganized by the driver, must the driver guarantee the timestamps are still returned to the user in the correct timeline ordering, or is up to the user to traverse all timestamps in the list and reordering them? I would expect to be the former, so that way the reordering details are completely hidden from the user, as expected.
When an application uses
ZE_COMMAND_LIST_FLAG_RELAXED_ORDERING
:https://spec.oneapi.io/level-zero/latest/core/api.html?highlight=ze_command_list_flag_relaxed_ordering#_CPPv4N22ze_command_list_flag_t37ZE_COMMAND_LIST_FLAG_RELAXED_ORDERINGE
what does that mean for timestamps? if the commands are reorganized by the driver, must the driver guarantee the timestamps are still returned to the user in the correct timeline ordering, or is up to the user to traverse all timestamps in the list and reordering them? I would expect to be the former, so that way the reordering details are completely hidden from the user, as expected.