diff --git a/third_party/proton/csrc/lib/Profiler/RocTracer/RoctracerProfiler.cpp b/third_party/proton/csrc/lib/Profiler/RocTracer/RoctracerProfiler.cpp index adc908d2cd96..ca93678e1c82 100644 --- a/third_party/proton/csrc/lib/Profiler/RocTracer/RoctracerProfiler.cpp +++ b/third_party/proton/csrc/lib/Profiler/RocTracer/RoctracerProfiler.cpp @@ -74,6 +74,7 @@ std::shared_ptr convertActivityToMetric(const roctracer_record_t *activity) { std::shared_ptr metric; switch (activity->kind) { + case kHipVdiCommandTask: case kHipVdiCommandKernel: { if (activity->begin_ns < activity->end_ns) { metric = std::make_shared( @@ -135,7 +136,7 @@ void processActivity(RoctracerProfiler::CorrIdToExternIdMap &corrIdToExternId, const roctracer_record_t *record, bool isAPI, bool isGraph) { switch (record->kind) { - case 0x11F1: // Task - kernel enqueued by graph launch + case kHipVdiCommandTask: case kHipVdiCommandKernel: { processActivityKernel(corrIdToExternId, externId, dataSet, record, isAPI, isGraph); @@ -169,6 +170,7 @@ std::pair matchKernelCbId(uint32_t cbId) { case HIP_API_ID_hipModuleLaunchCooperativeKernel: case HIP_API_ID_hipModuleLaunchCooperativeKernelMultiDevice: case HIP_API_ID_hipGraphExecDestroy: + case HIP_API_ID_hipGraphInstantiateWithFlags: case HIP_API_ID_hipGraphInstantiate: { isRuntimeApi = true; break; @@ -300,6 +302,13 @@ void RoctracerProfiler::RoctracerProfilerPimpl::apiCallback( pImpl->StreamToCaptureCount[Stream]++; break; } + case HIP_API_ID_hipGraphInstantiateWithFlags: { + hipGraph_t Graph = data->args.hipGraphInstantiateWithFlags.graph; + hipGraphExec_t GraphExec = + *(data->args.hipGraphInstantiateWithFlags.pGraphExec); + pImpl->GraphExecToGraph[GraphExec] = Graph; + break; + } case HIP_API_ID_hipGraphInstantiate: { hipGraph_t Graph = data->args.hipGraphInstantiate.graph; hipGraphExec_t GraphExec = *(data->args.hipGraphInstantiate.pGraphExec);