To all those with complier knowledge, what are your thoughts on MLIR?
It looks like it's quite specialized for accelerated hardware. It's apparently been around for six years now, but (as a not-complier-versed person), I've just learned about it in the context of the Mojo language. I know arnetheduck has worked on nlvm. I'm curious, what you guys think of this?
It's yet another quirky adhoc syntax soup that happens to have been used for compilers. These things are hardly interesting and work thanks to brute force and millions of dollars having been put into them.
NIF is completely superior.
But I'm as biased as possible. ;-)
Chris Lattner saw MLIR as a necessity for data parallel architectures and heterogeneous compute. A higher level of abstraction for GPGPU, Tensor based Accelerators, and not being vendor specific. His mission of "democratizing compute". Basically bypassing Nvidia's extremely secretly guarded PTX level optimizations that some folks DeeplySought and reverse engineered that stunned the world. It also breaks the CUDA swamp, and throws GPU compute open. Even for CUDA experts, Tensor core architecture changing significantly from one gen of Nvidia GPUs to the next would fundamentally break code, and writing optimized ML kernels was becoming like the days of hand coded assembly. MLIR broke that.
It is impactful for HPC too apart from ML/AI.
It was not really meant for CPU bound traditional programming languages and applications. LLVM is plenty good for it.