Building CPU profiling tools that I have found are missing...

Hello,

Long time lurker, but today finally biting the bullet, creating an account and posting…

I’m a SWE, I work mostly in optimisation/HPC and GPGPU compute.

Often I find myself wanting CPU bench-marking and profiling tools that simply don’t exist, most recently this came in the form of looking at the performance deltas between some cores on some work heavily leveraging AVX512 features on AMD.

What I found was very interesting, namely that between cores you could be losing on the order of 1/2 a billion ops/second(esp physical vs logical, however finding documentation on the nomenclature is hard).
This can matter quite a lot for the work I do, especially in cases where we’re aggressively pinning certain workloads.

My questions are:

  1. Has anyone else observed this in a way that has affected their business and if so, what profiling tools did you have to use to discover and work out what was causing it?

  2. I’ve been working on some as-little-code-as-humanly-possible micro benchmarks to find these perf deltas, would anyone like to try them on hardware they might have access to, I’ve started to exhaust the CPUs in my garage/office/friends’ garages/life etc…

SemiAccurate is expensive, but if your business can afford to target AVX512 then the summaries of implementation quirks are essential to maximising throughput.

Zen 4 has four 256-bit pipelines for AVX512 and can complete two 257-and-greater bit vector actions per cycle, but also 256-and-fewer bit vector activities can be 4 per cycle. Zen 5 has full 512-bit datapaths for Ryzen 9000 and Epyc 9005s, but mobile devices get AI 300 series which save watts with 256-bit datapaths (see AVX-512 section of Zen5 at wikipedia).

Feeding the registers might be a variable, depending on the IO Die and hops inside the chip, eg if it’s an X3D part with extra L3.

K3n.

1 Like

This topic was automatically closed 273 days after the last reply. New replies are no longer allowed.