6 ms·
What AMD Learned from Its Big Chiplet Push
- comex 3y ago“One of the goals of our architecture is to have it be completely transparent to software, because software is hard to change.” Software is hard to change. How ironic, and yet of course completely true.
- littlecranky67 3y agoI don't think they mean that Software is hard to change, but "getting/motivating others to change their software specific for our hardware"
- Dalewyn 3y agoSoftware is hard to change, because there is nothing more permanent than a temporary solution. And there are lots of temporary solutions in programming.
- rat9988 3y agoNo it's not related to that principle at all in this context.
- CyberDildonics 3y agoSoftware is hard to change because it is difficult to create and already distributed. I don't think what you said has any relation to the problem.
- flohofwoe 3y agoThe Itanium (as the prime example - and I bet the quote from the interview is at least partly based on the lessons learned from Itanium) failed not because there was no will by programmers to adapt their projects, but because there's simply not enough instruction-level parallelism in general-purpose code. That's not a problem one can simply "fix" by rewriting all software, much less by rewriting all compilers from scratch.
- yvdriess 3y agoCorrection: the lesson is that you cannot exploit the available ILP by static (compile-time) analysis. There is definitely enough ILP to exploit if you do the analysis at execution time, which is what any modern CPU does with register renaming, reorder buffers, dependency tracking etc.
- CoastalCoder 3y agoI think having good optimizing compilers goes a long way. I.e., to the extent they reduce the need for source code to cater to the underlying CPU, less effort is needed to port software to a new CPU. I think GCC and especially LLVM are really reducing the barriers to bringing new CPUs to market. Maybe for GPUs as well because of shader compilers?
- TazeTSchnitzel 3y agoMost hardware is sold with “works with existing software” as a selling point. Most software is sold with “works with existing hardware” as a selling point. Most vendors don't have the luxury of being able tailor both to eachother.
- crote 3y agoYeah, it's a chicken-and-egg problem. You're not going to have any luck selling hardware which performs subpar with existing software, and nobody is willing to adapt software to an obscure hardware platform. We saw the result with Intel Itanium: great concept, absolute failure due to software incompatibility. On the other hand, the PS3's Cell architecture demonstrated that innovative platforms aren't impossible given the right incentives.
- KptMarchewa 3y agoPS3 is probably the only console generation that Sony lost. Not the best example.
- Anarch157a 3y agoThey lost because tge winner of that generation was the Wii, wich won because of it's gimmicky motion controller and good library of party games. Something simmilar is happening now with thw Switch. In both cases, being much cheaper doesn't hurt. But compared to the Xbox, PS3 "won" at the tail end of the generation, I would credit this to the supperior exclusive titles and the sales outside US. In Europe, Japan an South America, Playstation sells a lot more than Xbox. Where I live (Brazil) almost no one buys Xbox. As an anecdote, in 20 years, I met only one person who owned one (a X360) and several who had Playstations. And the X360 owner only had it because she worked at Microsoft and got it as a gift from the company.
- dontlaugh 3y agoIn the UK and US, it was mostly the other way around with the 360 being much more common.
- sylware 3y agoWe reached a point in software were "innovation" is to simplify and to remove, not to add and to complexify. Once, we get a reasonable lean and modular software stack for most usage contexts, we can start to deal with new hardware models with their specific software optimizations. A big mistake from AMD software teams is their worshipping of c++... they should have sticked to plain and simple C (not the gcc/iso extented one), actually I'll one step higher: plain and simple assembly for their hardware.
- nly 3y agoC++ makes writing simple code easier than C. It also makes writing big old messes easier than C. Writing simple, elegant and efficient code is hard. It takes "polish", which usually means not stopping the moment as you have "something that works", going back, refactoring, shaking out those TODO comments...questioning all the assumptions and abstractions you added earlier, etc etc.
- sylware 3y agoI severely disagree, the technical cost of the c++ syntax is beyond anything reasonable. That reason alone is enough to avoid its usage: It is less worse to write and try to keep sane plain and simple C, that to be dependent on a c++ compiler, not to mention that c++ code is no more immune from toxic code than C. Actually, this is the other way around: since the syntax is beyond-reasonable complex, c++ toxic code is way worse than c toxic code. C is a lesser evil than c++.
- JohnFen 3y agoI tend to agree. This wasn't always true, but C++ has grown into a bit of a monster.
- c_crank 3y agoWhat is idiomatic, simple C++ code? Each standard seems to redefine what that looks like.
- okasaki 3y agoProbably because there's thousands of variants of "software" and like 5 for chips.
- crote 3y agoThe most interesting part is that we are also seeing the opposite happen. SoCs are integrating more and more specialized functionality into one chip, rather than depending on external hardware for it. Modern mobile phones essentially have everything except memory and storage in a single chip, the Northbridge died a decade ago, and recent Zen chips can even function without a Southbridge.
- dikei 3y agoYup, and Apple SoC already have the DRAM packaged together with the CPU, only the SSD is left out now.
- corvettez0606 3y agoApple did a lot right with this change to make memory fast. I can see AMD and Intel adopting a similar strategy and putting something like 16 GB of dram on chip. Need more than that? Then add “L2 dram” on an external dimm. 16 GB will cover most people’s use cases and with the ability to add L2 dram the high memory usage cases are covered too. (I remember when you could buy cards with L2 cache on them back in the day. 486 I think had them. This is just taking it to the next level.)
- ZiiS 3y agoAll modem CPUs have L1, L2, and L3 caches. Commonly available consumer chips go up to 144MB already.
- pulse7 3y agoParent is not speaking about cache (L1/L2/L3/...), but about main memory (RAM) of which 16GB would be permanently integrated into the CPU - this would be L1 RAM and of the rest, L2 RAM which would be outside of CPU.
- bee_rider 3y agoI’m not exactly sure why they mentioned it, but in their defense—it is all fundamentally volatile storage, just used differently. Memory of course has a special magical meaning to operating systems, but hypothetically it might make sense to mark L3 cache as memory, and maybe… treat DRAM as swap? Hypothetically!
- uvesten 3y agoFor me, the linked article from IBM research was a good read for some background on chiplets: https://research.ibm.com/blog/what-are-computer-chiplets https://research.ibm.com/blog/what-are-computer-chiplets
- lincpa 3y ago[dead]
- bee_rider 3y agoThe variable memory latencies on their first gen chiplet designed seemed really cool, we need more NUMA in desktop land. I’m sad they have been moving in the opposite direction. OpenMP has all these process pinning environment variables that not enough people bother playing with. Or we could all start writing MPI programs. IMO is is helpful when the ecosystem forces you to explicitly think about communication. Also the universe is constantly telling us that we can have as much bandwidth as we want, but latency is hard and coupled with distance in ways that it won’t let us violate, so we should play along and do more NUMA. Listen to the universe. Ok the last paragraph just might be madness on my part.
- suprjami 3y ago>we need more NUMA As someone who regularly deals with NUMA in high speed networking, I wish the opposite. It's shocking how much crossing a NUMA node just guts performance. 10Gbps becomes 5Gbps. 100Gbps becomes 20Gbps. Your application is too big for a single NUMA node? Sorry, your $80k investment only bought quarter of a fast computer, not a whole fast computer. The other three quarters are useless. CPUs with wide fast interconnects between nodes and no locality to PCIe bus would make this situation much better. If AMD can do it then they'll walk all over Intel in some markets.