4 ms·
I generally agree with your sentiment here, but one thing I will point out is that this stuff isn't always totally transparent with AMD and Intel either. Intel
by eklitzke 4y ago
I generally agree with your sentiment here, but one thing I will point out is that this stuff isn't always totally transparent with AMD and Intel either. Intel and AMD release a lot of technical details about new and upcoming microarchitectures, but still it isn't until the chips are released and people run specific benchmarks on them that details emerge. For example, if you've done any x86 micro-optimization you've probably used Agner Fog's instruction tables.^[1] These instruction tables and the uop breakdowns are generated empirically, so they aren't updated until after someone has real hardware to test with. Likewise for things like the branch predictor measurements, BTB latency, etc. presented in this article, these come from empirical testing not from data sheets disseminated by Intel.
Things are certainly much worse with ARM partly because, as you point out, ARM is meant to be high customizable by vendors. Additionally there's an increasing trend of vendors creating even more highly differentiated ARM CPUs. At the same time though it's not that easy for users to empirically measure these CPUs the same way they can x86 hardware. With a regular Linux distro and a desktop x86 CPU it's pretty straightforward to set up some measurement environment for code by doing things like creating a dedicated cpuset for your tests and disabling frequency scaling. On the other hand I have no idea how I would do that on my Pixel 6.
The same site that wrote this article recently did a breakdown of Amazon's Graviton 3 chips: https://chipsandcheese.com/2022/05/29/graviton-3-first-impressions/ https://chipsandcheese.com/2022/05/29/graviton-3-first-impre... . That's because you can actually set up a normal Linux environment on an AWS instance w/ Graviton CPUs and run benchmarks to figure out details about their microarchitecture, not because Amazon released detailed spec sheets on the CPUs.
Again I agree with your overall sentiment and I also wish things were more transparent. But learning about the details of these CPUs using clever micro benchmarks has been the norm forever. If you're a huge purchaser (Google, Facebook, Amazon, etc.) you can get access to a lot more information but this hasn't really ever been an option for consumers.
[1] https://www.agner.org/optimize/instruction_tables.pdf https://www.agner.org/optimize/instruction_tables.pdf
- rektide 4y agoFully agreed everywhere, thanks. There used to be a little more bragging about the enhancements up front in x86 land, but yes, a lot of it comes down to reverse engineering. The one place I'd redouble my scorn is that so many modern devices don't even list their chip, not even it's generation. Google in particular has been a major force in reducing the "tech specs" down to "Intel i5" or some-such preposterously useless "description". Is this a 10W part? A 35W part? What generation? How many cores? But absolutely. A huge amount of these details have, for a long time, been carefully tested for &- I lack a better term- reverse-engineered, from shipped devices. But historically we'd at least know, before purchasing, what core it was we were purchasing.
- causi 4y agobut one thing I will point out is that this stuff isn't always totally transparent with AMD and Intel either Indeed. Trying to figure out which integrated GPU an AMD laptop chip has and its specs is quite difficult. I ran into that problem even when I had the laptop in my hands.