I am thrilled to see both Mojo reach 1.0 and the Mojo compiler open-sourced with Apache 2.0 licensing!
However, I am not thrilled that the device codegen has not been included in the open-source release without explanation, especially since I contributed support for AMD CDNA2 targets. I understand there are business interests involved, but the Mojo website says “Mojo is fully open source under the Apache License 2.0” which is manifestly not the case.
Can Modular provide an explanation for the missing device codegen from the OSS repo, and clarify whether or not it will be open-sourced in the near future, at least for NVIDIA and AMD targets?
In this previous post, I described some of our motivation for how we were reorganizing accelerator-specific code. Mojo is a general-purpose language, and the foundation upon which we build MAX. Before 1.0, we wanted to establish what was part of the core language and what belonged in libraries layered on top of that.
I want to be clear: all code that was Apache 2.0 before 1.0 and the open-sourcing of the compiler and tooling internals is still available under Apache 2.0. There is no way we would (or practically could) re-license code that has been contributed by the community under Apache 2.0. That includes all of your contributions to bring up CDNA2 functionality, and we’re grateful for those. The use of that is no more restricted today than when it was contributed. We’ve just added more code into open source and Apache 2.0.
We have consolidated accelerator functionality under MAX to resolve layering issues we’d historically encountered, and to prevent this from being split across multiple libraries. Again, the Mojo code for this is still publicly available.
We want people to have an even easier time for bringing up new hardware with Mojo and MAX, and we announced at ModCon that we’ll be opening up more of the MAX internals over time. We’re excited to share more specifics in the coming months, and we appreciate your patience in the meantime.
It was not clear to me from your earlier post that device codegen itself was being moved under the MAX umbrella, so that led to a significant disappointment on my part when I saw the Mojo compiler OSS release.
I look forward to hearing more details on accelerator backends when you can share them. For now, I have to put my contributions to the Mojo ecosystem on pause until there’s greater certainty about device compilation being part of the open-source KGEN.