36 ms·
That seems a bit weird to me. Many programs are hard to multithread but I'd expect that if any given program can make effective use of 8 threads it can probabl
by Symmetry 5y ago
That seems a bit weird to me. Many programs are hard to multithread but I'd expect that if any given program can make effective use of 8 threads it can probably keep scaling to 16 and 32. The hard part is getting from 1 to 2 and 2 to 4. So I'd expect that in most cases having more than 8 high performance cores doesn't make that much sense.
- kungito 5y agoAmdahl's law can be formulated in the following way: <math>S_\text{latency}(s) = \frac 1 {(1 - p) + \frac p s}</math>
- Symmetry 5y agoThat's tautologically true but the question is what the distribution of p is over the 0-1 interval for real world programs.
- bombcar 5y agoA Mac Pro is likely to be dedicated to those workloads which ARE easy to thread - video editing and processing - or simply have multiple applications running simultaneously. Someone who doesn't need more performance cores is unlikely to invest in a Mac Pro.
- thinkingemote 5y agoMacs are primarily well designed consumer devices, status symbols and objects of brand loyalty. These factors will push sales beyond a basic functional need.
- Symmetry 5y agoI'm confused at this response. My thought is that instead of 32 high performance cores and 8 efficiency cores it might be better to have 8 high performance cores and ~100 efficiency ones which ought to be about the same area and power but provide a lot more throughput if software can utilize that level of parallelism. There's a lot of software that won't scale to 108 cores, of course, but again I expect the amount of software that could usefully scale to 40 parallel threads but can't scale to 108 to be fairly small.
- bombcar 5y agoThe performance cores seem to take maybe twice as much space as the efficiency cores, so I'm not sure the tradeoff would be worth it - the efficiency cores would need to be more than half as fast taking into account the parallelism to make the tradeoff worth it. In a world where power and heat budgets don't matter at all you'd not have any efficiency cores, after all.
- Symmetry 5y agoThe general rule of thumb for reasonably sized cores, which both Apple's performance and efficiency cores are, is that performance tends to scale with the square of the transistor and energy budget due to N^2 structures like the bypass network, ROB, etc being the long poles. Now, for any given transistor budget there's going to be a non-linear tradeoff between performance and power governed by supply voltage versus process threshold voltage. And if you're testing a chip and using only one or the other of the two sorts of cores you're paying for the uncore and memory subsystem regardless of which cores you're testing which complicates things. But it would be really weird if power consumption wasn't super linear with performance, that's why "efficiency cores" have "efficiency" in their name.
- jeffbee 5y ago> it can probably keep scaling to 16 and 32 Bad assumption. It's pretty difficult to write a multithreaded program that scales up to 32 cores. You have to carefully avoid all sources of process-wide contention. The only cases where it is easy to just keep adding cores are where the units of independent work are overwhelmingly large compared to everything else, like video compression.
- Symmetry 5y agoNo, it's certainly hard to write a multithreaded program that scales up to 32 cores. But it's also hard to write a multithreaded program that scales up to 8 cores. I'm saying that if we exclude the multithreaded programs that don't scale to 8 cores, most of them can be made to scale to 32 cores with reasonable effort.
- jeffbee 5y agoI don’t really agree. You can get cpus where eight cores share an l2 cache and you can pretty much obliviously program those and get totally reasonable scaling because the contention penalty is the L2 access latency. There are no 32-core parts with that property, so you’re paying for at best L3 access latency and maybe main memory, possibly even NUMA node-crossing latency.
- Symmetry 5y agoAre there CPU architectures where 8 cores share a L2 cache? I'm not aware of any though I can think of several where 4 cores share a L2 cache, though those tend to be pretty lightweight cores. More often you see issues with the L3 cache being shared between 8 cores or no as with Zen 2 versus Zen 3. And since only lightweight cores tend to share L2s this isn't really an issue in terms of replacing heavyweight cores with lightweight ones. Mostly, though when I think about sharing data between 8 cores I tend to be concentrating on making sure it ends up as S in MESI, MOESI, MESIF or whatever cache coherency protocol the chip is using.
- 5y ago