I’ll look for other examples of symbolic dimensions, but here’s a simple graph that uses them. In that case vector_width is a symbolic dimension that can be variable in length at runtime, but must match between the two input tensors when the graph is used. We can do algebraic checks on these dimensions, and I know there are more complex examples of their use in other open source code. From your description, I take these as “runtime values with guards”.
The file that I was referencing (and maybe forgot to link) is max/kernels/src/Mogg/MOGGKernelAPI/MOGGKernelAPI.mojo. That’s our primary registry for MAX kernels, and they all branch off from there.
For specialization, we largely lean on compile-time parameterization, with shapes and other compile-time values provided from the graph compiler. Unless I’m terribly mistaken or out of date with my information, we’re generally explicit with this specialization and don’t rely on a cost model / autotuning at the graph compiler or kernel level. We do autotuning ahead of time on hardware / shapes to provide optimized kernel parameters.
For general fallbacks, I think that’d be welcomed and there is at least one feature request for this. We just haven’t gotten to implementing the various paths where this would be used.