From 256006af22a3ebcd6732f2c96d332b7c795397fe Mon Sep 17 00:00:00 2001 From: Christophe Paquot Date: Mon, 17 Feb 2020 14:16:31 -0800 Subject: [PATCH] Don't create a marker for start event in hipModuleLaunchKernel And also don't optimize the case where start==stop event to compute elapsed time since the command can be a NDRange one. HIP directed test will need to be fixed for that. Change-Id: I64fadd6ab8ab1a490e7a2b7165a591df5a5cf3a2 [ROCm/hip commit: 9692ac6b5f8d3b16b75982dd2fcee86bc731449a] --- projects/hip/vdi/hip_event.cpp | 8 ++------ projects/hip/vdi/hip_module.cpp | 11 ++++------- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/projects/hip/vdi/hip_event.cpp b/projects/hip/vdi/hip_event.cpp index e3d556a52d..5c9d570ea1 100644 --- a/projects/hip/vdi/hip_event.cpp +++ b/projects/hip/vdi/hip_event.cpp @@ -86,12 +86,8 @@ hipError_t Event::elapsedTime(Event& eStop, float& ms) { return hipErrorNotReady; } - if (event_ != eStop.event_) { - ms = static_cast(static_cast(eStop.event_->profilingInfo().end_ - - event_->profilingInfo().start_))/1000000.f; - } else { - ms = 0.f; - } + ms = static_cast(static_cast(eStop.event_->profilingInfo().end_ - + event_->profilingInfo().start_))/1000000.f; return hipSuccess; } diff --git a/projects/hip/vdi/hip_module.cpp b/projects/hip/vdi/hip_module.cpp index bd5ccce47c..4a52b7d7df 100644 --- a/projects/hip/vdi/hip_module.cpp +++ b/projects/hip/vdi/hip_module.cpp @@ -324,12 +324,6 @@ hipError_t ihipModuleLaunchKernel(hipFunction_t f, } } - if(startEvent != nullptr) { - amd::Command* startCommand = new hip::TimerMarker(*queue); - startCommand->enqueue(); - eStart->addMarker(queue, startCommand); - } - amd::NDRangeKernelCommand* command = new amd::NDRangeKernelCommand( *queue, waitList, *kernel, ndrange, sharedMemBytes, params, gridId, numGrids, prevGridSum, allGridSum, firstDevice); @@ -345,11 +339,14 @@ hipError_t ihipModuleLaunchKernel(hipFunction_t f, command->enqueue(); + if(startEvent != nullptr) { + eStart->addMarker(queue, command); + command->retain(); + } if(stopEvent != nullptr) { eStop->addMarker(queue, command); command->retain(); } - command->release(); return hipSuccess;