What I meant is that in both cases the company threw out good design practices chasing a single metric, higher clocks in the case of Intel, higher core count per TDP in the case of AMD, and both paid/are paying for it. In both cases you get chips that run hotter, suck more power, and give less IPC.
It's just that in my opinion, AMD didn't fuck as bad as Intel. AMD has design and support problem, but has a viable design which can be saved and even work nicely in the long term. Intel dig themselves in a hole, and there was nothing that could be done to save Netburst back then.
Specially Intel did threw good design practice: they didn't let anything stand in the way to the GHz race.
- They used an ultradeep pipeline, just because that helps making smaller shorter steps and thus higher clock counts - but ultra-deep pipeline are problematic and are prone to catastrophic stalls. (Hence they were forced to develop HyperThreading just to compensate for this. Which brought its own set of problem as mentioned before). Just to get a bigger GHz they moved to something which can only work worse.
- They completely ignored anything else: power consumption, thermal output. (To their defense, nobody used to give a fuck about it then neither. That era was similar regarding those metric as gaz guzzling SUVs where to mileage. Transmeta had a hard time persuading everybody that a ultra-low-power/low-thermal output CPU has actual use cases, even if that meant slightly less powerful than Intel chips). The problem is for the netburst architecture to shine, you have to push past 10GHz (according to Intel's initial plan). But if your chip needs to be powered by a mini nuclear reactor, and output enough heat to not only cook your diner but even bake the china on which to serve said diner, that won't be easy to achieve without the whole thing melting or even achieving fusion - if you pardon my understatement. For Netburst to succeed, Intel needed to jump from 130nm to 14nm over a few months and make vapo-chill cooling mainstream. That didn't happen. So Netburst was useless from the begin.
- They completely ignored even the tendency in software evolution. Concept behind Netburst would be good to run a single (repetitive, non branching) task or just a few threads as fast as possible. It might have made some sense given the designs of some games back then. But it didn't make any sense given the evolution of the whole ecosystem: multitasking got progressively more popular (and with the jump from the DOS-based monstruosity WinME to the NT-based WinXP: even the home user version of microsoft's OS got some decent multitasking support). Even if the task run is purely sequential and single threaded, there are progressively more such tasks running concurrently. (Cue-in jokes when the first consumer-level quad-core appeared: you need 1 core for the slow Microsoft OS, 1 core all the mandatory antivrus and similar protection, 1 core for all the crapware/spyware/malware that has infected the machine anyway, and one last 4th core to finally get things done. It's a joke, but it actually shows the global tendency)
Meanwhile, there's nothing wrong in Bulldozers. There aren't any fundamental argument against half-cores. They can be seen as a type of evolution beyond hyperthreading. They make sense given the long term tendency in software development (more and more multiprocessing and multithreading). They still have a clever fall back mode (shut one pipeline, fuse the half cores, boost the clock speed, and have the module work as a glorified super-overclocked really-superscalar (2x the resources) single core, instead of 2 half-cores). They are much more efficient when in two half-core mode compared to HT (HT: is a shared everything solution: The two threads have to share a single pipeline. And use the same set of integer-/float-/etc.- units. The theoretical maximal IPS count is the same with or without HT. You just can keep the CPU more busy in case of stalls. It just make better use of the ressources. Meanwhile Half-cores have each their own pipeline and doubles the set of interger units. It can really process more threads faster). And although it comes at some increased complexity (HT: only adds extra logic at the beginning, in order to feed the pipeline and processing units from 2 different threads instead of one while everything else is shared. Meanwhile Bulldozzer's half cores also require a second pipeline per module and doubling the integer units), its still a lot less silicon than putting two separate core, and the extra integer units do come handy when in single-unique-core overclocked mode.
The whole architecture DOES MAKE SENSE (On the paper at least).
Okay it serve as an excuse to write "8 halfcores" instead of "4 core" or "4 modules". So it helps the marketing department writing a bigger number for some metric. But under the hood, a 4 modules/8 halfcores bulldozzer chips makes much more sense than cramming 8 separate cores on a huge die. 8 real cores would have been the equivalent of sacrificing everything for a single metric, but what AMD did is much more clever, though in my opinion they should NOT have bragged that much with this number "8".
Most of the problems bulldozzer is encountering are completely orthogonal to the choices behind the bulldozer architecture.
- The only actual problematic consequence is that modules use more transistors and silicon real-estate because of the doubled structures for the halfcores.
- software support is something which has nothing to do with bulldozzer.
- also AMD is late in the process: they still produce 40nm chips, when intel is producing 32nm and introducing 22nm with IvyBridge. Given *THAT* it's actually amazing what they have managed to put as performance until now.
And having good Linux support really doesn't help when more than 90% of your market is NOT running Linux, you might as well say "Well if the world switched to netBSD all the problems would disappear!" because the world isn't gonna switch to Linux or NetBSD thanks to all the mission critical programs that are Windows only and will never be ported.
You know, there's this tiny little unnoticed niche market called "servers" and "clusters" (a.k.a.: most of the stuff you connect to when you click on the blue or orange icon to visit teh interwebs). Linux and other unices are *kings* in these sectors.
AMD have always offered interesting hardware, and even bulldozer has an interesting cost/performance ballance for some tasks.
I mean, there are even people considering ARM even if it is underpowered, just because the ultra low thermal/power limits are interesting under some circumstances.
By your logic 64bits (AMD64) wouldn't have caught on, because it needs special support and only Linux supported it when it got introduced, it wasn't supported by mainstream Windows XP. In practice Opterons got quite a success in several server use cases.
And while I agree that theoretically the problems could be partially fixed by the scheduler, in reality MSFT has made it clear they WILL NOT FIX in ANY version of their OS except...Windows 8. Considering Windows 8 {...} you again have the NetBSD problem
Appart from an experimental Windows XP 64 (whose driver support was even more catastrophic than Linux), microsoft didn't introduce mainstream 64bits support until Windows Vista, which was a comparable huge catastrophe by itself. Still AMD64 caught on and even forced Intel to consider it as a possible 64bits evolution instead of their Itanic attempts. All this thanks to the above-mentioned tiny niche easy to neglect "servers and clusters" market. (a.k.a.: a huge part of the internet and of the universities and research labs).
Yup, in 2012 we still haven't seen the mythical "year of Linux on the Desktop". But on the other hand, the "year of Linux on everything else" has already come and passed since long time ago.
The only significant difference is that AMD64 chips weren't much disadvantaged when running 32bits. All the extra features (more registers, bigger address space, etc.) were sitting idle. It was simply unused silicon. And they were competing with netburst which, as said before, basically dug their own grave.
Whereas running bulldozer on non-supporting OSes takes a performance hit.
they were stupid enough not to give MSFT the heads up as to what was going on
AMD announced and published everything well in advace. They even had linux support in kernel 2.6.30 (which is opensource and could be used as example implementation for anyone interested), before even the first bulldozzers hit the market.
It was just Microsoft being a little bit lazy and using yet another obsolescence strategy to force people to move toward their latest shit.
they've locked themselves into a path where the most hated Windows OS since MS Bob is the ONLY hope they have...
Well, that and the handful machines you interact with when you type https://www.google.com/search?q=porn in your browser and click on the various links.
My personnal opinion is still "don't underestimate the impact of Linux in the server/cluster world". Opteron is already popular there. And bulldozer fits nicely a lot of use cases.
(For example: web servers serving lots of dynamic content. webserver daemons tend to use multi-threading to serve answers, treating each request in parallel to lower latency. So processors able to run lots of threads are welcome (Sun SPARC Niagara are other examples). Now, serving dynamic content might require some processing omph (to run PHP...) so ultra-low-power multicore ARM won't be that much advantaged. Bulldozer start to look an interesting possibility and doesn't cost that much. Thanks to the modularity of AMD hardware you can even try building machines using cheap desktop-grade processors on AM3+ server-grade motherboard)