iree-org / iree

A retargetable MLIR-based machine learning compiler and runtime toolkit.
http://iree.dev/
Apache License 2.0
2.85k stars 614 forks source link

Transform Dialect pipelines set translation_info to None #17379

Open Groverkss opened 6 months ago

Groverkss commented 6 months ago

There seems to be a requirement in transform dialect lowering strategies to set the pass pipeline in translation_info to None https://github.com/iree-org/iree/blob/main/compiler/src/iree/compiler/Codegen/Common/LowerExecutableUsingTransformDialect.cpp#L60 .

I checked, and the only place this pass pipeline is set to None is actually a single transform dialect op which doesn't even document this behaviour at all.

https://github.com/iree-org/iree/blob/main/compiler/src/iree/compiler/Codegen/LLVMGPU/TransformExtensions/LLVMGPUExtensions.cpp#L96

MaheshRavishankar commented 6 months ago

Yeah this is a requirement. Transform dialect is used in a couple of ways today (a) Add the translation_info and lowering_config attributes to pick a particular pipeline/config to use (b) Actually lower the dispatch to scalar/vector code.

The only way to make this work as far as I can see is to have (b) set the translation_info to None which will skip the C++ pass pipelines. If there is an op that we could use to do this, that would be great, but adding transform dialect ops are scary to me, so I didnt do it. Instead I added a check for it to fail compilation which is what you are hitting.