Skip to content

Commit fe8c002

Browse files
committed
Update Zen5/5 documentation
1 parent 86dec8e commit fe8c002

File tree

4 files changed

+322
-3
lines changed

4 files changed

+322
-3
lines changed

doc/archs/zen4.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ P0 frequency while the core is in C0).</P>
189189
</TR>
190190
</TABLE>
191191

192-
<H1>Counters available for one hardware thread per L3 segment (aka CCD)</H1>
192+
<H1>Counters available for one hardware thread per socket</H1>
193193
\anchor ZEN4_POWER_SOCKET
194194
<H2>Power counters</H2>
195195
<P>The AMD&reg; Zen4 microarchitecture provides measurements of the current power consumption through the RAPL interface.</P>

doc/archs/zen4c.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ P0 frequency while the core is in C0).</P>
189189
</TR>
190190
</TABLE>
191191

192-
<H1>Counters available for one hardware thread per L3 segment (aka CCD)</H1>
192+
<H1>Counters available for one hardware thread per socket</H1>
193193
\anchor ZEN4C_POWER_SOCKET
194194
<H2>Power counters</H2>
195195
<P>The AMD&reg; Zen4 microarchitecture provides measurements of the current power consumption through the RAPL interface.</P>

doc/archs/zen5.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ P0 frequency while the core is in C0).</P>
189189
</TR>
190190
</TABLE>
191191

192-
<H1>Counters available for one hardware thread per L3 segment (aka CCD)</H1>
192+
<H1>Counters available for one hardware thread per socket</H1>
193193
\anchor ZEN5_POWER_SOCKET
194194
<H2>Power counters</H2>
195195
<P>The AMD&reg; Zen5 microarchitecture provides measurements of the current power consumption through the RAPL interface.</P>

doc/archs/zen5c.md

