Skip to content

Conversation

@shumway
Copy link
Collaborator

@shumway shumway commented Dec 9, 2025

Introduces a polymorphic describe() method to BaseOperator that enables runtime introspection of kernel configurations through a unified interface.

Key changes:

  • Add virtual describe() method to BaseOperator returning Description objects
  • Implement describe() in 6 device operation classes (conv fwd/bwd variants)
  • Create conv_describe.hpp with factory function for ConvDescription
  • Extract type definitions to conv_types.hpp to resolve circular dependencies
  • Add InstanceStringDescription for kernels without full ConvDescription support

Other Improvements:

  • Update tests to use describe() instead of GetInstanceString()
  • Remove circular dependency include from conv_traits.hpp
  • Add ODD_C to ConvFwdSpecialization enum and fix OddC mapping
  • Replace silent fallback in conv_layout() with compile-time error

This provides a foundation for runtime kernel introspection and better tooling support for analyzing and debugging kernel configurations.

Introduces a polymorphic describe() method to BaseOperator that enables
runtime introspection of kernel configurations through a unified interface.

Key changes:
- Add virtual describe() method to BaseOperator returning Description objects
- Implement describe() in 6 device operation classes (conv fwd/bwd variants)
- Create conv_describe.hpp with factory function for ConvDescription
- Extract type definitions to conv_types.hpp to resolve circular dependencies
- Add InstanceStringDescription for kernels without full ConvDescription support

Improvements:
- Add ODD_C to ConvFwdSpecialization enum and fix OddC mapping
- Add missing types and missing elementwise ops
- Add missing layouts to conv_trits.hpp
- Replace silent fallbacks in conv_traits.hpp to compile-time errors
- Remove circular dependency include from conv_traits.hpp
- Update tests to use describe() instead of GetInstanceString()

TODO: The enums for types and elementwise ops should be simplified with
a better design, but that's out of scope for this PR.

This provides a foundation for runtime kernel introspection and better
tooling support for analyzing and debugging kernel configurations.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants