Add documentation for HWC in nOS-V
This commit is contained in:
parent
6fbc5e2693
commit
162e376f92
@ -104,3 +104,32 @@ of CPUs in that state, not the physical CPUs like other views.
|
|||||||
Here is an example of the Heat mini-app:
|
Here is an example of the Heat mini-app:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
## Hardware counters (HWC) view
|
||||||
|
|
||||||
|
The hardware counter view allows you to see the *delta* of a given set of
|
||||||
|
hardware counters over time. The counters are read at the beginning and end of
|
||||||
|
tasks as well as at some nOS-V API methods.
|
||||||
|
|
||||||
|
To enable support for HWC in nOS-V use at least level 2 in `ovni.level` or
|
||||||
|
enable the "hwc" event set in nosv.toml. Then, make sure the
|
||||||
|
`hwcounters.backend` option is set to "papi" and select the counters you want to
|
||||||
|
enable in `hwcounters.papi_events`. Here is an example to trace total
|
||||||
|
instructions and cycles:
|
||||||
|
|
||||||
|
```
|
||||||
|
instrumentation.version = "ovni"
|
||||||
|
ovni.level = 2
|
||||||
|
hwcounters.backend = "papi"
|
||||||
|
hwcounters.papi_events = [ "PAPI_TOT_INS", "PAPI_TOT_CYC" ]
|
||||||
|
```
|
||||||
|
|
||||||
|
You can use the `papi_avail` tool to see which counters are available for a
|
||||||
|
particular machine and a description of each counter. Each CPU has a limit in
|
||||||
|
how many counters can be enabled at the same time, reported in the *Number
|
||||||
|
Hardware Counters* line.
|
||||||
|
|
||||||
|
The events for HWC are generated in cpu.prv and thread.prv for CPUs and threads,
|
||||||
|
respectively. For each enabled hardware counter, a new configuration file will
|
||||||
|
be created at `cfg/cpu/nosv/hwc-*.cfg` and `cfg/thread/nosv/hwc-*.cfg` with the
|
||||||
|
corresponding name of the counter.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user