About the peak performance, nezirus, the purpose is to have a quick look of how powerful a CPU is supposed to be. Peak performance does not measure the real performance of a CPU but it is a rough estimate of it. The peak performance is one of the distinguishing marks of cpufetch and is one of my favorite fields of cpufetch. Concerning the fight between Gold 6238 and EPYC 7702P, is not the other way around. If you are able to use the full power of the CPU, Gold is much more powerful. However, in a real program, this is not always true. For more information about the peak performance, see https://github.com/Dr-Noob/peakperf. There you will understand how peak performance is calculated and how it works.
Thank you very much for your "text screenshots", I really like to see my program on all this variety of hardware!
I just realised after years of learning about how cores work that the big.LITTLE design is actually two CPUs not two sets of cores. With a third X1 core CPU we would then have 3 CPUs in a phone ... wow ...
There are probably tens to perhaps even hundreds of independent processors in a modern phone/computer system design. They're elements of essentially every chip in the device - especially if they provide complex/integrated functionality or communicate digitally with other chips.
So they are essentially a combination of chips rather than a combination of logical units. I always assumed these ‘chips’ are made of logical units like computer cpus 20 years ago with different logical units but that is not true. This is probably why the M1 is better than the microsoft’s ARM implementation because probably Apple is not going the processor route and instead more tightly integrating these logical units reducing latency. This is definitely more work but the it’s probably worth it when you control every bit of the pipeline which is not possible when the pipeline is made of several vendors with their SDKs like on snapdragon based windows laptop.
The Qualcomm Snapdragon 888 has three distinct types of cores.
"Snapdragon 888 ... has three CPU core sizes: a single large ARM X1 core for big single-threaded workloads, three medium Cortex A78 cores for multicore work, and four Cortex A55 cores for background work."
Yes, in general, hwloc (from which lstopo comes) is the thing to use for anything to do with CPU/memory topology, e.g. pinning to logical cores rather than physical ones whose numbering can even change with BIOS updates.
WSL1 is essentially bare metal and can run the CPUID instruction directly. WSL2 would run the same instruction, but it would trap cpuid in HyperV; passing-through some information, and synthesize other pieces (or at least, that's what I've seen other hypervisors do).
Maybe the CPU in your Ubuntu machine is new and unrecognized by the program? I don't have any better guess.