pytorch
909b7ca9 - [torchgen] Move Executorch codegen logic into torchgen (#90806)

Commit
2 years ago
[torchgen] Move Executorch codegen logic into torchgen (#90806) ## Codegen entry point Main logic and Executorch codegen entry: `gen_executorch.py`. `RegisterCodegenUnboxedKernels.cpp`: ```cpp register_operators({ Operator( "aten::add.out", [](EValue** stack) { EValue& self = *stack[0]; EValue& other = *stack[1]; EValue& alpha = *stack[2]; EValue& out = *stack[3]; const at::Tensor & self_base = self.to<at::Tensor>(); const at::Tensor & other_base = other.to<at::Tensor>(); const at::Scalar & alpha_base = alpha.to<at::Scalar>(); at::Tensor & out_base = out.to<at::Tensor>(); EXECUTORCH_SCOPE_PROF("native_call_add.out"); torch::executor::aten::add_outf(self_base, other_base, alpha_base, out_base); }) ); ``` `Functions.h`: ```cpp namespace torch { namespace executor { namespace aten { // aten::add_outf(Tensor self, Tensor other, Scalar alpha, *, Tensor(a!) out) -> Tensor(a!) TORCH_API inline at::Tensor & add_outf(const at::Tensor & self, const at::Tensor & other, at::Scalar alpha, at::Tensor & out) { return at::add_outf(self, other, alpha, out); } } // namespace aten } // namespace executor } // namespace torch ``` * Unit tests: `test_executorch_gen.py` CI job in next PR. Pull Request resolved: https://github.com/pytorch/pytorch/pull/90806 Approved by: https://github.com/ezyang
Author
Committer
Parents
Loading