Lines changed: 319 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,319 @@
1+
\page zen5 AMD&reg; Zen5c (Ryzen, Epyc)
2+
3+
<H1>Available performance monitors for the AMD&reg; Zen5c microarchitecture</H1>
4+
<UL>
5+
<LI>\ref ZEN5C_FIXED "Fixed-purpose counters"</LI>
6+
<LI>\ref ZEN5C_PMC "General-purpose counters"</LI>
7+
<LI>\ref ZEN5C_POWER_CORE "CPU core energy counters"</LI>
8+
<LI>\ref ZEN5C_CPMC "L3 cache general-purpose counters"</LI>
9+
<LI>\ref ZEN5C_POWER_SOCKET "Socket energy counters"</LI>
10+
<LI> \ref ZEN5C_DATA_FABRIC "Data Fabric counters"</LI>
11+
<LI> \ref ZEN5C_UMC "Unified memory controller counters"</LI>
12+
</UL>
13+
14+
\anchor ZEN5C_FIXED
15+
<H2>Fixed-purpose counters</H2>
16+
<P>The AMD&reg; Zen5c microarchitecture provides three fixed-purpose counters for
17+
retired instructions, actual CPU core clock (MPerf: This register increments in
18+
proportion to the actual number of core clocks cycles while the core is in C0) and
19+
maximum CPU core clock (APerf: Incremented by hardware at the
20+
P0 frequency while the core is in C0).</P>
21+
<H3>Counter and events</H3>
22+
23+
<TABLE>
24+
<TR>
25+
<TH>Counter name</TH>
26+
<TH>Event name</TH>
27+
</TR>
28+
<TR>
29+
<TD>FIXC0</TD>
30+
<TD>INST_RETIRED_ANY (removed due to bad counts)</TD>
31+
</TR>
32+
<TR>
33+
<TD>FIXC1</TD>
34+
<TD>ACTUAL_CPU_CLOCK or APERF</TD>
35+
</TR>
36+
<TR>
37+
<TD>FIXC2</TD>
38+
<TD>MAX_CPU_CLOCK or MPERF</TD>
39+
</TR>
40+
</TABLE>
41+
42+
43+
\anchor ZEN5C_PMC
44+
<H2>General-purpose counters</H2>
45+
<P>The AMD&reg; Zen5c microarchitecture provides 6 general-purpose counters consisting of a config and a counter register.</P>
46+
<H3>Counter and events</H3>
47+
<TABLE>
48+
<TR>
49+
<TH>Counter name</TH>
50+
<TH>Event name</TH>
51+
</TR>
52+
<TR>
53+
<TD>PMC0</TD>
54+
<TD>*</TD>
55+
</TR>
56+
<TR>
57+
<TD>PMC1</TD>
58+
<TD>*</TD>
59+
</TR>
60+
<TR>
61+
<TD>PMC2</TD>
62+
<TD>*</TD>
63+
</TR>
64+
<TR>
65+
<TD>PMC3</TD>
66+
<TD>*</TD>
67+
</TR>
68+
<TR>
69+
<TD>PMC4</TD>
70+
<TD>*</TD>
71+
</TR>
72+
<TR>
73+
<TD>PMC5</TD>
74+
<TD>*</TD>
75+
</TR>
76+
</TABLE>
77+
<H3>Available Options</H3>
78+
<TABLE>
79+
<TR>
80+
<TH>Option</TH>
81+
<TH>Argument</TH>
82+
<TH>Description</TH>
83+
<TH>Comment</TH>
84+
</TR>
85+
<TR>
86+
<TD>edgedetect</TD>
87+
<TD>N</TD>
88+
<TD>Set bit 18 in config register</TD>
89+
<TD></TD>
90+
</TR>
91+
<TR>
92+
<TD>kernel</TD>
93+
<TD>N</TD>
94+
<TD>Set bit 17 in config register</TD>
95+
<TD></TD>
96+
</TR>
97+
<TR>
98+
<TD>threshold</TD>
99+
<TD>7 bit hex value</TD>
100+
<TD>Set bits 24-31 in config register</TD>
101+
<TD>The value for threshold can range between 0x0 and 0x7F</TD>
102+
</TR>
103+
<TR>
104+
<TD>invert</TD>
105+
<TD>N</TD>
106+
<TD>Set bit 23 in config register</TD>
107+
<TD></TD>
108+
</TR>
109+
</TABLE>
110+
111+
<H1>Counters available for one hardware thread per CPU core</H1>
112+
\anchor ZEN5C_POWER_CORE
113+
<H2>Power counters</H2>
114+
<P>The AMD&reg; Zen5c microarchitecture provides measurements of the current power consumption through the RAPL interface.</P>
115+
<H3>Counter and events</H3>
116+
<TABLE>
117+
<TR>
118+
<TH>Counter name</TH>
119+
<TH>Event name</TH>
120+
</TR>
121+
<TR>
122+
<TD>PWR0</TD>
123+
<TD>RAPL_CORE_ENERGY</TD>
124+
</TR>
125+
</TABLE>
126+
<P>There are more energy counters but only one for each L3 segment (aka CCD) (\ref ZEN5C_POWER_SOCKET)</P>
127+
128+
129+
<H1>Counters available for one hardware thread per shared L3 cache</H1>
130+
\anchor ZEN5C_CPMC
131+
<H2>L3 general-purpose counters</H2>
132+
<P>The AMD&reg; Zen5c microarchitecture provides 6 general-purpose counters for measuring L3 cache events. They consist of a config and a counter register.</P>
133+
<H3>Counter and events</H3>
134+
<TABLE>
135+
<TR>
136+
<TH>Counter name</TH>
137+
<TH>Event name</TH>
138+
</TR>
139+
<TR>
140+
<TD>CPMC0</TD>
141+
<TD>*</TD>
142+
</TR>
143+
<TR>
144+
<TD>CPMC1</TD>
145+
<TD>*</TD>
146+
</TR>
147+
<TR>
148+
<TD>CPMC2</TD>
149+
<TD>*</TD>
150+
</TR>
151+
<TR>
152+
<TD>CPMC3</TD>
153+
<TD>*</TD>
154+
</TR>
155+
<TR>
156+
<TD>CPMC4</TD>
157+
<TD>*</TD>
158+
</TR>
159+
<TR>
160+
<TD>CPMC5</TD>
161+
<TD>*</TD>
162+
</TR>
163+
</TABLE>
164+
<H3>Available Options</H3>
165+
<TABLE>
166+
<TR>
167+
<TH>Option</TH>
168+
<TH>Argument</TH>
169+
<TH>Description</TH>
170+
<TH>Comment</TH>
171+
</TR>
172+
<TR>
173+
<TD>tid</TD>
174+
<TD>8 bit hex value</TD>
175+
<TD>Set bits 56-63 in config register</TD>
176+
<TD>Define which CPU thread should be counted. Bits: 0 = Core0-Thread0, 1 = Core0-Thread1, 2 = Core1-Thread0, 3 = Core1-Thread1, ... Default are all threads</TD>
177+
</TR>
178+
<TR>
179+
<TD>cid</TD>
180+
<TD>3 bit hex value</TD>
181+
<TD>Set bits 42-45 in config register</TD>
182+
<TD>Selects which core should be counted. If not specified, the all-cores flag (bit 47) is set</TD>
183+
</TR>
184+
<TR>
185+
<TD>slice</TD>
186+
<TD>4 bit hex value</TD>
187+
<TD>Set bits 48-51 in config register</TD>
188+
<TD>Selects which L3 slice should be counted. If not specified, the all-slices flag (bit 46) is set</TD>
189+
</TR>
190+
</TABLE>
191+
192+
<H1>Counters available for one hardware thread per socket</H1>
193+
\anchor ZEN5C_POWER_SOCKET
194+
<H2>Power counters</H2>
195+
<P>The AMD&reg; Zen5c microarchitecture provides measurements of the current power consumption through the RAPL interface.</P>
196+
<H3>Counter and events</H3>
197+
<TABLE>
198+
<TR>
199+
<TH>Counter name</TH>
200+
<TH>Event name</TH>
201+
</TR>
202+
<TR>
203+
<TD>PWR1</TD>
204+
<TD>RAPL_DRAM_ENERGY</TD>
205+
</TR>
206+
</TABLE>
207+
<P>There are more energy counters for each CPU core (\ref ZEN5C_POWER_CORE)</P>
208+
209+
\anchor ZEN5C_DATA_FABRIC
210+
<H2>Data Fabric counters</H2>
211+
<P>The AMD&reg; Zen5c microarchitecture provides additional Uncore counters for the so-called Data Fabric.</P>
212+
213+
<H3>Counter and events</H3>
214+
<TABLE>
215+
<TR>
216+
<TH>Counter name</TH>
217+
<TH>Event name</TH>
218+
</TR>
219+
<TR>
220+
<TD>DFC0</TD>
221+
<TD>*</TD>
222+
</TR>
223+
<TR>
224+
<TD>DFC1</TD>
225+
<TD>*</TD>
226+
</TR>
227+
<TR>
228+
<TD>DFC2</TD>
229+
<TD>*</TD>
230+
</TR>
231+
<TR>
232+
<TD>DFC3</TD>
233+
<TD>*</TD>
234+
</TR>
235+
<TR>
236+
<TD>DFC4</TD>
237+
<TD>*</TD>
238+
</TR>
239+
<TR>
240+
<TD>DFC5</TD>
241+
<TD>*</TD>
242+
</TR>
243+
<TR>
244+
<TD>DFC5</TD>
245+
<TD>*</TD>
246+
</TR>
247+
<TR>
248+
<TD>DFC6</TD>
249+
<TD>*</TD>
250+
</TR>
251+
<TR>
252+
<TD>DFC7</TD>
253+
<TD>*</TD>
254+
</TR>
255+
<TR>
256+
<TD>DFC8</TD>
257+
<TD>*</TD>
258+
</TR>
259+
<TR>
260+
<TD>DFC9</TD>
261+
<TD>*</TD>
262+
</TR>
263+
<TR>
264+
<TD>DFC10</TD>
265+
<TD>*</TD>
266+
</TR>
267+
<TR>
268+
<TD>DFC11</TD>
269+
<TD>*</TD>
270+
</TR>
271+
<TR>
272+
<TD>DFC12</TD>
273+
<TD>*</TD>
274+
</TR>
275+
<TR>
276+
<TD>DFC13</TD>
277+
<TD>*</TD>
278+
</TR>
279+
<TR>
280+
<TD>DFC14</TD>
281+
<TD>*</TD>
282+
</TR>
283+
<TR>
284+
<TD>DFC15</TD>
285+
<TD>*</TD>
286+
</TR>
287+
</TABLE>
288+
289+
\anchor ZEN5C_UMC
290+
<H2>Unified memory controller counters</H2>
291+
<P>The AMD&reg; Zen5c microarchitecture provides additional Uncore counters at the unified memory controllers (UMC). There are up to 12 memory controllers with up to 5 counters each as the system provides 64 registers in total for all. The exact configuration is system dependent and read at runtime.</P>
292+
293+
<H3>Counter and events</H3>
294+
<TABLE>
295+
<TR>
296+
<TH>Counter name</TH>
297+
<TH>Event name</TH>
298+
</TR>
299+
<TR>
300+
<TD>UMC&lt;0-11&gt;C0</TD>
301+
<TD>*</TD>
302+
</TR>
303+
<TR>
304+
<TD>UMC&lt;0-11&gt;C1</TD>
305+
<TD>*</TD>
306+
</TR>
307+
<TR>
308+
<TD>UMC&lt;0-11&gt;C2</TD>
309+
<TD>*</TD>
310+
</TR>
311+
<TR>
312+
<TD>UMC&lt;0-11&gt;C3</TD>
313+
<TD>*</TD>
314+
</TR>
315+
<TR>
316+
<TD>UMC&lt;0-11&gt;C4</TD>
317+
<TD>*</TD>
318+
</TR>
319+
</TABLE>

0 commit comments

Comments
 (0)