-
Notifications
You must be signed in to change notification settings - Fork 505
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
python: trim registration and loading of dialects and passes #1084
Conversation
Nice :) |
I just now found out that the build error is due to the use of the default linker ( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks. I left some notes. I suspect that the C/C++ cross linking thing is actually what is tripping up ld, since what you are doing is introducing a kind of ODR violation.
I don't have time tonight, but if you struggle with this, let me know and I can straighten it out.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Much better - thanks!
Thanks so much, that was spot on! I believe I have separated the C and C++ APIs now, but please let me know if you think more changes are necessary. Locally, using |
In the interest of merging upstream LLVM quickly, a previous patch (7f08169) updated the torch-mlir build to register all dialects and passes through Python bindings. This patch limits the dialects and passes to only those that are used in torch-mlir. Key to this change are the removal of `MLIRPythonExtension.RegisterEverything` and the introduction of a new Python module (`_mlir_libs/_site_initialize_0.py`), where we register the dialects and passes used by torch-mlir.
I wish it didn't rely on such esoteric knowledge to spot such things. But glad it helped regardless :) Thanks for doing the adaptations! Much appreciated. |
@ashay could this be causing the nightly failure and also the
reported on discord ? |
In the interest of merging upstream LLVM quickly, a previous patch (7f08169) updated the torch-mlir build to register all dialects and passes through Python bindings. This patch limits the dialects and passes to only those that are used in torch-mlir. Key to this change are the removal of `MLIRPythonExtension.RegisterEverything` and the introduction of a new Python module (`_mlir_libs/_site_initialize_0.py`), where we register the dialects and passes used by torch-mlir.
* initial docker documentation Signed-off-by: Alexandre Eichenberger <[email protected]> * split README with no redundant place for info Signed-off-by: Alexandre Eichenberger <[email protected]> * update Signed-off-by: Alexandre Eichenberger <[email protected]> * update Signed-off-by: Alexandre Eichenberger <[email protected]> * update Signed-off-by: Alexandre Eichenberger <[email protected]> * update Signed-off-by: Alexandre Eichenberger <[email protected]> * update Signed-off-by: Alexandre Eichenberger <[email protected]> * respond to suggestions Signed-off-by: Alexandre Eichenberger <[email protected]> * specify that onnx-mlir.py script generates only code suitable to be exec in Linux and/or Docker env Signed-off-by: Alexandre Eichenberger <[email protected]> * fix checkdocs Signed-off-by: Alexandre Eichenberger <[email protected]> * responded to review suggestion on onnx-mlir --help Signed-off-by: Alexandre Eichenberger <[email protected]> * use ONNX-MLIR everywhere Signed-off-by: Alexandre Eichenberger <[email protected]>
* Add check-onnx-backend to Mac CI. (llvm#1069) * Add check-onnx-backend to Mac CI. Signed-off-by: Ettore Tiotto <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * Additional Docker help and split README for easier reading (llvm#1084) * initial docker documentation Signed-off-by: Alexandre Eichenberger <[email protected]> * split README with no redundant place for info Signed-off-by: Alexandre Eichenberger <[email protected]> * update Signed-off-by: Alexandre Eichenberger <[email protected]> * update Signed-off-by: Alexandre Eichenberger <[email protected]> * update Signed-off-by: Alexandre Eichenberger <[email protected]> * update Signed-off-by: Alexandre Eichenberger <[email protected]> * update Signed-off-by: Alexandre Eichenberger <[email protected]> * respond to suggestions Signed-off-by: Alexandre Eichenberger <[email protected]> * specify that onnx-mlir.py script generates only code suitable to be exec in Linux and/or Docker env Signed-off-by: Alexandre Eichenberger <[email protected]> * fix checkdocs Signed-off-by: Alexandre Eichenberger <[email protected]> * responded to review suggestion on onnx-mlir --help Signed-off-by: Alexandre Eichenberger <[email protected]> * use ONNX-MLIR everywhere Signed-off-by: Alexandre Eichenberger <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * add verify for concat Signed-off-by: Ethan Wang <[email protected]> * check all inputs Signed-off-by: Ethan Wang <[email protected]> * Support filtering out lit tests based on targets (llvm#1087) Currently we ignore what targets llvm was built for in the lit tests, but recent changes to onnx-mlir explicitly initialize the available targets. This makes the corresponding change to the lit configuration, so that we can filter out the lit tests based on the available targets. Signed-off-by: Stella Stamenova <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * Switch URLs to use main instead of master (llvm#1094) Signed-off-by: Charles Volzka <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * Fix MacOS build badge (llvm#1092) Signed-off-by: Gong Su <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * onnx-mlir.py warning about binary output (.so and .jar) (llvm#1090) not directly usable if host is not Linux Signed-off-by: Gong Su <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * Make the doc example obey ONNX_MLIR_BUILD_TESTS (llvm#1083) * Make the doc example obey ONNX_MLIR_BUILD_TESTS Currently, ONNX_MLIR_BUILD_TESTS controls EXCLUDE_FROM_ALL, however, the targets added through add_executable will always build. We follow the llvm pattern and explicitly set EXCLUDE_FROM_ALL in the add_onnx_mlir_executable function if it is set for the directory, so that add_executable targets don't always build. Signed-off-by: Stella Stamenova <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * Explicitly install into lib on all systems (llvm#1088) Signed-off-by: Gong Su <[email protected]> Co-authored-by: Alexandre Eichenberger <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * add check (llvm#1098) Signed-off-by: Tong Chen <[email protected]> Co-authored-by: Alexandre Eichenberger <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * fix typos and add ssh-client to dockerfile (llvm#1096) * fix typos and add ssh-client to dockerfile Signed-off-by: Ethan Wang <[email protected]> * sync doc and script Signed-off-by: Ethan Wang <[email protected]> Co-authored-by: Alexandre Eichenberger <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * Emit print statement only when the verbose option is in effect. (llvm#1097) Signed-off-by: Ettore Tiotto <[email protected]> Co-authored-by: Alexandre Eichenberger <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * format & refine code by request Signed-off-by: Ethan Wang <[email protected]> * Support older versions 6, 11, 12 for Clip Op (llvm#1100) Signed-off-by: Tung D. Le <[email protected]> Co-authored-by: Alexandre Eichenberger <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * using front to get first input Signed-off-by: Ethan Wang <[email protected]> * add 3 lit test for concat verifier Signed-off-by: Ethan Wang <[email protected]> * add newline Signed-off-by: Ethan Wang <[email protected]> * Add check-onnx-backend to Mac CI. (llvm#1069) * Add check-onnx-backend to Mac CI. Signed-off-by: Ettore Tiotto <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * Additional Docker help and split README for easier reading (llvm#1084) * initial docker documentation Signed-off-by: Alexandre Eichenberger <[email protected]> * split README with no redundant place for info Signed-off-by: Alexandre Eichenberger <[email protected]> * update Signed-off-by: Alexandre Eichenberger <[email protected]> * update Signed-off-by: Alexandre Eichenberger <[email protected]> * update Signed-off-by: Alexandre Eichenberger <[email protected]> * update Signed-off-by: Alexandre Eichenberger <[email protected]> * update Signed-off-by: Alexandre Eichenberger <[email protected]> * respond to suggestions Signed-off-by: Alexandre Eichenberger <[email protected]> * specify that onnx-mlir.py script generates only code suitable to be exec in Linux and/or Docker env Signed-off-by: Alexandre Eichenberger <[email protected]> * fix checkdocs Signed-off-by: Alexandre Eichenberger <[email protected]> * responded to review suggestion on onnx-mlir --help Signed-off-by: Alexandre Eichenberger <[email protected]> * use ONNX-MLIR everywhere Signed-off-by: Alexandre Eichenberger <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * Switch URLs to use main instead of master (llvm#1094) Signed-off-by: Charles Volzka <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * Fix MacOS build badge (llvm#1092) Signed-off-by: Gong Su <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * fix typos and add ssh-client to dockerfile (llvm#1096) * fix typos and add ssh-client to dockerfile Signed-off-by: Ethan Wang <[email protected]> * sync doc and script Signed-off-by: Ethan Wang <[email protected]> Co-authored-by: Alexandre Eichenberger <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * Update document (llvm#1077) * create Signed-off-by: Tong Chen <[email protected]> * delete HowTOAddAnOperation.md Signed-off-by: Tong Chen <[email protected]> * modify testing Signed-off-by: Tong Chen <[email protected]> * create Signed-off-by: Tong Chen <[email protected]> * delete HowTOAddAnOperation.md Signed-off-by: Tong Chen <[email protected]> * modify testing Signed-off-by: Tong Chen <[email protected]> * fix Signed-off-by: Tong Chen <[email protected]> * create Signed-off-by: Tong Chen <[email protected]> * add comment Signed-off-by: Tong Chen <[email protected]> * delete HowTOAddAnOperation.md Signed-off-by: Tong Chen <[email protected]> * modify testing Signed-off-by: Tong Chen <[email protected]> * fix Signed-off-by: Tong Chen <[email protected]> * create Signed-off-by: Tong Chen <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * Update LLVM level (llvm#1095) * Update LLVM level to 700997a Signed-off-by: Ettore Tiotto <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * Pass a type converter to all ONNX operations. (llvm#1102) Signed-off-by: Ettore Tiotto <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * Nuke KrnlDummyCastOp now that we use MLIR's UnrealizedConversionCastOp (llvm#1103) * Nuke KrnlDummyCastOp now that we use MLIR's UnrealizedConversionCastOp Signed-off-by: Ettore Tiotto <[email protected]> * Remove a dependency in src/Dialect/Krnl/CMakeList.txt. Regenerate docs via 'ninja onnx-mlir-docs'. Signed-off-by: Ettore Tiotto <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * Add --emitObj option to onnx-mlir (llvm#1104) Signed-off-by: Ettore Tiotto <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * fix warnings (llvm#1093) Signed-off-by: Ian Bearman <[email protected]> Co-authored-by: Stella Stamenova <[email protected]> Co-authored-by: Alexandre Eichenberger <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * Add -march option to onnx-mlir (llvm#1107) Signed-off-by: Ettore Tiotto <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * Fix Doc spelling and broken links, removed warnings about using main (llvm#1106) * removed warning about main vs master in CONTRIBUTING, fixed links and spelling mistakes Signed-off-by: Alexandre Eichenberger <[email protected]> Signed-off-by: Ethan Wang <[email protected]> * Update BuildONNX.md Signed-off-by: Ethan Wang <[email protected]> Co-authored-by: Ettore Tiotto <[email protected]> Co-authored-by: Alexandre Eichenberger <[email protected]> Co-authored-by: Stella Stamenova <[email protected]> Co-authored-by: Charles Volzka <[email protected]> Co-authored-by: gongsu832 <[email protected]> Co-authored-by: chentong319 <[email protected]> Co-authored-by: Tung D. Le <[email protected]> Co-authored-by: Ian Bearman <[email protected]>
In the interest of merging upstream LLVM quickly, a previous patch
(7f08169) updated the torch-mlir build to register all dialects and
passes through Python bindings. This patch limits the dialects and
passes to only those that are used in torch-mlir.
Key to this change are the removal of
MLIRPythonExtension.RegisterEverything
and the introduction of a newPython module (
_mlir_libs/_site_initialize_0.py
), where we registerthe dialects and passes used by torch-mlir.