Why the dispatcher matters

An operator such as add or layer_norm is not just one function body. There may be:

  • a CPU implementation
  • a CUDA implementation
  • autograd-related behavior
  • meta or shape-inference behavior
  • special backend variants

The dispatcher is the runtime layer that chooses among those possibilities.

Why this matters for custom work

If you want to add a custom operator, you need more than kernel code. You need to understand:

  • how operator schema is defined
  • how backend-specific kernels are registered
  • how autograd interacts with dispatch

The next post moves to autograd, which is the execution layer behind loss.backward().