#pragma once #include #include namespace at { namespace native { class QConvoneDNN final { public: C10_API static at::Tensor run_pointwise( at::Tensor act, // contains quantized values but not QTensor double act_scale, int64_t act_zero_point, at::Tensor weight, // contains quantized values but not QTensor at::Tensor weight_scales, at::Tensor weight_zero_points, std::optional bias, torch::List stride, torch::List padding, torch::List dilation, int64_t groups, double output_scale, int64_t output_zero_point, std::optional output_dtype, std::string_view attr, torch::List> scalars, std::optional algorithm); C10_API static at::Tensor run_pointwise_tensor( at::Tensor act, // contains quantized values but not QTensor at::Tensor act_scale, at::Tensor act_zero_point, at::Tensor weight, // contains quantized values but not QTensor at::Tensor weight_scales, at::Tensor weight_zero_points, std::optional bias, torch::List stride, torch::List padding, torch::List dilation, int64_t groups, double output_scale, int64_t output_zero_point, std::optional output_dtype, std::string_view attr, torch::List> scalars, std::optional algorithm); C10_API static at::Tensor run_pointwise_binary( at::Tensor act, // contains quantized values but not QTensor double act_scale, int64_t act_zero_point, at::Tensor weight, // contains quantized values but not QTensor at::Tensor weight_scales, at::Tensor weight_zero_points, at::Tensor accum, // contains quantized values but not QTensor std::optional bias, torch::List stride, torch::List padding, torch::List dilation, int64_t groups, double output_scale, int64_t output_zero_point, std::optional output_dtype, double accum_scale, int64_t accum_zero_point, std::string_view binary_attr, std::optional alpha, std::optional unary_attr, torch::List> unary_scalars, std::optional unary_algorithm); C10_API static at::Tensor run_pointwise_binary_tensor( at::Tensor act, // contains quantized values but not QTensor at::Tensor act_scale, at::Tensor act_zero_point, at::Tensor weight, // contains quantized values but not QTensor at::Tensor weight_scales, at::Tensor weight_zero_points, at::Tensor accum, // contains quantized values but not QTensor std::optional bias, torch::List stride, torch::List padding, torch::List dilation, int64_t groups, double output_scale, int64_t output_zero_point, std::optional output_dtype, double accum_scale, int64_t accum_zero_point, std::string_view binary_attr, std::optional alpha, std::optional unary_attr, torch::List> unary_scalars, std::optional unary_algorithm); }; } // namespace native } // namespace at