#pragma once #include #include #include #include #include #include #include namespace torch::jit::fuser::cpu { // Represents a compiled CPU kernel and the metadata necessary to run it struct TORCH_API FusedKernelCPU : public FusedKernel { FusedKernelCPU( std::string name, std::string code, std::vector input_desc, std::vector output_desc, std::vector chunk_desc, std::vector concat_desc, bool has_random); at::Backend backend() const override { return at::Backend::CPU; } void launch_raw(const uint32_t numel, std::vector& arguments) const override { kernel(numel, arguments.data()); } private: std::unique_ptr so_lib; void (*kernel)(uint32_t, void**) = nullptr; }; } // namespace torch::jit::fuser::cpu