From c925a36edbe848ce466b14453db9c5e8edcfb764 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Mon, 15 Jul 2019 12:39:46 -0500 Subject: [PATCH] trace buffer flush on destruct [ROCm/roctracer commit: 9ad1269ae8293987d70d2baa8a095008448ddb9a] --- projects/roctracer/src/core/loader.h | 3 +++ projects/roctracer/src/core/roctracer.cpp | 2 +- projects/roctracer/test/tool/tracer_tool.cpp | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/projects/roctracer/src/core/loader.h b/projects/roctracer/src/core/loader.h index 279b365175..46e8a4194b 100644 --- a/projects/roctracer/src/core/loader.h +++ b/projects/roctracer/src/core/loader.h @@ -47,6 +47,7 @@ class HipLoader : protected Loader { typedef decltype(hipRegisterActivityCallback) RegisterActivityCallback_t; typedef decltype(hipRemoveActivityCallback) RemoveActivityCallback_t; typedef decltype(hipKernelNameRef) KernelNameRef_t; + typedef decltype(hipApiName) ApiName_t; static HipLoader& Instance() { HipLoader* obj = instance_.load(std::memory_order_acquire); @@ -66,6 +67,7 @@ class HipLoader : protected Loader { RegisterActivityCallback = GetFun("hipRegisterActivityCallback"); RemoveActivityCallback = GetFun("hipRemoveActivityCallback"); KernelNameRef = GetFun("hipKernelNameRef"); + ApiName = GetFun("hipApiName"); } RegisterApiCallback_t* RegisterApiCallback; @@ -73,6 +75,7 @@ class HipLoader : protected Loader { RegisterActivityCallback_t* RegisterActivityCallback; RemoveActivityCallback_t* RemoveActivityCallback; KernelNameRef_t* KernelNameRef; + ApiName_t* ApiName; private: static std::atomic instance_; diff --git a/projects/roctracer/src/core/roctracer.cpp b/projects/roctracer/src/core/roctracer.cpp index 6416ed124b..1a1571a90e 100644 --- a/projects/roctracer/src/core/roctracer.cpp +++ b/projects/roctracer/src/core/roctracer.cpp @@ -598,7 +598,7 @@ PUBLIC_API const char* roctracer_op_string( break; } case ACTIVITY_DOMAIN_HIP_API: { - return hipApiName(op); + return roctracer::HipLoader::Instance().ApiName(op); break; } default: diff --git a/projects/roctracer/test/tool/tracer_tool.cpp b/projects/roctracer/test/tool/tracer_tool.cpp index 44b511149d..51e9314fef 100644 --- a/projects/roctracer/test/tool/tracer_tool.cpp +++ b/projects/roctracer/test/tool/tracer_tool.cpp @@ -196,7 +196,7 @@ void hip_api_flush_cb(hip_api_trace_entry_t* entry) { std::ostringstream oss; \ oss << std::dec << - begin_timestamp << ":" << end_timestamp << " " << entry->pid << ":" << entry->tid << " " << roctracer_op_string(ACTIVITY_DOMAIN_HIP_API, cid, 0); \ + begin_timestamp << ":" << end_timestamp << " " << entry->pid << ":" << entry->tid << " " << roctracer_op_string(ACTIVITY_DOMAIN_HIP_API, cid, 0); switch (cid) { case HIP_API_ID_hipMemcpy: @@ -244,6 +244,7 @@ void hcc_activity_callback(const char* begin, const char* end, void* arg) { if (record->domain == ACTIVITY_DOMAIN_HCC_OPS) { fprintf(hcc_activity_file_handle, "%lu:%lu %d:%lu %s:%lu\n", record->begin_ns, record->end_ns, record->device_id, record->queue_id, name, record->correlation_id); + fflush(hcc_activity_file_handle); } else { #if 0 fprintf(hip_api_file_handle, "%lu:%lu %u:%u %s()\n",