5 ms·
Agreed. I think people generally took the wrong lessons from IA-64 (which originated at HP). A) Smart compilers are hard, expensive, and slow to develop B) In
by ethbro 8y ago
Agreed. I think people generally took the wrong lessons from IA-64 (which originated at HP).
A) Smart compilers are hard, expensive, and slow to develop
B) In 2001, source wasn't open enough for a new ISA to succeed. Not sure it would be now either (chicken / egg for big iron workloads: need marketshare for optimization, need optimization for marketshare)
C) Intel absolutely missed the "desktop memory needs are going to expand" trend
- zzzcpan 8y agoI think smart compilers for Itanium is a myth. There is nothing that special about compilers for that architecture. The architecture just wasn't good enough.
- imtringued 8y agoCompilers for VLIW architectures have to implement instruction scheduling at compile time but the information that is required for the best optimizations is only available at runtime.
- zzzcpan 8y agoIt's not really a problem for compiled languages, like C, as they provide enough context for static speculation. But the architecture itself has to be well suited for statically speculated general purpose applications, which Itanium wasn't. Today even Russia have managed to produce a VLIW architecture and a good enough compiler [1]. [1] https://en.wikipedia.org/wiki/Elbrus-8S https://en.wikipedia.org/wiki/Elbrus-8S
- acdha 8y ago> Today even Russia have managed to produce a VLIW architecture and a good enough compiler Do you have a citation for the “good enough” claim? In particular the listed peak performance appears to be below a modern phone's and, far more importantly, we'd need robust benchmark data to know that it's not following the Itanium cycle where a few very favorable, possibly hand-tuned, benchmarks manage to approach the theoretical maximum but most real-world code is substantially lower.
- beagle3 8y agoWhat do you think are the wrong lessons that people take from IA-64? This list seems to be what you think are the "right" lessons, two of which I agree with and one I do not: A) That's still true. The best compilers for Itanium (and other VLIW architectures) are still bad and cannot make good use of the hardware. It's likely to stay that way a long time, unless programming languages and programmers adopt vector semantics ; they haven't yet. B) It's never a good time for a new ISA to succeed, except if it achieves something really novel (like GPUs for parallel processing, or ARM for power consumption). Things can succeed, but unseating an incumbent is exceptionally hard when improvement is marginal if any; Itanium, if a super smart compiler existed when it came out (they still don't ...) would have been a small improvement. It only made sense for Intel to bet on it the way they did was because they were a monopoly (or so they believed). C) I disagree; Intel didn't miss anything. They just thought they were able to dictate where the market is going. And they would have, except for AMD's guts to do AMD64. For a long time, people bought AMD64 to run 64-bit XP, so they could run with 4GB or even 8GB of RAM - even though every single process was 32-bit. But that feature was more-or-less supported also on 32-bit with bank switching and other memory extensions - the actual use of 64 bit programs (with more than 3GB per process) came much, much later.
- ethbro 8y agoThe wrong lesson seems to be "Intel tried to foist something on the market that it didn't want, and AMD listened to the public." Usually by the desktop gaming crowd, who can't define VLIW or discuss the relative merits of different microarchitecture choices. On (A) and (B), I'll forgive Intel (and HP). Circa-1990, I can see it being much more debatable if making hardware (ILP) or software (VLIW) smarter were a more reliable path to performance. Especially with the market being smaller & more centralized (commercial compilers galore!). I mean, hell, AMD made the same wrong call circa-2011 in their GPU arch, no? Thus one of the reasons they ceded ML to the simpler SIMD design Nvida used which was more amenable to creating, e.g., something like CUDA? (correct me if I'm wrong) On (C), my impression was that bank switching and PAE were poorly supported by Windows at the desktop level. Which essentially made it a non-starter for the primary computer market at the time.
- 8y ago