From 4247153bb25217c3109b6c7c42cf6794e780b59f Mon Sep 17 00:00:00 2001 From: Jiajia Qin Date: Sat, 4 Jan 2025 06:28:48 +0800 Subject: [PATCH] [webgpu] Add kernel type to profile info (#23167) ### Description This PR is convenient to do post processing for the generated json file when profiling is enabled. Kernel type can be used to aggregate the same type kernels' overall time. --- onnxruntime/core/providers/webgpu/webgpu_context.cc | 1 + onnxruntime/core/providers/webgpu/webgpu_context.h | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/onnxruntime/core/providers/webgpu/webgpu_context.cc b/onnxruntime/core/providers/webgpu/webgpu_context.cc index b2f7748a54..7e7ff7dbde 100644 --- a/onnxruntime/core/providers/webgpu/webgpu_context.cc +++ b/onnxruntime/core/providers/webgpu/webgpu_context.cc @@ -239,6 +239,7 @@ Status WebGpuContext::Run(ComputeContext& context, const ProgramBase& program) { if (is_profiling_) { PendingKernelInfo pending_kernel_info(context.KernelContext().GetNodeName(), + context.KernelContext().GetOpType(), program.Name(), key, inputs, diff --git a/onnxruntime/core/providers/webgpu/webgpu_context.h b/onnxruntime/core/providers/webgpu/webgpu_context.h index d1f43cdc4d..4724118a29 100644 --- a/onnxruntime/core/providers/webgpu/webgpu_context.h +++ b/onnxruntime/core/providers/webgpu/webgpu_context.h @@ -147,11 +147,12 @@ class WebGpuContext final { struct PendingKernelInfo { PendingKernelInfo(std::string_view kernel_name, + std::string_view kernel_type, std::string_view program_name, std::string_view cache_key, const std::vector& inputs, const std::vector& outputs) - : name{absl::StrJoin({kernel_name, program_name}, "_")}, cache_key{cache_key}, inputs{inputs}, outputs{outputs} {} + : name{absl::StrJoin({kernel_name, kernel_type, program_name}, "&")}, cache_key{cache_key}, inputs{inputs}, outputs{outputs} {} PendingKernelInfo(PendingKernelInfo&&) = default; PendingKernelInfo& operator=(PendingKernelInfo&&) = default;