Thread with 6 posts
jump to expanded postgodβ¦ MLIR is so cool. i love this IR. it can do so much. it's like βyo dawg i heard u liked IRs so i put an IR in your IR so you can compile while you compileβ and this is what makes it awesome
@hikari It has some very cool ideas. However, as someone who tried to use it without LLVM (StableHLO for model serialization), I think a lot of it is in practice seriously underspecified.
Especially the bitcode format which only has very incomplete and outdated documentation, but also some operations are not documented at all.
ONNX has its disadvantages and missing features, but I actually like how well documented and standardized the parsing is, while providing a similar programming model.
@hikari That of course assumes ML usecases. MLIR is more general though I'm not sure I've seen anybody use it for something else?
@bas i'd really like to try using it for non-ML stuff! i kinda dismissed it out of hand the first time i saw it because i wasn't interested in ML stuff at the time, but having learned a bit more about it now, i can appreciate how it might have general applications.
re: bitcode, i'm not surprised, the llvm bitcode is also allegedly a nightmare
@bas re: ONNX, i happen to know quite a bit about it now. the fact it's just protobufs does provide reliable serialisation and deserialisation, it is indeed a nice feature
@bas oh right the underspecified thing is another thing that applies to LLVM IR too. it's actually infuriating how badly documented that IR is. for MLIR, i don't know, i'm more optimistic about it because of its meta-IR status. i think it'll end up better-documented eventually out of necessity