MLIR
Why MLIR?
MLIR provides a solid and tested framework to build custom IR and run passes. Among several other capabilities, it’s also in already in tree and used by Flang to build FIR.
Rustバインディング
llvm-sys相当かと思いきや、まだほとんどなにもない
リージョンがある
'acc' Dialect OpenACC (open acceleratorsの略) は、クレイ、CAPS、NVIDIA、そしてPGIによって開発された並列コンピューティングのための標準の一つである。 この標準は、ヘテロジニアスなCPU/GPUシステムの並列プログラミングを単純化するために設計された。
'affine' Dialect
'amdgpu' Dialect
'amx' Dialect Intel Advanced Matrix Extensions (AMX)
'arith' Dialect basic integer and floating point mathematical operations
'arm_neon' Dialect
'arm_sve' Dialect
'ArmSME' Dialect
'async' Dialect - stackless corountine
'bufferization' Dialect - converting the tensor type to the memref type.
'cf' Dialect - low-level, i.e. non-region based, control flow constructs
'complex' Dialect - complex numbers creation and arithmetic ops.
'dlti' Dialect
'emitc' Dialect - Dialect to generate C/C++ from MLIR
'func' Dialect - This dialect contains operations surrounding high order function abstractions, such as calls.
'gpu' Dialect
'index' Dialect - index type models target-specific values of pointer width, like intptr_t.
'irdl' Dialect - IR Definition Language
'linalg' Dialect
'llvm' Dialect - LLVMの機能をMLIRから使えるようにする
'math' Dialect - mathematical operations on integer and floating types
'memref' Dialect
'mesh' Dialect
'ml_program' Dialect - Machine-Learning program, as created from common ML frameworks, such as TensorFlow, PyTorch, JAX, etc.
'nvgpu' Dialect
'nvvm' Dialect
'omp' Dialect
'pdl_interp' Dialect
'pdl' Dialect
'quant' Dialect
'rocdl' Dialect
'scf' Dialect - structured control flow (if, for, whileなど)
'shape' Dialect
'sparse_tensor' Dialect
'tensor' Dialect
'ub' Dialect - The poison operation materializes a compile-time poisoned constant value to indicate deferred undefined behavior.
'vector' Dialect
'x86vector' Dialect
Builtin Dialect
OpInterface definitions
SPIR-V Dialect
Tensor Operator Set Architecture (TOSA) Dialect
Transform Dialect
リンク