-
Notifications
You must be signed in to change notification settings - Fork 507
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
Add initial LTC backend #610
Add initial LTC backend #610
Conversation
Thanks for getting the ball rolling on this. Let's do this! |
@antoniojkim - can you comment on when would be a good time to intercept this to implement an IREE backend here? I just want to stay on top of that so we can start work on that as soon as possible! |
Hmm, okay. The build is failing because there isn't a |
I think a good time might be when we have a minimum viable product. Currently, there is a lot of unimplemented functionality here. Once we have something working I think we can start adding builds and tests for it. What I'm planning to do is to create an example vendor backend that subclasses the Torch-MLIR backend and include that to use for testing purposes. I'm thinking that it would also serve as an example for how to create a custom vendor backend that makes use of Torch-MLIR. Thoughts? |
You can see how we do it in the existing JIT IR importer here:
From a bigger picture perspective, we probably shouldn't have the PR CI running on this branch. I think you should be able to configure that by adding something here:
I think something like this: https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#running-your-workflow-based-on-the-head-or-base-branch-of-a-pull-request
|
That seems right to me! Would the example vendor backend be able to actually run anything / how would it do it? If we can run some basic stuff without IREE that would be very useful. |
I don't think it'll be able to run anything useful as that's entirely vendor hardware dependant. But I think we can have some tests that verify that we were able to get proper ATen -> MLIR lowering via the Torch-MLIR backend supplemented with the example vendor backend The big thing to test here I think is the lowering. Secondary to that, we can test that the example vendor's |
Ok, cool! |
* Add initial LTC backend skeleton * Disable CI build and move TorchMLIRPyTorch.cmake
* Add initial LTC backend skeleton * Disable CI build and move TorchMLIRPyTorch.cmake
* Add initial LTC backend skeleton * Disable CI build and move TorchMLIRPyTorch.cmake
* Add initial LTC backend skeleton * Disable CI build and move TorchMLIRPyTorch.cmake
* Add initial LTC backend skeleton * Disable CI build and move TorchMLIRPyTorch.cmake
* Add initial LTC backend skeleton * Disable CI build and move TorchMLIRPyTorch.cmake
* Add initial LTC backend skeleton * Disable CI build and move TorchMLIRPyTorch.cmake
* Add initial LTC backend skeleton * Disable CI build and move TorchMLIRPyTorch.cmake
* Add initial LTC backend skeleton * Disable CI build and move TorchMLIRPyTorch.cmake
* Add initial LTC backend skeleton * Disable CI build and move TorchMLIRPyTorch.cmake
* Add initial LTC backend skeleton * Disable CI build and move TorchMLIRPyTorch.cmake
* Add initial LTC backend skeleton * Disable CI build and move TorchMLIRPyTorch.cmake
* Add initial LTC backend skeleton * Disable CI build and move TorchMLIRPyTorch.cmake
* Add initial LTC backend skeleton * Disable CI build and move TorchMLIRPyTorch.cmake
Adding the initial Torch-MLIR LTC backend. There are still many unimplemented components, but this PR provides the general skeleton for the backend API.
A CMakeLists.txt was included as well to enable the building of the LTC backend. It does currently build. However, as mentioned above, there are still many unimplemented components. So, it will not run.
As per the README:
CC: @henrytwo @ke1337