4 ms·
There's a ton of innovation happening right now for machine-learning optimized ISAs. And RISC-V has excellent support for extensions. The funniest part of Itan
by greglindahl 8y ago
There's a ton of innovation happening right now for machine-learning optimized ISAs. And RISC-V has excellent support for extensions.
The funniest part of Itanium for me was that it was supposedly helpful to compilers. Yet the compiler people I knew did not like to use the "helpful" parts of the ISA. The loop unrolling stuff got in the way of software pipelining, for example.
Mill is an example of a processor that's actually helpful to compilers, because its design is being led by an actual compiler person.
- vbezhenar 8y agoI wonder how did it happen? Intel has its own compiler, surely they could ask their compiler gurus to help with ISA design.
- greglindahl 8y agoI don't know who they asked, but it's safe to say that compiler gurus are a diverse lot. The particular concern I mentioned (software pipelining) might not be something that the Intel compilers do.
- gaius 8y agoIntel has its own compiler, surely they could ask their compiler gurus to help with ISA design. Well that kinda was the concept - but they greatly underestimated the difficulty of producing a "sufficiently smart compiler". If VLIW had worked it would have greatly simplified processor design, no (or at least much less) need to worry about cleverly handling out-of-order execution for example. That in turn would have meant e.g. bigger L1 caches because you would have the die space to play with, or more execution units, or whatever. It didn't work out and Intel did make some stupid decisions along the way (also underestimating the importance of backwards compatibility with existing code - not only binaries, but you also needed to be able to compile existing source well) but it was worth a punt, and maybe will be again someday - maybe a DL-based compiler could produce good VLIW code? Maybe a new (or old) language will be more amenable to VLIW compilation than C?
- pjmlp 8y ago> Maybe a new (or old) language will be more amenable to VLIW compilation than C? I would say certainly, given Fran Allen's point of view on C compilers.
- gaius 8y agoA workflow I'd like to see: you write your code and ensure that it is functionally correct, all the tests pass. Then you go home and overnight, some ML/DL/NN whatever tool works on your code to find the best way to compile it (fastest binary that passes all tests). Repeat this every day for the duration of the project. At the end your artifacts are the source code, the shippable binary, and a model perfectly trained to produce the latter from the former. It's a shame that Itanic was too soon to take advantage of ML going mainstream.
- wolfgke 8y agoIf you don't have any idea how to solve your hard problem, just claim that magic exists and call this magic Machine Learning/Deep Learning/Neural Network to make it sound more scientific.
- bpye 8y agoIt is also problematic to need to recompile code for every different micro architecture. Maybe it could be done if the OS shipped with some sort of JIT/AOT compiler and binaries were all something like LLVM IR.
- djsumdog 8y agoBut it's not just compiler writing right? With long instruction words, you also have to write all the scheduling algorithms as well. I thought that was just something compiler authors didn't want to deal with.
- greglindahl 8y agoThe high performance compilers I'm familiar with do a lot of worrying about instruction scheduling. Just because you've got an out-of-order processor doesn't mean it's effective to not bother with scheduling.
- blattimwind 8y agoDynamic instruction reordering allows higher performance for a lot of real-world code than static instruction scheduling.
- ethbro 8y agoI think that's close to a truism of system design: the more things you simultaneously require a developer to be an expert at to use your system, the fewer developers who will choose to use your system. Somewhere around 3 disciplines? Nobody's using your system. Such was the paradoxical brilliance of SQL and Excel. By limiting knowledge scope, they greatly enhanced utilization (and thereby utility).