xref: /aosp_15_r20/external/pytorch/aten/src/ATen/native/cudnn/ConvPlaceholders.cpp (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1 #define TORCH_ASSERT_ONLY_METHOD_OPERATORS
2 #include <ATen/core/Tensor.h>
3 #include <ATen/cuda/CUDAConfig.h> // for the definition of AT_CUDNN_ENABLED
4 
5 #ifndef AT_PER_OPERATOR_HEADERS
6 #include <ATen/Functions.h>
7 #include <ATen/NativeFunctions.h>
8 #else
9 #include <ATen/ops/cudnn_convolution_add_relu_native.h>
10 #include <ATen/ops/cudnn_convolution_native.h>
11 #include <ATen/ops/cudnn_convolution_relu_native.h>
12 #include <ATen/ops/cudnn_convolution_transpose_native.h>
13 #endif
14 
15 namespace at {
16 namespace native {
17 
18 // ---------------------------------------------------------------------
19 //
20 // Placeholder operators
21 //
22 // ---------------------------------------------------------------------
23 
24 #if !AT_CUDNN_ENABLED()
25 
26 // See Note [ATen preprocessor philosophy]
27 
cudnn_convolution(const at::Tensor & input,const at::Tensor & weight,IntArrayRef padding,IntArrayRef stride,IntArrayRef dilation,int64_t groups,bool benchmark,bool deterministic,bool allow_tf32)28 at::Tensor cudnn_convolution(
29     const at::Tensor& input,
30     const at::Tensor& weight,
31     IntArrayRef padding,
32     IntArrayRef stride,
33     IntArrayRef dilation,
34     int64_t groups,
35     bool benchmark,
36     bool deterministic,
37     bool allow_tf32) {
38   AT_ERROR("cudnn_convolution: ATen not compiled with cuDNN support");
39 }
40 
cudnn_convolution_out(const Tensor & input_t,const Tensor & weight_t,IntArrayRef padding,IntArrayRef stride,IntArrayRef dilation,int64_t groups,bool benchmark,bool deterministic,bool allow_tf32,Tensor & output_t)41 at::Tensor& cudnn_convolution_out(
42     const Tensor& input_t,
43     const Tensor& weight_t,
44     IntArrayRef padding,
45     IntArrayRef stride,
46     IntArrayRef dilation,
47     int64_t groups,
48     bool benchmark,
49     bool deterministic,
50     bool allow_tf32,
51     Tensor& output_t) {
52   AT_ERROR("cudnn_convolution_out: ATen not compiled with cuDNN support");
53 }
54 
cudnn_convolution_backward_input(IntArrayRef input_size,const at::Tensor & grad_output,const at::Tensor & weight,IntArrayRef padding,IntArrayRef stride,IntArrayRef dilation,int64_t groups,bool benchmark,bool deterministic,bool allow_tf32)55 at::Tensor cudnn_convolution_backward_input(
56     IntArrayRef input_size,
57     const at::Tensor& grad_output,
58     const at::Tensor& weight,
59     IntArrayRef padding,
60     IntArrayRef stride,
61     IntArrayRef dilation,
62     int64_t groups,
63     bool benchmark,
64     bool deterministic,
65     bool allow_tf32) {
66   AT_ERROR(
67       "cudnn_convolution_backward_input: ATen not compiled with cuDNN support");
68 }
69 
cudnn_convolution_backward_weight(IntArrayRef weight_size,const at::Tensor & grad_output,const at::Tensor & input,IntArrayRef padding,IntArrayRef stride,IntArrayRef dilation,int64_t groups,bool benchmark,bool deterministic,bool allow_tf32)70 at::Tensor cudnn_convolution_backward_weight(
71     IntArrayRef weight_size,
72     const at::Tensor& grad_output,
73     const at::Tensor& input,
74     IntArrayRef padding,
75     IntArrayRef stride,
76     IntArrayRef dilation,
77     int64_t groups,
78     bool benchmark,
79     bool deterministic,
80     bool allow_tf32) {
81   AT_ERROR(
82       "cudnn_convolution_backward_weight: ATen not compiled with cuDNN support");
83 }
84 
cudnn_convolution_backward(const at::Tensor & input,const at::Tensor & grad_output,const at::Tensor & weight,IntArrayRef padding,IntArrayRef stride,IntArrayRef dilation,int64_t groups,bool benchmark,bool deterministic,bool allow_tf32,std::array<bool,2> output_mask)85 std::tuple<at::Tensor, at::Tensor> cudnn_convolution_backward(
86     const at::Tensor& input,
87     const at::Tensor& grad_output,
88     const at::Tensor& weight,
89     IntArrayRef padding,
90     IntArrayRef stride,
91     IntArrayRef dilation,
92     int64_t groups,
93     bool benchmark,
94     bool deterministic,
95     bool allow_tf32,
96     std::array<bool, 2> output_mask) {
97   AT_ERROR("cudnn_convolution_backward: ATen not compiled with cuDNN support");
98 }
99 
cudnn_convolution_transpose(const at::Tensor & input,const at::Tensor & weight,IntArrayRef padding,IntArrayRef output_padding,IntArrayRef stride,IntArrayRef dilation,int64_t groups,bool benchmark,bool deterministic,bool allow_tf32)100 at::Tensor cudnn_convolution_transpose(
101     const at::Tensor& input,
102     const at::Tensor& weight,
103     IntArrayRef padding,
104     IntArrayRef output_padding,
105     IntArrayRef stride,
106     IntArrayRef dilation,
107     int64_t groups,
108     bool benchmark,
109     bool deterministic,
110     bool allow_tf32) {
111   AT_ERROR("cudnn_convolution_transpose: ATen not compiled with cuDNN support");
112 }
113 
cudnn_convolution_transpose_backward_input(const at::Tensor & grad_output,const at::Tensor & weight,IntArrayRef padding,IntArrayRef stride,IntArrayRef dilation,int64_t groups,bool benchmark,bool deterministic,bool allow_tf32)114 at::Tensor cudnn_convolution_transpose_backward_input(
115     const at::Tensor& grad_output,
116     const at::Tensor& weight,
117     IntArrayRef padding,
118     IntArrayRef stride,
119     IntArrayRef dilation,
120     int64_t groups,
121     bool benchmark,
122     bool deterministic,
123     bool allow_tf32) {
124   AT_ERROR(
125       "cudnn_convolution_transpose_backward: ATen not compiled with cuDNN support");
126 }
127 
cudnn_convolution_transpose_backward_weight(IntArrayRef weight_size,const at::Tensor & grad_output,const at::Tensor & input,IntArrayRef padding,IntArrayRef stride,IntArrayRef dilation,int64_t groups,bool benchmark,bool deterministic,bool allow_tf32)128 at::Tensor cudnn_convolution_transpose_backward_weight(
129     IntArrayRef weight_size,
130     const at::Tensor& grad_output,
131     const at::Tensor& input,
132     IntArrayRef padding,
133     IntArrayRef stride,
134     IntArrayRef dilation,
135     int64_t groups,
136     bool benchmark,
137     bool deterministic,
138     bool allow_tf32) {
139   AT_ERROR(
140       "cudnn_convolution_transpose_backward_weight: ATen not compiled with cuDNN support");
141 }
142 
cudnn_convolution_transpose_backward(const at::Tensor & input,const at::Tensor & grad_output,const at::Tensor & weight,IntArrayRef padding,IntArrayRef output_padding,IntArrayRef stride,IntArrayRef dilation,int64_t groups,bool benchmark,bool deterministic,bool allow_tf32,std::array<bool,2> output_mask)143 std::tuple<at::Tensor, at::Tensor> cudnn_convolution_transpose_backward(
144     const at::Tensor& input,
145     const at::Tensor& grad_output,
146     const at::Tensor& weight,
147     IntArrayRef padding,
148     IntArrayRef output_padding,
149     IntArrayRef stride,
150     IntArrayRef dilation,
151     int64_t groups,
152     bool benchmark,
153     bool deterministic,
154     bool allow_tf32,
155     std::array<bool, 2> output_mask) {
156   AT_ERROR(
157       "cudnn_convolution_transpose_backward: ATen not compiled with cuDNN support");
158 }
159 
raw_cudnn_convolution_forward_out(const Tensor & output,const Tensor & input,const Tensor & weight,IntArrayRef padding,IntArrayRef stride,IntArrayRef dilation,int64_t groups,bool benchmark,bool deterministic,bool allow_tf32)160 void raw_cudnn_convolution_forward_out(
161     const Tensor& output,
162     const Tensor& input,
163     const Tensor& weight,
164     IntArrayRef padding,
165     IntArrayRef stride,
166     IntArrayRef dilation,
167     int64_t groups,
168     bool benchmark,
169     bool deterministic,
170     bool allow_tf32) {
171   AT_ERROR(
172       "raw_cudnn_convolution_forward_out: ATen not compiled with cuDNN support");
173 }
174 
raw_cudnn_convolution_backward_input_out(const at::Tensor & grad_input,const at::Tensor & grad_output,const at::Tensor & weight,IntArrayRef padding,IntArrayRef stride,IntArrayRef dilation,int64_t groups,bool benchmark,bool deterministic,bool allow_tf32)175 void raw_cudnn_convolution_backward_input_out(
176     const at::Tensor& grad_input,
177     const at::Tensor& grad_output,
178     const at::Tensor& weight,
179     IntArrayRef padding,
180     IntArrayRef stride,
181     IntArrayRef dilation,
182     int64_t groups,
183     bool benchmark,
184     bool deterministic,
185     bool allow_tf32) {
186   AT_ERROR(
187       "raw_cudnn_convolution_backward_input_out: ATen not compiled with cuDNN support");
188 }
189 
raw_cudnn_convolution_backward_weight_out(const Tensor & grad_weight,const Tensor & grad_output,const Tensor & input,IntArrayRef padding,IntArrayRef stride,IntArrayRef dilation,int64_t groups,bool benchmark,bool deterministic,bool allow_tf32)190 void raw_cudnn_convolution_backward_weight_out(
191     const Tensor& grad_weight,
192     const Tensor& grad_output,
193     const Tensor& input,
194     IntArrayRef padding,
195     IntArrayRef stride,
196     IntArrayRef dilation,
197     int64_t groups,
198     bool benchmark,
199     bool deterministic,
200     bool allow_tf32) {
201   AT_ERROR(
202       "raw_cudnn_convolution_backward_weight_out: ATen not compiled with cuDNN support");
203 }
204 
cudnn_convolution_relu(const Tensor & input_t,const Tensor & weight_t,const std::optional<Tensor> & bias_t,IntArrayRef stride,IntArrayRef padding,IntArrayRef dilation,int64_t groups)205 Tensor cudnn_convolution_relu(
206     const Tensor& input_t,
207     const Tensor& weight_t,
208     const std::optional<Tensor>& bias_t,
209     IntArrayRef stride,
210     IntArrayRef padding,
211     IntArrayRef dilation,
212     int64_t groups) {
213   AT_ERROR("cudnn_convolution_relu: ATen not compiled with cuDNN support");
214 }
215 
cudnn_convolution_add_relu(const Tensor & input_t,const Tensor & weight_t,const Tensor & z_t,const std::optional<Scalar> & alpha,const std::optional<Tensor> & bias_t,IntArrayRef stride,IntArrayRef padding,IntArrayRef dilation,int64_t groups)216 Tensor cudnn_convolution_add_relu(
217     const Tensor& input_t,
218     const Tensor& weight_t,
219     const Tensor& z_t,
220     const std::optional<Scalar>& alpha,
221     const std::optional<Tensor>& bias_t,
222     IntArrayRef stride,
223     IntArrayRef padding,
224     IntArrayRef dilation,
225     int64_t groups) {
226   AT_ERROR("cudnn_convolution_add_relu: ATen not compiled with cuDNN support");
227 }
228 
229 #endif // AT_CUDNN_ENABLED
230 
231 } // namespace native
232 } // namespace at
233