Part 1
First of all, I have to say that digging through LLVM source code is simply disgusting - its code tree is monstrously huge and parts from nvptx scattered across the most unexpected places. So to extract needed tables I just stuck libLLVM.so.21.1 (btw size 135Mb) into IDA Pro and reused the same IDC scripts for cicc, just removed strings decryption. Typical open-source, yeah
Mlir
The proof is left as an exercise for the reader very simple - just grep strings like mlir/linalg/affine etc in cicc binary. Let's assume that we have some way to load LLVM bc into cicc - even in this case, we wouldn't be able to force it to generate more efficient PTX for code containing MLIR
Btw this is not first case when serious amount of real code generation was done without mlir - for example vectorization for RISC-V too. And somewhere on the side, you’re bound to hear that argument from clueless managers: "if even Oprah Microsoft uses a monorepo, you must be happy using one too"
Builtins
Notably, neither Nvidia nor LLVM documented the list of supported builtins. "doc is also quite good in my opinion", of course
Intrinsics
Conclusion
| Category | cicc | Clang (NVPTX) |
|---|---|---|
| Builtins | 870 | 715 |
| Intrinsics | 3183 | 1998 |
Комментариев нет:
Отправить комментарий