▲ | jimmaswell 4 days ago | |||||||||||||||||||||||||||||||||||||
I wonder if we could make an LLM or other modern machine learning framework finally figure out how to compile to Itanic in an optimized fashion. | ||||||||||||||||||||||||||||||||||||||
▲ | duskwuff 4 days ago | parent | next [-] | |||||||||||||||||||||||||||||||||||||
No. The problems involved are fundamental: 1) Load/store latency is unpredictable - whenever you get a cache miss (which is unpredictable*), you have to wait for the value to come back from main memory (which is getting longer and longer as CPUs get faster and memory latency roughly stays the same). Statically scheduling around this sort of unpredictable latency is extremely difficult; you're better off doing it on the fly. 2) Modern algorithms for branch prediction and speculative execution are dynamic. They can make observations like "this branch has been taken 15/16 of the last times we've hit it, we'll predict it's taken the next time" which are potentially workload-dependent. Compile-time optimization can't do that. *: if you could reliably predict when the cache would miss, you'd use that to make a better cache replacement algorithm | ||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||
▲ | o11c 4 days ago | parent | prev [-] | |||||||||||||||||||||||||||||||||||||
No, VLIW is fundamentally a flawed idea; OoO is mandatory. "We need better compilers" is purely Intel marketing apologia. | ||||||||||||||||||||||||||||||||||||||
|