1
- # CI benchmarking machine
2
- The machine that actually executes the benchmarks in CI has the following configuration.
1
+ # Benchmarking machine
2
+ The machine that actually executes the benchmarks is the ` AX-42 ` server running on [ Hetzner ] ( https://www.hetzner.com/dedicated-rootserver/ ) . It has the following configuration.
3
3
4
4
## Hardware
5
- - 6 -core AMD Ryzen 5 3600 with HyperThreading (12 hardware threads total)
5
+ - 8 -core AMD Ryzen 7 PRO 8700GE with HyperThreading (16 hardware threads total)
6
6
<details >
7
7
<summary >Output of `lscpu`</summary >
8
8
9
9
```
10
- Architecture: x86_64
11
- CPU op-mode(s): 32-bit, 64-bit
12
- Byte Order: Little Endian
13
- CPU(s): 12
14
- On-line CPU(s) list: 0-11
15
- Thread(s) per core: 2
16
- Core(s) per socket: 6
17
- Socket(s): 1
18
- NUMA node(s): 1
19
- Vendor ID: AuthenticAMD
20
- CPU family: 23
21
- Model: 113
22
- Model name: AMD Ryzen 5 3600 6-Core Processor
23
- Stepping: 0
24
- CPU MHz: 3819.020
25
- CPU max MHz: 3600.0000
26
- CPU min MHz: 2200.0000
27
- BogoMIPS: 7186.58
28
- Virtualization: AMD-V
29
- L1d cache: 32K
30
- L1i cache: 32K
31
- L2 cache: 512K
32
- L3 cache: 16384K
33
- NUMA node0 CPU(s): 0-11
34
- Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate sme ssbd ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif umip rdpid overflow_recov succor smca
10
+ Architecture: x86_64
11
+ CPU op-mode(s): 32-bit, 64-bit
12
+ Address sizes: 48 bits physical, 48 bits virtual
13
+ Byte Order: Little Endian
14
+ CPU(s): 16
15
+ On-line CPU(s) list: 0-7
16
+ Off-line CPU(s) list: 8-15
17
+ Vendor ID: AuthenticAMD
18
+ Model name: AMD Ryzen 7 PRO 8700GE w/ Radeon 780M Graphics
19
+ CPU family: 25
20
+ Model: 117
21
+ Thread(s) per core: 1
22
+ Core(s) per socket: 8
23
+ Socket(s): 1
24
+ Stepping: 2
25
+ CPU(s) scaling MHz: 88%
26
+ CPU max MHz: 5184.0000
27
+ CPU min MHz: 0.0000
28
+ BogoMIPS: 7300.19
29
+ Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 cl
30
+ flush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm co
31
+ nstant_tsc rep_good amd_lbr_v2 nopl nonstop_tsc cpuid extd_apicid aperfmpe
32
+ rf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt ae
33
+ s xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4
34
+ a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core p
35
+ erfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba pe
36
+ rfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase bmi1 avx2 smep bmi
37
+ 2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflu
38
+ shopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsave
39
+ s cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk avx512_bf16
40
+ clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_
41
+ save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshol
42
+ d avic vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku ospke avx512_vbmi2
43
+ gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid ove
44
+ rflow_recov succor smca fsrm flush_l1d
45
+ Virtualization features:
46
+ Virtualization: AMD-V
47
+ Caches (sum of all):
48
+ L1d: 256 KiB (8 instances)
49
+ L1i: 256 KiB (8 instances)
50
+ L2: 8 MiB (8 instances)
51
+ L3: 16 MiB (1 instance)
52
+ NUMA:
53
+ NUMA node(s): 1
54
+ NUMA node0 CPU(s): 0-7
55
+ Vulnerabilities:
56
+ Gather data sampling: Not affected
57
+ Itlb multihit: Not affected
58
+ L1tf: Not affected
59
+ Mds: Not affected
60
+ Meltdown: Not affected
61
+ Mmio stale data: Not affected
62
+ Reg file data sampling: Not affected
63
+ Retbleed: Not affected
64
+ Spec rstack overflow: Mitigation; Safe RET
65
+ Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
66
+ Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
67
+ Spectre v2: Mitigation; Enhanced / Automatic IBRS; IBPB conditional; STIBP always-on;
68
+ RSB filling; PBRSB-eIBRS Not affected; BHI Not affected
69
+ Srbds: Not affected
70
+ Tsx async abort: Not affected
35
71
```
36
72
37
73
</details>
38
- - 64 GiB RAM, 32 GiB of swap
74
+ - 64 GiB RAM, swap disabled
39
75
40
76
## Software
41
- - Kernel: `4.15 .0-191 -generic`
42
- - OS: Ubuntu `18 .04`
77
+ - Kernel: `6.8 .0-60 -generic`
78
+ - OS: Ubuntu `24 .04`
43
79
44
80
## Configuration
45
- ### HyperThreading & Turboboost
46
- As of November 2022, both are disabled.
47
81
48
- Prior to October 2022, both were enabled. During October 2022 some
49
- [experimentation](https://github.com/rust-lang/rustc-perf/issues/1450) was done
50
- which found that disabling both reduced variance significantly.
82
+ The machine is configured via [this](https://github.com/rust-lang/simpleinfra/blob/master/ansible/playbooks/rustc-perf.yml) Ansible script.
83
+
84
+ ### HyperThreading & Turboboost
85
+ Both are disabled.
51
86
52
87
### CPU scaling
53
88
Scaling governor set to `performance`.
@@ -62,4 +97,4 @@ Note that ASLR is also
62
97
Disabled with `kernel.nmi_watchdog=0` in `sysctl.conf`.
63
98
64
99
### Swap
65
- `vm.swappiness` set to `60` .
100
+ `vm.swappiness` set to `10`. Swap is disabled anyway though .
0 commit comments