From 84521de728a5fa7b787ef07a539db154ac376c19 Mon Sep 17 00:00:00 2001 From: Lingrui98 Date: Wed, 28 Jun 2023 20:38:39 +0800 Subject: [PATCH] calculate average for each histogram --- src/main/scala/utils/PerfCounterUtils.scala | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/scala/utils/PerfCounterUtils.scala b/src/main/scala/utils/PerfCounterUtils.scala index d0b95d2ef..74cc5efe2 100644 --- a/src/main/scala/utils/PerfCounterUtils.scala +++ b/src/main/scala/utils/PerfCounterUtils.scala @@ -83,6 +83,20 @@ object XSPerfHistogram extends HasRegularPerfName { ExcitingUtils.addSink(perfClean, "XSPERF_CLEAN") ExcitingUtils.addSink(perfDump, "XSPERF_DUMP") + val sum = RegInit(0.U(64.W)) + val nSamples = RegInit(0.U(64.W)) + when (perfClean) { + sum := 0.U + nSamples := 0.U + } .elsewhen (enable) { + sum := sum + perfCnt + nSamples := nSamples + 1.U + } + + when (perfDump) { + XSPerfPrint(p"${perfName}_mean, ${sum/nSamples}\n") + } + // drop each perfCnt value into a bin val nBins = (stop - start) / step require(start >= 0) -- GitLab