Thanks for the RFC!
I’m supportive in general of finding a place to start collaborating upstream on some of these important aspects.
Some questions about the RFC:
- Scope of the dialect: in general we need to be cautious about “kitchen sink” dialect. Dialects (at least upstream) should be “small” and well scoped in my opinion (experience of
stdis still recent). Not scoping a dialect well enough is a magnet to easy addition of anything. - The naming: I’m not sure about having “ML” in the name. As long as you don’t have first class support for things like gradients and optimizers, what is specific to ML? Is there a more descriptive name for what the dialect entails?
Reading this paragraph emphasizes my previous point even more: we would need to be able to move “fast and incrementally” in this space, but to be able to do this we need some more clear scope.
When you write It may go beyond this initial ml_program dialect when orthogonal concepts are identified I am slightly concerned about some lack of orthogonality during the development. I’m not in favor of just creating a “namespace” widely scope so that orthogonal concept can be introduced quickly in the same place, bypassing RFCs and such.
(this goes with what Stephen was mentioning about “Perhaps these could live in their own dialects?”)