fix: setup both cpu & gpu timestamp when setting timestamp in event

Related-To: NEO-8394
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
Mateusz Jablonski
2023-10-16 15:04:27 +02:00
committed by Compute-Runtime-Automation
parent 5c8cbc80eb
commit c68f7c8fe2
8 changed files with 48 additions and 53 deletions

View File

@@ -227,13 +227,11 @@ void CommandQueueHw<Family>::setupEvent(EventBuilder &eventBuilder, cl_event *ou
if (eventObj->isProfilingEnabled()) {
TimeStampData queueTimeStamp;
getDevice().getOSTime()->getCpuGpuTime(&queueTimeStamp);
eventObj->setQueueTimeStamp(&queueTimeStamp);
eventObj->setQueueTimeStamp(queueTimeStamp);
if (isCommandWithoutKernel(cmdType) && cmdType != CL_COMMAND_MARKER) {
eventObj->setCPUProfilingPath(true);
eventObj->setQueueTimeStamp();
}
}
DBG_LOG(EventsDebugEnable, "enqueueHandler commandType", cmdType, "output Event", eventObj);

View File

@@ -60,7 +60,9 @@ void *CommandQueue::cpuDataTransferHandler(TransferProperties &transferPropertie
if (eventsRequest.outEvent && !isMarkerRequiredForEventSignal) {
eventBuilder.create<Event>(this, transferProperties.cmdType, CompletionStamp::notReady, CompletionStamp::notReady);
outEventObj = eventBuilder.getEvent();
outEventObj->setQueueTimeStamp();
TimeStampData queueTimeStamp;
getDevice().getOSTime()->getCpuGpuTime(&queueTimeStamp);
outEventObj->setQueueTimeStamp(queueTimeStamp);
outEventObj->setCPUProfilingPath(true);
*eventsRequest.outEvent = outEventObj;
}
@@ -96,7 +98,9 @@ void *CommandQueue::cpuDataTransferHandler(TransferProperties &transferPropertie
bool modifySimulationFlags = false;
if (outEventObj) {
outEventObj->setSubmitTimeStamp();
TimeStampData submitTimeStamp;
getDevice().getOSTime()->getCpuGpuTime(&submitTimeStamp);
outEventObj->setSubmitTimeStamp(submitTimeStamp);
}
// wait for the completness of previous commands
if (transferProperties.finishRequired) {

View File

@@ -418,7 +418,9 @@ cl_int CommandQueueHw<GfxFamily>::enqueueHandler(Surface **surfacesForResidency,
completionStamp.taskLevel = taskLevel;
if (eventBuilder.getEvent() && isProfilingEnabled()) {
eventBuilder.getEvent()->setSubmitTimeStamp();
TimeStampData submitTimeStamp;
getDevice().getOSTime()->getCpuGpuTime(&submitTimeStamp);
eventBuilder.getEvent()->setSubmitTimeStamp(submitTimeStamp);
eventBuilder.getEvent()->setStartTimeStamp();
}
@@ -846,7 +848,9 @@ CompletionStamp CommandQueueHw<GfxFamily>::enqueueNonBlocked(
}
if (isProfilingEnabled() && eventBuilder.getEvent()) {
eventBuilder.getEvent()->setSubmitTimeStamp();
TimeStampData submitTimeStamp;
getDevice().getOSTime()->getCpuGpuTime(&submitTimeStamp);
eventBuilder.getEvent()->setSubmitTimeStamp(submitTimeStamp);
auto hwTimestampNode = eventBuilder.getEvent()->getHwTimeStampNode();
if (hwTimestampNode) {
@@ -1111,7 +1115,9 @@ CompletionStamp CommandQueueHw<GfxFamily>::enqueueCommandWithoutKernel(
}
if (eventBuilder.getEvent() && isProfilingEnabled()) {
eventBuilder.getEvent()->setSubmitTimeStamp();
TimeStampData submitTimeStamp;
getDevice().getOSTime()->getCpuGpuTime(&submitTimeStamp);
eventBuilder.getEvent()->setSubmitTimeStamp(submitTimeStamp);
eventBuilder.getEvent()->setStartTimeStamp();
}