Commit Graph

586 Commits

Author SHA1 Message Date
Dr-Noob
ab43a11ef2 [v1.06][X86] Fix accurate-pp in hybrid architectures (fixes #169)
Overview of changes:
- Adds field max_pp in frequency struct to hold the max freq for peak-performance estimation.
- Instead of getting the max frequency in get_peak_performance, we get it in get_cpu_info (more natural).
- Adds fill_frequency_info_pp which fills the max_pp of the passed cpu by calling measure_frequency.

The approach is to call measure_frequency with a vector where the max frequencies are stored. Then,
the first time measure_frequency is called, the frequency is measured while running all the cores,
and the max frequency is computed per module (e.g., in the case of 2 modules, we would compute
the freq for the first and for the second module), and saved into this vector. Subsequent calls to
measure_frequency will just read the corresponding value for the vector. In other words, the frequency
is only measured once for the whole CPU.
2024-09-10 22:43:23 +01:00
Wunk
edbfc9722e [v1.06][ARM] Add Windows on Arm support (#273) 2024-09-10 09:40:46 +02:00
Dr-Noob
57bbe2de4f [v1.06][X86] Add Sapphire Rapids uarch (#281) 2024-09-10 08:32:18 +01:00
Dr-Noob
278efb75c9 [v1.06][ARM] Add support for Marvell SoC (#279) 2024-09-10 07:41:11 +01:00
Dr-Noob
343150e516 [v1.06][ARM] Add Tegra Orin (#275) 2024-09-09 08:19:18 +01:00
Dr-Noob
1e2c7e565c [v1.06][ARM] Add SC8280XP (on device tree) (#272) 2024-09-09 07:11:57 +01:00
Dr-Noob
977c35a9af [v1.06][X86] Add Zen5 uarch 2024-09-05 20:14:52 +01:00
Dr-Noob
eb8fad2843 [v1.06][ARM] Simplify is_ARMv8_or_newer 2024-09-02 08:27:58 +01:00
Dr-Noob
bd38951439 [v1.06][ARM] Update get_vpus_width to match SVE detection 2024-09-02 08:26:58 +01:00
Dr-Noob
057a36efd5 [v1.06][ARM] Add new microarchitectures 2024-09-02 08:20:40 +01:00
Dr-Noob
56901d70ab [v1.06][ARM] Add more NXP SoCs 2024-08-31 18:40:35 +01:00
Dr-Noob
5bd507e4b6 [v1.06][ARM] Add support for Amlogic A311D (#268) 2024-08-31 09:37:50 +01:00
Dr-Noob
9192ba3eb8 [v1.06][ARM] Add (another) cpufamily for M3 and set the ARM version, fixing peak performance wrong result (#230) 2024-08-29 08:13:05 +01:00
Dr-Noob
807a13d29e [v1.06] Fix manpage file extension (fixes #269) 2024-08-28 21:33:48 +01:00
Dr-Noob
15a803dae5 [v1.06][ARM] Check if HWCAP2_SVE2 is defined before using it (fixes #270) 2024-08-28 21:26:27 +01:00
Dr-Noob
0507355372 [v1.06][X86] Bugfix: set affinity in --accurate-pp
There are cases where measure_frequency is called after binding the
process to a specific core via bind_to_cpu (e.g., when iterating over
modules in hybrid architectures). Thus, in measure_frequency we must
set the affinity of the newly created threads, ensuring they are
binded to the right core.
2024-08-26 12:31:18 +01:00
Dr-Noob
9f66a137c5 [v1.06][ARM] Add support for NXP i.MX 8M Plus (#261) 2024-08-25 17:44:29 +01:00
Dr-Noob
324d0fbe94 [v1.06][PPC] Add support for Espresso (#231) 2024-08-25 16:50:58 +01:00
Dr-Noob
af8bb16302 [v1.06][ARM] Fix for commit 025e28c 2024-08-24 15:44:06 +01:00
Dr-Noob
40374121b8 [v1.06] Replace emalloc+memset with ecalloc when possible. Refactor some memory allocation code 2024-08-24 15:32:33 +01:00
Dr-Noob
025e28c516 [v1.06][ARM] Set Android properties as defines 2024-08-24 14:47:34 +01:00
Dr-Noob
7ad19d113c [v1.06] Remove soc_ prefix from field names in system_on_chip struct 2024-08-24 12:44:24 +01:00
Dr-Noob
13605ed0ce [v1.06][ARM] Remove BCM prefix from Broadcom vendor string 2024-08-24 12:34:57 +01:00
Dr-Noob
7689355a72 [v1.06][ARM] Add support for Apple SoCs in Asahi Linux (#263) 2024-08-23 08:37:13 +01:00
Timothy Warren
321a1ec375 [v1.06][X86] Add old Intel and AMD CPUs (#260)
* Add Intel and AMD 486, Intel Pentium Pro, and AMD K5 chips
* Update infer_cpu_name_from_uarch to support added CPU uarches
* Add sources for more of the legacy chip data
* Add the more specific codename for Intel Pentium MMX Mobile chips
* Document source of AMD 486/K5 variants
* Add link to documentation for Intel 486

---------

Co-authored-by: Timothy Warren <tim@timshomepage.net>
2024-08-20 09:25:01 +02:00
Dr-Noob
48c598cf3b [v1.06][ARM] Add support for Ampere Altra (#262) 2024-08-19 08:46:07 +01:00
Dr-Noob
aa94389bbe [v1.06][ARM] Fix two off-by-one bugs (#264) 2024-08-19 08:39:52 +01:00
Er2
8d10a03adc [v1.06][FreeBSD][Apple] Implement fallback frequency calculation (#251) 2024-08-19 09:21:41 +02:00
Dr-Noob
2410fd16d3 [v1.06] Bump version v1.06 2024-08-18 15:12:27 +01:00
Dr-Noob
f63178b41c [v1.05][ARM] Fix compile warning in SVE cntb 2024-08-10 11:23:13 +01:00
Dr-Noob
2788e6831e [v1.05][ARM] Fix SVE cntb datatype 2024-08-10 11:16:22 +01:00
Dr-Noob
146f2a13aa [v1.05][ARM] Show SVE cntb in debug 2024-08-10 11:11:46 +01:00
Dr-Noob
90624b9aaa [v1.05][ARM] Preeliminary support for SVE detection (#259) 2024-08-10 11:08:39 +01:00
Dr-Noob
e42f04cca8 [v1.05][ARM] Add support for Kirin 9000S and TSV120 (#259) 2024-08-10 11:03:22 +01:00
Dr-Noob
3aacaf5f9e [v1.05] Add RISC-V picture to README (thanks #241!) 2024-08-03 16:31:56 +01:00
Dr-Noob
50f66ec571 [v1.05][X86] Fix compilation issue in clang and fallback to get_topology_from_udev also in AMD 2024-08-03 15:45:10 +01:00
Dr-Noob
cb186a2f97 [v1.05][X86] Do not show empty SSE if not supported (#260) 2024-08-02 10:09:51 +01:00
Dr-Noob
6164884415 [v1.05][ARM] Add latest Snapdragon SoCs (closes #256) 2024-08-02 08:07:47 +01:00
Dr-Noob
260f9ec3b8 [v1.05] Add new contributor to acknowledgements 2024-07-25 08:29:05 +01:00
Dr-Noob
79013d0ec9 [v1.05][X86] Improve robustness in case of old CPUs (verified by #220)
- Use udev to get topo when apic failed or is not available.
- Assume single core in udev when total cores is 1.
- Print core/cores accordingly to the number of cores.
2024-07-25 08:23:56 +01:00
Dr-Noob
e4227388b9 [v1.05][ARM] Add new SnapD SoCs and use ro.soc.mode in Android to improve SoC detection (#253) 2024-07-19 08:21:11 +01:00
Dr-Noob
8fca4cb250 [v1.05][X86] Fix frequency fetching from udev and measurement in hybrid architectures 2024-07-11 22:27:42 +01:00
Dr-Noob
7c947bdf64 [v1.05] Use UNKNOWN_DATA instead of -1 in frequency measurement 2024-07-11 22:10:00 +01:00
Dr-Noob
1ed3a0f2bf [v1.05] Adapt frequency measurement iterations depending on CPU speed
This is achieved by running a first measurement which gets a taste of
CPU speed, then estimate a reasonable value for the iterations of the
real measurement and then running the actual measurement. This is very
helpful to reduce the runtime of the measurement, especially for slow
CPUs
2024-07-11 21:55:01 +01:00
Dr-Noob
0fe6fc3f4d [v1.05][ARM] Fix mistake in Makefile 2024-07-11 08:17:26 +01:00
Dr-Noob
96c784026b [v1.05] Fix formatting issues in Makefile 2024-07-09 08:47:34 +01:00
Dr-Noob
59cd2dd128 [v1.05][X86] Add support for Hygon CPUs (#244) 2024-07-09 08:34:44 +01:00
Dr-Noob
da1981b97c [v1.05] Check read return value in frequency measurement 2024-07-09 08:32:24 +01:00
Dr-Noob
8506c91e00 [v1.05] Add --measure-max-freq (available on x86 and ARM) 2024-07-08 09:07:57 +01:00
Dr-Noob
ece28cbdee [v1.05] Small fix in help message 2024-07-08 08:31:00 +01:00