DispatchStub: Improve type mismatch errors (#67880)
Summary:
Currently when you register a kernel implementation to a dispatch stub,
it takes the function signature from the function pointer you pass in.
That means if you get the signature wrong, it fails at runtime with a
link error instead of failing during the compilation. This also means
that when registering nullptr you need to manually specify the type.
Instead, taking the type from `DispatchStub::FnPtr` means quicker time
to signal on failure and better error messages. The only downside is
you need to actually include the DispatchStub declaration which for
some CPU kernels was missing, so I've had to add them here.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/67880
Reviewed By: mrshenli
Differential Revision: D33400922
Pulled By: ngimel
fbshipit-source-id: 2da22f053ef82da5db512986e5b968d97a681617