Comment by zoogeny
2 years ago
> new hardware architecture have to be stable enough that the new language can become popular
The reason why my mind is on this topic is an interview with Jim Keller where he mentioned that when he designed modern CPUs he was conceptually thinking of their front-end as a machine that processes C code (or, the kind of assembly that a compiler made to compile C would generate). Internally the CPU does all kinds of black magic that is provably correct to rewrite that machine code into a form that is performant on modern architectures (e.g. out-of-order processing, pre-fetching). So you end up with things like the Java JVM optimizing high-level languages while also trying to make itself look like a C program, and the hardware providing a front-end to make itself look like a C-processing machine. A bit funny when you think about it. But it all works since this implicit contract has been stable for decades.
But that contract doesn't exist for GPUs or other new kinds of hardware. A lot of modern silicon is "system-on-a-chip" kinda stuff, with multiple CPUS, some high performance and some not, AI accelerator/neural engines, dsps, media endocders/decoders, etc. That trend appears like it will continue.
Keller mentions that Nvidia got ahead of it with Cuda. They presented a C-like interface in front of their GPUs and then just threw insanely complex hardware in front of it and used that to hide the horror spread between the hardware and their drivers. But nowhere else does such a contract exist (and arguably, it doesn't exist even for Nvidia who seem to just barely be holding it together). Now that Keller is designing these SoC he is confronted with the new-normal of no pre-defined contract between software and hardware.
It is a daunting task to face this new reality. But I really wish I saw some evidence of people tackling it from first principles. To sit down, look at the new architectures and dream of new OS paradigms and the new languages that could support it. Because I strongly doubt that such a re-imagining would look anything like Rust.
No comments yet
Contribute on Hacker News ↗