Gentoo Linux Drops IA-64 (Itanium) Support – Gentoo Linux
gentoo.org
gentoo.org
This is the Achilles Heel of any VLIW architecture. A Sufficiently Smart Compiler gets outdated with a new chip revision. The previously compiled binary files that worked fast on a previous revision of the architecture, start to work slowly on newer chips.
Why not? (Apart from the difficulty of writing a sufficiently general sufficiently smart compiler)
I'm now imagining a world where Itanium took the place of RISC-V and we had a new generation of custom chips based on it.
Note that I vaguely remember having read somewhere that EPIC isn't "true" VLIW (whatever that means), unlike what you can find in some camera SoCs (e.g. Fujitsu FR-V).
Well IIRC, the amount of execution units presented architecturally are not actually reflected to what is available internally. This was done to allow them to increase the number units under the hood without breaking backward compatibility (or is it forward compatibility in this case). At which point, you still are going to need scheduling hardware and all that jazz.
That said, to my limited understanding, all processors are internally VLIW, it's just hidden behind a decoder & scheduler that exposes are more limited ISA so that they don't have to make the trade-off Itanium did.
That said, I really wonder if it's an issue of compiler was too complicated to bootstrap one good enough to get the ecosystem going, or if it was a truly brainded evolutionary fork. Anyone seem any good hand optimised benchmarks to see the potential of the paradigm?
Btw, it looks like someone started adding IA64 support to QEMU: https://github.com/amarioguy/qemu-itanium
It's good to have that available. Students can examine actual software for hardware that'll soon be recycled.
Maybe GPU usage as well. I know very little about what the ISA of GPUs looks like though.
They moved to SIMD. Not sure what they're doing in their latest as I haven't been paying attention lately.
[1]: https://www.anandtech.com/show/4455/amds-graphics-core-next-...
1) They can adapt to variable-latency memory operations, because they aren't an ahead-of-time compiler.
2) They can adapt to the capabilities of the hardware they're running on, because they ARE the hardware.
In reality of course you don’t even know the precise configuration of the computer, and you don’t know the exact usage pattern of the software. Even if you do profile guided optimization, someone could use the software with different data that causes different branch patterns than in the profile, and then it runs slow. A branch predictor will notice this at runtime and compensate automatically.
Well, I'm clumsy...
Looks like they had no choice.
Seems even NetBSD does not 100% support IA64:
(I don't know what pleasure someone can get out of declaring something "dead", but it's clearly a popular hobby.)