torch-rb 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 51bcc56112e13ba206402857b379aee0df4c7695f75af354e833760adec67756
4
- data.tar.gz: b2ff24940e4c219d88c5a001d4e8b4e44d0e55a35fc266989f0196e696d15bc8
3
+ metadata.gz: fca87cb9b6d255287e9fafadf786c113798abbe76b36c82b8271b79cfbf3c2b9
4
+ data.tar.gz: 4813c71f5ad6d078e78da03cf59f8036e9e76258ffb67f538899bba146dcba2a
5
5
  SHA512:
6
- metadata.gz: 95506016db5598333f0cb99a435d29951342af91f75ae4b1f01ef11df81891738888b90c7d27317071ad00bd9b81714cf41c0ea635c2578fd756c388b5e1da7f
7
- data.tar.gz: 053c9c75e66fe54902f07413687deb6996afc7ae88217bd5dcc852ca59d535c663bb9fb3aed28b20dba953a42e714410867dbd6ecd747f96fe8e8dfd81da8d6c
6
+ metadata.gz: 22c7150e6a7d9132c40c67819beecc6b8c69b268bd227a8e4aa324ef5e2707004691d5b65dcd4ba1ac537bfaf783947da7e5a323417cffcbf7d348768c40b7c6
7
+ data.tar.gz: 8a86c6b68efe6ad85a261d7033b87f040c22b2c670a0238accd6246274caed17b86d7b424441bba80c5ea67ec1bf53b05444dfb0c45ea5b8a52806d0ce19ec1e
data/CHANGELOG.md CHANGED
@@ -1,4 +1,9 @@
1
- ## 0.1.7 (2019-01-10)
1
+ ## 0.1.8 (2020-01-17)
2
+
3
+ - Added support for libtorch 1.4.0
4
+ - Dropped support for libtorch 1.3.1
5
+
6
+ ## 0.1.7 (2020-01-10)
2
7
 
3
8
  - Fixed installation error with Ruby 2.7
4
9
 
data/ext/torch/ext.cpp CHANGED
@@ -16,6 +16,12 @@
16
16
 
17
17
  using namespace Rice;
18
18
 
19
+ // need to make a distinction between parameters and tensors
20
+ class Parameter: public torch::autograd::Variable {
21
+ public:
22
+ Parameter(Tensor&& t) : torch::autograd::Variable(t) { }
23
+ };
24
+
19
25
  extern "C"
20
26
  void Init_ext()
21
27
  {
@@ -136,7 +142,13 @@ void Init_ext()
136
142
  for (size_t i = 0; i < a.size(); i++) {
137
143
  vec.push_back(from_ruby<float>(a[i]));
138
144
  }
139
- t = torch::tensor(vec, options);
145
+ // hack for requires_grad error
146
+ if (options.requires_grad()) {
147
+ t = torch::tensor(vec, options.requires_grad(c10::nullopt));
148
+ t.set_requires_grad(true);
149
+ } else {
150
+ t = torch::tensor(vec, options);
151
+ }
140
152
  }
141
153
  return t.reshape(size);
142
154
  });
@@ -146,6 +158,7 @@ void Init_ext()
146
158
  .define_method("sparse?", &torch::Tensor::is_sparse)
147
159
  .define_method("quantized?", &torch::Tensor::is_quantized)
148
160
  .define_method("dim", &torch::Tensor::dim)
161
+ .define_method("numel", &torch::Tensor::numel)
149
162
  .define_method("element_size", &torch::Tensor::element_size)
150
163
  .define_method("requires_grad", &torch::Tensor::requires_grad)
151
164
  .define_method(
@@ -260,7 +273,7 @@ void Init_ext()
260
273
  auto data = torch::autograd::as_variable_ref(rd).detach();
261
274
  data.unsafeGetTensorImpl()->set_allow_tensor_metadata_change(true);
262
275
  auto var = data.set_requires_grad(requires_grad);
263
- return torch::autograd::Variable(std::move(var));
276
+ return Parameter(std::move(var));
264
277
  });
265
278
 
266
279
  Class rb_cTensorOptions = define_class_under<torch::TensorOptions>(rb_mTorch, "TensorOptions")
@@ -375,10 +388,10 @@ void Init_ext()
375
388
  return torch::nn::init::sparse_(tensor, sparsity, std);
376
389
  });
377
390
 
378
- Class rb_cParameter = define_class_under<torch::autograd::Variable, torch::Tensor>(rb_mNN, "Parameter")
391
+ Class rb_cParameter = define_class_under<Parameter, torch::Tensor>(rb_mNN, "Parameter")
379
392
  .define_method(
380
393
  "grad",
381
- *[](torch::autograd::Variable& self) {
394
+ *[](Parameter& self) {
382
395
  auto grad = self.grad();
383
396
  return grad.defined() ? to_ruby<torch::Tensor>(grad) : Nil;
384
397
  });
data/ext/torch/extconf.rb CHANGED
@@ -10,6 +10,9 @@ $CXXFLAGS << " -std=c++11"
10
10
  # silence ruby/intern.h warning
11
11
  $CXXFLAGS << " -Wno-deprecated-register"
12
12
 
13
+ # silence torch warnings
14
+ $CXXFLAGS << " -Wno-shorten-64-to-32 -Wno-missing-noreturn"
15
+
13
16
  inc, lib = dir_config("torch")
14
17
 
15
18
  inc ||= "/usr/local/include"
@@ -1,5 +1,9 @@
1
1
  #pragma once
2
2
 
3
+ #ifdef isfinite
4
+ #undef isfinite
5
+ #endif
6
+
3
7
  #include <rice/Array.hpp>
4
8
  #include <rice/Object.hpp>
5
9
 
@@ -79,12 +83,11 @@ class FanModeType {
79
83
  FanModeType(Object o) {
80
84
  s = String(o).str();
81
85
  }
82
- // TODO switch NonlinearityType after LibTorch 1.4 release
83
- operator torch::nn::init::FanMode() {
86
+ operator torch::nn::init::FanModeType() {
84
87
  if (s == "fan_in") {
85
- return torch::nn::init::FanMode::FanIn;
88
+ return torch::kFanIn;
86
89
  } else if (s == "fan_out") {
87
- return torch::nn::init::FanMode::FanOut;
90
+ return torch::kFanOut;
88
91
  } else {
89
92
  throw std::runtime_error("Unsupported nonlinearity type: " + s);
90
93
  }
@@ -104,30 +107,29 @@ class NonlinearityType {
104
107
  NonlinearityType(Object o) {
105
108
  s = String(o).str();
106
109
  }
107
- // TODO switch NonlinearityType after LibTorch 1.4 release
108
- operator torch::nn::init::Nonlinearity() {
110
+ operator torch::nn::init::NonlinearityType() {
109
111
  if (s == "linear") {
110
- return torch::nn::init::Nonlinearity::Linear;
112
+ return torch::kLinear;
111
113
  } else if (s == "conv1d") {
112
- return torch::nn::init::Nonlinearity::Conv1D;
114
+ return torch::kConv1D;
113
115
  } else if (s == "conv2d") {
114
- return torch::nn::init::Nonlinearity::Conv2D;
116
+ return torch::kConv2D;
115
117
  } else if (s == "conv3d") {
116
- return torch::nn::init::Nonlinearity::Conv3D;
118
+ return torch::kConv3D;
117
119
  } else if (s == "conv_transpose1d") {
118
- return torch::nn::init::Nonlinearity::ConvTranspose1D;
120
+ return torch::kConvTranspose1D;
119
121
  } else if (s == "conv_transpose2d") {
120
- return torch::nn::init::Nonlinearity::ConvTranspose2D;
122
+ return torch::kConvTranspose2D;
121
123
  } else if (s == "conv_transpose3d") {
122
- return torch::nn::init::Nonlinearity::ConvTranspose3D;
124
+ return torch::kConvTranspose3D;
123
125
  } else if (s == "sigmoid") {
124
- return torch::nn::init::Nonlinearity::Sigmoid;
126
+ return torch::kSigmoid;
125
127
  } else if (s == "tanh") {
126
- return torch::nn::init::Nonlinearity::Tanh;
128
+ return torch::kTanh;
127
129
  } else if (s == "relu") {
128
- return torch::nn::init::Nonlinearity::ReLU;
130
+ return torch::kReLU;
129
131
  } else if (s == "leaky_relu") {
130
- return torch::nn::init::Nonlinearity::LeakyReLU;
132
+ return torch::kLeakyReLU;
131
133
  } else {
132
134
  throw std::runtime_error("Unsupported nonlinearity type: " + s);
133
135
  }
@@ -149,14 +151,14 @@ class MyReduction {
149
151
  }
150
152
  operator int64_t() {
151
153
  if (value.is_nil()) {
152
- return Reduction::None;
154
+ return torch::Reduction::None;
153
155
  }
154
156
 
155
157
  std::string s = String(value).str();
156
158
  if (s == "mean") {
157
- return Reduction::Mean;
159
+ return torch::Reduction::Mean;
158
160
  } else if (s == "sum") {
159
- return Reduction::Sum;
161
+ return torch::Reduction::Sum;
160
162
  } else {
161
163
  throw std::runtime_error("Unsupported reduction: " + s);
162
164
  }
@@ -66,6 +66,7 @@ module Torch
66
66
  end
67
67
 
68
68
  next if t == "Generator?"
69
+ next if t == "MemoryFormat?"
69
70
  args << {name: k, type: t, default: d, pos: pos, has_default: has_default}
70
71
  end
71
72
  args
@@ -37,19 +37,38 @@
37
37
  use_c10_dispatcher: full
38
38
  variants: function
39
39
 
40
- - func: backward(Tensor self, Tensor? gradient=None, bool keep_graph=False, bool create_graph=False) -> void
40
+ # Computes the gradient of current tensor w.r.t. graph leaves.
41
+ - func: backward(Tensor self, Tensor? gradient=None, bool keep_graph=False, bool create_graph=False) -> ()
41
42
  variants: method
42
43
 
43
- - func: set_data(Tensor(a!) self, Tensor new_data) -> void
44
+ # DEPRECATED. Sets the tensor data held by this `Variable` to be the same as
45
+ # `new_data`. It requires that `new_data` and `Variable` have compatible tensor
46
+ # type, by checking `_has_compatible_shallow_copy_type(this, new_data)`.
47
+ #
48
+ # This function is deprecated because it doesn't really make sense in a world
49
+ # where Variables *are* Tensors (as opposed to them containing tensors, which
50
+ # is what the previous interpretation was.)
51
+ - func: set_data(Tensor(a!) self, Tensor new_data) -> ()
52
+ use_c10_dispatcher: unboxed_only
44
53
  variants: method
45
54
 
46
55
  - func: data(Tensor self) -> Tensor
47
- use_c10_dispatcher: unboxed_only
48
56
  variants: method
49
57
 
58
+ # True if this `Variable` is a leaf and thus does not have a `grad_fn`.
50
59
  - func: is_leaf(Tensor self) -> bool
51
60
  variants: method
52
61
 
62
+ # Returns the output index of this variable from the forward operation that
63
+ # produced it. Conversely, it returns the input index of the gradient `Node` to
64
+ # which this `Variable` is connected (because in the gradient computation,
65
+ # inputs and outputs switch meaning). For example:
66
+ #
67
+ # y0, y1, y2 = f(x)
68
+ # assert y0.output_nr == 0
69
+ # assert y1.output_nr == 1
70
+ # assert y2.output_nr == 2
71
+ #
53
72
  - func: output_nr(Tensor self) -> int
54
73
  variants: method
55
74
  supports_named_tensor: True
@@ -57,6 +76,9 @@
57
76
  - func: _version(Tensor self) -> int
58
77
  variants: method
59
78
 
79
+ - func: requires_grad_(Tensor(a!) self, bool _requires_grad=True) -> Tensor(a!)
80
+ variants: method
81
+
60
82
  - func: rename_(Tensor(a!) self, Dimname[]? names) -> Tensor(a!)
61
83
  variants: method
62
84
  supports_named_tensor: True
@@ -65,38 +87,43 @@
65
87
  variants: method
66
88
  supports_named_tensor: True
67
89
 
68
- - func: align_to(Tensor(a) self, DimnameList names) -> Tensor(a)
90
+ - func: align_to(Tensor(a) self, Dimname[] names) -> Tensor(a)
91
+ variants: method
92
+ supports_named_tensor: True
93
+
94
+ - func: align_to.ellipsis_idx(Tensor(a) self, Dimname[] order, int ellipsis_idx) -> Tensor(a)
69
95
  variants: method
70
96
  supports_named_tensor: True
71
97
 
72
98
  - func: align_as(Tensor self, Tensor other) -> Tensor
73
- use_c10_dispatcher: unboxed_only
74
99
  variants: method
75
100
  supports_named_tensor: True
76
101
 
77
102
  - func: align_tensors(Tensor[] tensors) -> Tensor[]
78
- use_c10_dispatcher: unboxed_only
79
103
  supports_named_tensor: True
80
104
 
81
- - func: refine_names(Tensor(a) self, DimnameList names) -> Tensor(a)
105
+ - func: refine_names(Tensor(a) self, Dimname[] names) -> Tensor(a)
82
106
  variants: method
83
107
  supports_named_tensor: True
84
108
 
85
- - func: unflatten(Tensor self, Dimname dim, int[] sizes, DimnameList names) -> Tensor
109
+ - func: unflatten.Dimname(Tensor self, Dimname dim, int[] sizes, Dimname[] names) -> Tensor
86
110
  variants: method
87
111
  supports_named_tensor: True
88
112
 
89
- - func: unflatten(Tensor self, int dim, int[] sizes, DimnameList names) -> Tensor
113
+ - func: unflatten.int(Tensor self, int dim, int[] sizes, Dimname[] names) -> Tensor
90
114
  variants: method
91
115
  supports_named_tensor: True
92
116
 
117
+
118
+ - func: _use_cudnn_ctc_loss(Tensor log_probs, Tensor targets, int[] input_lengths, int[] target_lengths, int blank) -> bool
119
+ dispatch:
120
+ CUDA: _use_cudnn_ctc_loss
121
+
93
122
  - func: _cudnn_ctc_loss(Tensor log_probs, Tensor targets, int[] input_lengths, int[] target_lengths, int blank, bool deterministic, bool zero_infinity) -> (Tensor, Tensor)
94
- use_c10_dispatcher: unboxed_only
95
123
  dispatch:
96
124
  CUDA: _cudnn_ctc_loss
97
125
 
98
126
  - func: _cudnn_rnn_flatten_weight(Tensor[] weight_arr, int weight_stride0, int input_size, int mode, int hidden_size, int num_layers, bool batch_first, bool bidirectional) -> Tensor
99
- use_c10_dispatcher: unboxed_only
100
127
  dispatch:
101
128
  CUDA: _cudnn_rnn_flatten_weight
102
129
 
@@ -117,7 +144,6 @@
117
144
  variants: function
118
145
 
119
146
  - func: _fused_dropout(Tensor self, float p, Generator? generator=None) -> (Tensor, Tensor)
120
- use_c10_dispatcher: 'unboxed_only'
121
147
  variants: function
122
148
  dispatch:
123
149
  CUDA: fused_dropout_cuda
@@ -132,15 +158,12 @@
132
158
  - func: _sobol_engine_draw(Tensor quasi, int n, Tensor sobolstate, int dimension, int num_generated, ScalarType? dtype) -> (Tensor, Tensor)
133
159
 
134
160
  - func: _sobol_engine_ff_(Tensor(a!) self, int n, Tensor sobolstate, int dimension, int num_generated) -> Tensor(a!)
135
- use_c10_dispatcher: unboxed_only
136
161
 
137
162
 
138
163
  - func: _sobol_engine_scramble_(Tensor(a!) self, Tensor ltm, int dimension) -> Tensor(a!)
139
- use_c10_dispatcher: unboxed_only
140
164
 
141
165
 
142
166
  - func: _sobol_engine_initialize_state_(Tensor(a!) self, int dimension) -> Tensor(a!)
143
- use_c10_dispatcher: unboxed_only
144
167
 
145
168
 
146
169
  - func: _reshape_from_tensor(Tensor self, Tensor shape) -> Tensor
@@ -154,27 +177,23 @@
154
177
  supports_named_tensor: True
155
178
 
156
179
  - func: dropout_(Tensor(a!) self, float p, bool train) -> Tensor(a!)
157
- use_c10_dispatcher: unboxed_only
158
180
  supports_named_tensor: True
159
181
 
160
182
  - func: feature_dropout(Tensor input, float p, bool train) -> Tensor
161
183
  use_c10_dispatcher: full
162
184
 
163
185
  - func: feature_dropout_(Tensor(a!) self, float p, bool train) -> Tensor(a!)
164
- use_c10_dispatcher: unboxed_only
165
186
 
166
187
  - func: alpha_dropout(Tensor input, float p, bool train) -> Tensor
167
188
  use_c10_dispatcher: full
168
189
 
169
190
  - func: alpha_dropout_(Tensor(a!) self, float p, bool train) -> Tensor(a!)
170
- use_c10_dispatcher: unboxed_only
171
191
 
172
192
 
173
193
  - func: feature_alpha_dropout(Tensor input, float p, bool train) -> Tensor
174
194
  use_c10_dispatcher: full
175
195
 
176
196
  - func: feature_alpha_dropout_(Tensor(a!) self, float p, bool train) -> Tensor(a!)
177
- use_c10_dispatcher: unboxed_only
178
197
 
179
198
 
180
199
  - func: abs(Tensor self) -> Tensor
@@ -183,18 +202,55 @@
183
202
  supports_named_tensor: True
184
203
 
185
204
  - func: abs_(Tensor(a!) self) -> Tensor(a!)
186
- use_c10_dispatcher: unboxed_only
187
205
  variants: function, method
188
206
  supports_named_tensor: True
189
- dispatch:
190
- CPU: _abs__cpu
191
- CUDA: _abs__cuda
192
207
 
193
208
  - func: abs.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)
194
209
  supports_named_tensor: True
210
+
211
+ - func: angle(Tensor self) -> Tensor
212
+ variants: function, method
213
+ supports_named_tensor: True
214
+ named_guard: False
215
+
216
+ - func: angle.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)
217
+ named_guard: False
218
+ supports_named_tensor: True
219
+ dispatch:
220
+ CPU: _angle_out_cpu
221
+
222
+ - func: real(Tensor self) -> Tensor
223
+ variants: function, method
224
+ named_guard: False
225
+ supports_named_tensor: True
226
+
227
+ - func: real.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)
228
+ named_guard: False
229
+ supports_named_tensor: True
230
+ dispatch:
231
+ CPU: _real_out_cpu
232
+
233
+ - func: imag(Tensor self) -> Tensor
234
+ variants: function, method
235
+ named_guard: False
236
+ supports_named_tensor: True
237
+
238
+ - func: imag.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)
239
+ named_guard: False
240
+ supports_named_tensor: True
241
+ dispatch:
242
+ CPU: _imag_out_cpu
243
+
244
+ - func: conj(Tensor self) -> Tensor
245
+ variants: function, method
246
+ named_guard: False
247
+ supports_named_tensor: True
248
+
249
+ - func: conj.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)
250
+ named_guard: False
251
+ supports_named_tensor: True
195
252
  dispatch:
196
- CPU: _abs_out_cpu
197
- CUDA: _abs_out_cuda
253
+ CPU: _conj_out_cpu
198
254
 
199
255
  - func: acos(Tensor self) -> Tensor
200
256
  use_c10_dispatcher: full
@@ -202,28 +258,18 @@
202
258
  variants: function, method
203
259
 
204
260
  - func: acos_(Tensor(a!) self) -> Tensor(a!)
205
- use_c10_dispatcher: unboxed_only
206
261
  supports_named_tensor: True
207
262
  variants: function, method
208
- dispatch:
209
- CPU: _acos__cpu
210
- CUDA: _acos__cuda
211
263
 
212
264
  - func: acos.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)
213
265
  supports_named_tensor: True
214
- dispatch:
215
- CPU: _acos_out_cpu
216
- CUDA: _acos_out_cuda
217
266
 
218
267
  - func: avg_pool1d(Tensor self, int[1] kernel_size, int[1] stride=[], int[1] padding=0, bool ceil_mode=False, bool count_include_pad=True) -> Tensor
219
- use_c10_dispatcher: unboxed_only
220
268
 
221
269
  - func: adaptive_avg_pool1d(Tensor self, int[1] output_size) -> Tensor
222
- use_c10_dispatcher: unboxed_only
223
270
 
224
271
  # Return: (Tensor output, Tensor indices)
225
272
  - func: adaptive_max_pool1d(Tensor self, int[1] output_size) -> (Tensor, Tensor)
226
- use_c10_dispatcher: unboxed_only
227
273
 
228
274
  - func: add.Tensor(Tensor self, Tensor other, *, Scalar alpha=1) -> Tensor
229
275
  use_c10_dispatcher: full
@@ -237,7 +283,6 @@
237
283
  supports_named_tensor: True
238
284
 
239
285
  - func: add_.Tensor(Tensor(a!) self, Tensor other, *, Scalar alpha=1) -> Tensor(a!)
240
- use_c10_dispatcher: unboxed_only
241
286
  variants: method
242
287
  dispatch:
243
288
  CPU: add_
@@ -263,7 +308,6 @@
263
308
  supports_named_tensor: True
264
309
 
265
310
  - func: add_.Scalar(Tensor(a!) self, Scalar other, Scalar alpha=1) -> Tensor(a!)
266
- use_c10_dispatcher: unboxed_only
267
311
  variants: method
268
312
  supports_named_tensor: True
269
313
 
@@ -276,7 +320,6 @@
276
320
  supports_named_tensor: True
277
321
 
278
322
  - func: addmv_(Tensor(a!) self, Tensor mat, Tensor vec, *, Scalar beta=1, Scalar alpha=1) -> Tensor(a!)
279
- use_c10_dispatcher: unboxed_only
280
323
  variants: function, method
281
324
  dispatch:
282
325
  CPU: legacy::cpu::_th_addmv_
@@ -294,17 +337,14 @@
294
337
  variants: function, method
295
338
 
296
339
  - func: addr_(Tensor(a!) self, Tensor vec1, Tensor vec2, *, Scalar beta=1, Scalar alpha=1) -> Tensor(a!)
297
- use_c10_dispatcher: unboxed_only
298
340
  variants: method
299
341
 
300
342
  - func: addr.out(Tensor self, Tensor vec1, Tensor vec2, *, Scalar beta=1, Scalar alpha=1, Tensor(a!) out) -> Tensor(a!)
301
343
 
302
344
  - func: affine_grid_generator(Tensor theta, int[] size, bool align_corners) -> Tensor
303
- use_c10_dispatcher: unboxed_only
304
345
  variants: function
305
346
 
306
347
  - func: affine_grid_generator_backward(Tensor grad, int[] size, bool align_corners) -> Tensor
307
- use_c10_dispatcher: unboxed_only
308
348
  variants: function
309
349
 
310
350
  - func: all.dim(Tensor self, int dim, bool keepdim=False) -> Tensor
@@ -363,7 +403,6 @@
363
403
  variants: function, method
364
404
 
365
405
  - func: as_strided(Tensor(a) self, int[] size, int[] stride, int? storage_offset=None) -> Tensor(a)
366
- use_c10_dispatcher: unboxed_only
367
406
  variants: function, method
368
407
  dispatch:
369
408
  CPU: as_strided_tensorimpl
@@ -373,7 +412,6 @@
373
412
  supports_named_tensor: True
374
413
 
375
414
  - func: as_strided_(Tensor(a!) self, int[] size, int[] stride, int? storage_offset=None) -> Tensor(a!)
376
- use_c10_dispatcher: unboxed_only
377
415
  variants: function, method
378
416
  device_guard: False
379
417
 
@@ -383,18 +421,11 @@
383
421
  variants: function, method
384
422
 
385
423
  - func: asin_(Tensor(a!) self) -> Tensor(a!)
386
- use_c10_dispatcher: unboxed_only
387
424
  supports_named_tensor: True
388
425
  variants: function, method
389
- dispatch:
390
- CPU: _asin__cpu
391
- CUDA: _asin__cuda
392
426
 
393
427
  - func: asin.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)
394
428
  supports_named_tensor: True
395
- dispatch:
396
- CPU: _asin_out_cpu
397
- CUDA: _asin_out_cuda
398
429
 
399
430
  - func: atan(Tensor self) -> Tensor
400
431
  use_c10_dispatcher: full
@@ -402,7 +433,6 @@
402
433
  variants: function, method
403
434
 
404
435
  - func: atan_(Tensor(a!) self) -> Tensor(a!)
405
- use_c10_dispatcher: unboxed_only
406
436
  supports_named_tensor: True
407
437
  variants: function, method
408
438
  dispatch:
@@ -423,14 +453,12 @@
423
453
  CUDA: baddbmm_cuda
424
454
 
425
455
  - func: baddbmm_(Tensor(a!) self, Tensor batch1, Tensor batch2, *, Scalar beta=1, Scalar alpha=1) -> Tensor(a!)
426
- use_c10_dispatcher: unboxed_only
427
456
  variants: method
428
457
  dispatch:
429
458
  CPU: baddbmm__cpu
430
459
  CUDA: baddbmm__cuda
431
460
 
432
461
  - func: _baddbmm_mkl_(Tensor(a!) self, Tensor batch1, Tensor batch2, *, Scalar beta=1, Scalar alpha=1) -> Tensor(a!)
433
- use_c10_dispatcher: unboxed_only
434
462
  variants: function
435
463
 
436
464
  - func: baddbmm.out(Tensor self, Tensor batch1, Tensor batch2, *, Scalar beta=1, Scalar alpha=1, Tensor(a!) out) -> Tensor(a!)
@@ -445,13 +473,12 @@
445
473
 
446
474
  - func: batch_norm(Tensor input, Tensor? weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, bool training, float momentum, float eps, bool cudnn_enabled) -> Tensor
447
475
 
448
- - func: _batch_norm_impl_index(Tensor input, Tensor? weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, bool training, float momentum, float eps, bool cudnn_enabled) -> (Tensor, Tensor, Tensor, int)
476
+ - func: _batch_norm_impl_index(Tensor input, Tensor? weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, bool training, float momentum, float eps, bool cudnn_enabled) -> (Tensor, Tensor, Tensor, Tensor, int)
449
477
 
450
- - func: _batch_norm_impl_index_backward(int impl_index, Tensor input, Tensor grad_output, Tensor? weight, Tensor? running_mean, Tensor? running_var, Tensor? save_mean, Tensor? save_var_transform, bool train, float eps, bool[3] output_mask) -> (Tensor, Tensor, Tensor)
478
+ - func: _batch_norm_impl_index_backward(int impl_index, Tensor input, Tensor grad_output, Tensor? weight, Tensor? running_mean, Tensor? running_var, Tensor? save_mean, Tensor? save_var_transform, bool train, float eps, bool[3] output_mask, Tensor reservedSpace) -> (Tensor, Tensor, Tensor)
451
479
 
452
480
  # Sample bernoulli with values in `self` as probability.
453
481
  - func: bernoulli(Tensor self, *, Generator? generator=None) -> Tensor
454
- use_c10_dispatcher: 'unboxed_only'
455
482
  variants: function, method
456
483
  supports_named_tensor: True
457
484
 
@@ -460,7 +487,6 @@
460
487
  supports_named_tensor: True
461
488
 
462
489
  - func: bernoulli_.Tensor(Tensor(a!) self, Tensor p, *, Generator? generator=None) -> Tensor(a!)
463
- use_c10_dispatcher: 'unboxed_only'
464
490
  variants: method
465
491
  dispatch:
466
492
  CPU: bernoulli_tensor_cpu_
@@ -468,7 +494,6 @@
468
494
  supports_named_tensor: True
469
495
 
470
496
  - func: bernoulli_.float(Tensor(a!) self, float p=0.5, *, Generator? generator=None) -> Tensor(a!)
471
- use_c10_dispatcher: 'unboxed_only'
472
497
  variants: method
473
498
  dispatch:
474
499
  CPU: bernoulli_scalar_cpu_
@@ -479,7 +504,6 @@
479
504
  # There is no default valid on `p` here because it would introduce ambiguity
480
505
  # with `bernoulli(Tensor self, *, Generator? generator=None)` declaration.
481
506
  - func: bernoulli.p(Tensor self, float p, *, Generator? generator=None) -> Tensor
482
- use_c10_dispatcher: 'unboxed_only'
483
507
  variants: function, method
484
508
 
485
509
  - func: bilinear(Tensor input1, Tensor input2, Tensor weight, Tensor? bias) -> Tensor
@@ -502,7 +526,6 @@
502
526
  variants: function, method
503
527
 
504
528
  - func: bitwise_not_(Tensor(a!) self) -> Tensor(a!)
505
- use_c10_dispatcher: unboxed_only
506
529
  supports_named_tensor: True
507
530
  variants: method
508
531
 
@@ -513,12 +536,10 @@
513
536
  CUDA: bitwise_not_out
514
537
 
515
538
  - func: logical_not(Tensor self) -> Tensor
516
- use_c10_dispatcher: unboxed_only
517
539
  supports_named_tensor: True
518
540
  variants: function, method
519
541
 
520
542
  - func: logical_not_(Tensor(a!) self) -> Tensor(a!)
521
- use_c10_dispatcher: unboxed_only
522
543
  supports_named_tensor: True
523
544
  variants: method
524
545
 
@@ -529,12 +550,10 @@
529
550
  CUDA: logical_not_out
530
551
 
531
552
  - func: logical_xor(Tensor self, Tensor other) -> Tensor
532
- use_c10_dispatcher: unboxed_only
533
553
  variants: function, method
534
554
  supports_named_tensor: True
535
555
 
536
556
  - func: logical_xor_(Tensor(a!) self, Tensor other) -> Tensor(a!)
537
- use_c10_dispatcher: unboxed_only
538
557
  variants: method
539
558
  supports_named_tensor: True
540
559
 
@@ -564,11 +583,9 @@
564
583
  supports_named_tensor: True
565
584
 
566
585
  - func: broadcast_tensors(Tensor[] tensors) -> Tensor[]
567
- use_c10_dispatcher: unboxed_only
568
586
  device_guard: False
569
587
 
570
588
  - func: cat(Tensor[] tensors, int dim=0) -> Tensor
571
- use_c10_dispatcher: unboxed_only
572
589
  supports_named_tensor: True
573
590
 
574
591
  - func: cat.out(Tensor[] tensors, int dim=0, *, Tensor(a!) out) -> Tensor(a!)
@@ -586,7 +603,6 @@
586
603
  variants: function, method
587
604
 
588
605
  - func: ceil_(Tensor(a!) self) -> Tensor(a!)
589
- use_c10_dispatcher: unboxed_only
590
606
  supports_named_tensor: True
591
607
  variants: function, method
592
608
 
@@ -597,11 +613,9 @@
597
613
  CUDA: ceil_out
598
614
 
599
615
  - func: chain_matmul(Tensor[] matrices) -> Tensor
600
- use_c10_dispatcher: unboxed_only
601
616
  variants: function
602
617
 
603
618
  - func: chunk(Tensor(a) self, int chunks, int dim=0) -> Tensor(a)[]
604
- use_c10_dispatcher: unboxed_only
605
619
  variants: function, method
606
620
  device_guard: False
607
621
  supports_named_tensor: True
@@ -612,7 +626,6 @@
612
626
  variants: function, method
613
627
 
614
628
  - func: clamp_(Tensor(a!) self, Scalar? min=None, Scalar? max=None) -> Tensor(a!)
615
- use_c10_dispatcher: unboxed_only
616
629
  supports_named_tensor: True
617
630
  variants: function, method
618
631
  dispatch:
@@ -631,7 +644,6 @@
631
644
  variants: function, method
632
645
 
633
646
  - func: clamp_max_(Tensor(a!) self, Scalar max) -> Tensor(a!)
634
- use_c10_dispatcher: unboxed_only
635
647
  supports_named_tensor: True
636
648
  variants: function, method
637
649
  dispatch:
@@ -650,7 +662,6 @@
650
662
  variants: function, method
651
663
 
652
664
  - func: clamp_min_(Tensor(a!) self, Scalar min) -> Tensor(a!)
653
- use_c10_dispatcher: unboxed_only
654
665
  supports_named_tensor: True
655
666
  variants: function, method
656
667
  dispatch:
@@ -668,7 +679,6 @@
668
679
  device_guard: False
669
680
 
670
681
  - func: constant_pad_nd(Tensor self, int[] pad, Scalar value=0) -> Tensor
671
- use_c10_dispatcher: unboxed_only
672
682
  variants: function
673
683
 
674
684
  - func: contiguous(Tensor self, *, MemoryFormat memory_format=contiguous_format) -> Tensor
@@ -697,7 +707,6 @@
697
707
  use_c10_dispatcher: full
698
708
 
699
709
  - func: conv_tbc_backward(Tensor self, Tensor input, Tensor weight, Tensor bias, int pad) -> (Tensor, Tensor, Tensor)
700
- use_c10_dispatcher: unboxed_only
701
710
 
702
711
  # NB: we inherit the goofy argument order from PyTorch torch.nn.functional
703
712
  - func: conv_transpose1d(Tensor input, Tensor weight, Tensor? bias=None, int[1] stride=1, int[1] padding=0, int[1] output_padding=0, int groups=1, int[1] dilation=1) -> Tensor
@@ -707,7 +716,6 @@
707
716
  - func: conv_transpose3d.input(Tensor input, Tensor weight, Tensor? bias=None, int[3] stride=1, int[3] padding=0, int[3] output_padding=0, int groups=1, int[3] dilation=1) -> Tensor
708
717
 
709
718
  - func: copy_(Tensor(a!) self, Tensor src, bool non_blocking=False) -> Tensor(a!)
710
- use_c10_dispatcher: unboxed_only
711
719
  variants: method
712
720
  device_guard: False
713
721
  supports_named_tensor: True
@@ -722,7 +730,6 @@
722
730
  variants: function, method
723
731
 
724
732
  - func: cos_(Tensor(a!) self) -> Tensor(a!)
725
- use_c10_dispatcher: unboxed_only
726
733
  supports_named_tensor: True
727
734
  variants: function, method
728
735
  dispatch:
@@ -741,7 +748,6 @@
741
748
  variants: function, method
742
749
 
743
750
  - func: cosh_(Tensor(a!) self) -> Tensor(a!)
744
- use_c10_dispatcher: unboxed_only
745
751
  supports_named_tensor: True
746
752
  variants: function, method
747
753
  dispatch:
@@ -768,12 +774,12 @@
768
774
  dispatch:
769
775
  CUDA: cudnn_affine_grid_generator_backward
770
776
 
771
- - func: cudnn_batch_norm(Tensor input, Tensor weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, bool training, float exponential_average_factor, float epsilon) -> (Tensor, Tensor, Tensor)
777
+ - func: cudnn_batch_norm(Tensor input, Tensor weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, bool training, float exponential_average_factor, float epsilon) -> (Tensor, Tensor, Tensor, Tensor)
772
778
  dispatch:
773
779
  CUDA: cudnn_batch_norm
774
780
 
775
781
  # NB: You can only use this if you used cudnn_batch_norm training=True
776
- - func: cudnn_batch_norm_backward(Tensor input, Tensor grad_output, Tensor weight, Tensor? running_mean, Tensor? running_var, Tensor? save_mean, Tensor? save_var, float epsilon) -> (Tensor, Tensor, Tensor)
782
+ - func: cudnn_batch_norm_backward(Tensor input, Tensor grad_output, Tensor weight, Tensor? running_mean, Tensor? running_var, Tensor? save_mean, Tensor? save_var, float epsilon, Tensor reserveSpace) -> (Tensor, Tensor, Tensor)
777
783
  dispatch:
778
784
  CUDA: cudnn_batch_norm_backward
779
785
 
@@ -782,12 +788,10 @@
782
788
  CUDA: cudnn_convolution
783
789
 
784
790
  - func: cudnn_convolution_backward_input(int[] self_size, Tensor grad_output, Tensor weight, int[] padding, int[] stride, int[] dilation, int groups, bool benchmark, bool deterministic) -> Tensor
785
- use_c10_dispatcher: unboxed_only
786
791
  dispatch:
787
792
  CUDA: cudnn_convolution_backward_input
788
793
 
789
794
  - func: cudnn_convolution_backward(Tensor self, Tensor grad_output, Tensor weight, int[] padding, int[] stride, int[] dilation, int groups, bool benchmark, bool deterministic, bool[3] output_mask) -> (Tensor, Tensor, Tensor)
790
- use_c10_dispatcher: unboxed_only
791
795
  dispatch:
792
796
  CUDA: cudnn_convolution_backward
793
797
 
@@ -797,7 +801,6 @@
797
801
  CUDA: cudnn_convolution_backward_bias
798
802
 
799
803
  - func: cudnn_convolution_backward_weight(int[] weight_size, Tensor grad_output, Tensor self, int[] padding, int[] stride, int[] dilation, int groups, bool benchmark, bool deterministic) -> Tensor
800
- use_c10_dispatcher: unboxed_only
801
804
  dispatch:
802
805
  CUDA: cudnn_convolution_backward_weight
803
806
 
@@ -808,7 +811,6 @@
808
811
  # NB: output_padding not strictly needed here, but it's helpful for the float
809
812
  # backwards
810
813
  - func: cudnn_convolution_transpose_backward(Tensor self, Tensor grad_output, Tensor weight, int[] padding, int[] output_padding, int[] stride, int[] dilation, int groups, bool benchmark, bool deterministic, bool[3] output_mask) -> (Tensor, Tensor, Tensor)
811
- use_c10_dispatcher: unboxed_only
812
814
  dispatch:
813
815
  CUDA: cudnn_convolution_transpose_backward
814
816
 
@@ -818,12 +820,10 @@
818
820
  CUDA: cudnn_convolution_backward_bias
819
821
 
820
822
  - func: cudnn_convolution_transpose_backward_input(Tensor grad_output, Tensor weight, int[] padding, int[] stride, int[] dilation, int groups, bool benchmark, bool deterministic) -> Tensor
821
- use_c10_dispatcher: unboxed_only
822
823
  dispatch:
823
824
  CUDA: cudnn_convolution_transpose_backward_input
824
825
 
825
826
  - func: cudnn_convolution_transpose_backward_weight(int[] weight_size, Tensor grad_output, Tensor self, int[] padding, int[] stride, int[] dilation, int groups, bool benchmark, bool deterministic) -> Tensor
826
- use_c10_dispatcher: unboxed_only
827
827
  dispatch:
828
828
  CUDA: cudnn_convolution_transpose_backward_weight
829
829
 
@@ -834,7 +834,6 @@
834
834
  CUDA: cudnn_grid_sampler_forward
835
835
 
836
836
  - func: cudnn_grid_sampler_backward(Tensor self, Tensor grid, Tensor grad_output) -> (Tensor grad_self, Tensor grad_grid)
837
- use_c10_dispatcher: unboxed_only
838
837
  dispatch:
839
838
  CUDA: cudnn_grid_sampler_backward
840
839
 
@@ -867,20 +866,17 @@
867
866
  supports_named_tensor: True
868
867
 
869
868
  - func: ctc_loss.IntList(Tensor log_probs, Tensor targets, int[] input_lengths, int[] target_lengths, int blank=0, int reduction=Mean, bool zero_infinity=False) -> Tensor
870
- use_c10_dispatcher: unboxed_only
871
869
 
872
870
  # convenience function that converts to intlists for you
873
871
  - func: ctc_loss.Tensor(Tensor log_probs, Tensor targets, Tensor input_lengths, Tensor target_lengths, int blank=0, int reduction=Mean, bool zero_infinity=False) -> Tensor
874
872
  use_c10_dispatcher: full
875
873
 
876
874
  - func: _ctc_loss(Tensor log_probs, Tensor targets, int[] input_lengths, int[] target_lengths, int blank=0, bool zero_infinity=False) -> (Tensor, Tensor)
877
- use_c10_dispatcher: unboxed_only
878
875
  dispatch:
879
876
  CPU: ctc_loss_cpu
880
877
  CUDA: ctc_loss_gpu
881
878
 
882
879
  - func: _ctc_loss_backward(Tensor grad, Tensor log_probs, Tensor targets, int[] input_lengths, int[] target_lengths, Tensor neg_log_likelihood, Tensor log_alpha, int blank, bool zero_infinity=False) -> Tensor
883
- use_c10_dispatcher: unboxed_only
884
880
  dispatch:
885
881
  CPU: ctc_loss_backward_cpu
886
882
  CUDA: ctc_loss_backward_gpu
@@ -898,11 +894,9 @@
898
894
  variants: function, method
899
895
 
900
896
  - func: diagonal(Tensor(a) self, int offset=0, int dim1=0, int dim2=1) -> Tensor(a)
901
- use_c10_dispatcher: unboxed_only
902
897
  variants: function, method
903
898
 
904
899
  - func: fill_diagonal_(Tensor(a!) self, Scalar fill_value, bool wrap=False) -> Tensor(a!)
905
- use_c10_dispatcher: unboxed_only
906
900
  variants: method
907
901
 
908
902
  - func: div.Tensor(Tensor self, Tensor other) -> Tensor
@@ -916,7 +910,6 @@
916
910
  supports_named_tensor: True
917
911
 
918
912
  - func: div_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)
919
- use_c10_dispatcher: unboxed_only
920
913
  variants: method
921
914
  dispatch:
922
915
  CPU: div_
@@ -940,7 +933,6 @@
940
933
  supports_named_tensor: True
941
934
 
942
935
  - func: div_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)
943
- use_c10_dispatcher: unboxed_only
944
936
  variants: method
945
937
  supports_named_tensor: True
946
938
 
@@ -956,7 +948,6 @@
956
948
  supports_named_tensor: True
957
949
 
958
950
  - func: einsum(str equation, Tensor[] tensors) -> Tensor
959
- use_c10_dispatcher: unboxed_only
960
951
 
961
952
  - func: embedding(Tensor weight, Tensor indices, int padding_idx=-1, bool scale_grad_by_freq=False, bool sparse=False) -> Tensor
962
953
  use_c10_dispatcher: full
@@ -971,7 +962,6 @@
971
962
  CUDA: embedding_dense_backward_cuda
972
963
 
973
964
  - func: embedding_renorm_(Tensor(a!) self, Tensor indices, float max_norm, float norm_type) -> Tensor(a!)
974
- use_c10_dispatcher: unboxed_only
975
965
  dispatch:
976
966
  CPU: embedding_renorm_cpu_
977
967
  CUDA: embedding_renorm_cuda_
@@ -1027,6 +1017,9 @@
1027
1017
  - func: new_full(Tensor self, int[] size, Scalar fill_value, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor
1028
1018
  variants: method
1029
1019
 
1020
+ - func: new_zeros(Tensor self, int[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor
1021
+ variants: method
1022
+
1030
1023
  # other overrides are to provide a more helpful error message that dtype is required
1031
1024
  - func: _empty_affine_quantized(int[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None, float scale=1, int zero_point=0, MemoryFormat? memory_format=contiguous_format) -> Tensor
1032
1025
  dispatch:
@@ -1041,8 +1034,7 @@
1041
1034
  CPU: empty_per_channel_affine_quantized_other_backends_stub
1042
1035
  QuantizedCPU: empty_per_channel_affine_quantized_cpu
1043
1036
 
1044
- - func: resize_(Tensor(a!) self, int[] size) -> Tensor(a!)
1045
- use_c10_dispatcher: unboxed_only
1037
+ - func: resize_(Tensor(a!) self, int[] size, *, MemoryFormat? memory_format=None) -> Tensor(a!)
1046
1038
  supports_named_tensor: True
1047
1039
  variants: method
1048
1040
  device_guard: False
@@ -1054,12 +1046,11 @@
1054
1046
  - func: empty.out(int[] size, *, MemoryFormat? memory_format=None, Tensor(a!) out) -> Tensor(a!)
1055
1047
  device_guard: False
1056
1048
 
1057
- - func: empty_like(Tensor self) -> Tensor
1058
- use_c10_dispatcher: full
1049
+ - func: empty_like(Tensor self, *, MemoryFormat? memory_format=None) -> Tensor
1059
1050
  device_guard: False
1060
1051
  supports_named_tensor: True
1061
1052
 
1062
- - func: empty_like.dtype(Tensor self, *, ScalarType dtype, Layout layout, Device device, bool pin_memory=False, MemoryFormat? memory_format=contiguous_format) -> Tensor
1053
+ - func: empty_like.dtype(Tensor self, *, ScalarType dtype, Layout layout, Device device, bool pin_memory=False, MemoryFormat? memory_format=None) -> Tensor
1063
1054
  device_guard: False
1064
1055
  supports_named_tensor: True
1065
1056
 
@@ -1074,7 +1065,6 @@
1074
1065
  variants: function, method
1075
1066
 
1076
1067
  - func: erf_(Tensor(a!) self) -> Tensor(a!)
1077
- use_c10_dispatcher: unboxed_only
1078
1068
  supports_named_tensor: True
1079
1069
  variants: function, method
1080
1070
  dispatch:
@@ -1093,7 +1083,6 @@
1093
1083
  variants: function, method
1094
1084
 
1095
1085
  - func: erfc_(Tensor(a!) self) -> Tensor(a!)
1096
- use_c10_dispatcher: unboxed_only
1097
1086
  supports_named_tensor: True
1098
1087
  variants: function, method
1099
1088
  dispatch:
@@ -1112,7 +1101,6 @@
1112
1101
  variants: function, method
1113
1102
 
1114
1103
  - func: exp_(Tensor(a!) self) -> Tensor(a!)
1115
- use_c10_dispatcher: unboxed_only
1116
1104
  supports_named_tensor: True
1117
1105
  variants: function, method
1118
1106
  dispatch:
@@ -1131,7 +1119,6 @@
1131
1119
  variants: function, method
1132
1120
 
1133
1121
  - func: expm1_(Tensor(a!) self) -> Tensor(a!)
1134
- use_c10_dispatcher: unboxed_only
1135
1122
  supports_named_tensor: True
1136
1123
  variants: function, method
1137
1124
 
@@ -1142,7 +1129,6 @@
1142
1129
  CUDA: expm1_out
1143
1130
 
1144
1131
  - func: expand(Tensor(a) self, int[] size, *, bool implicit=False) -> Tensor(a)
1145
- use_c10_dispatcher: unboxed_only
1146
1132
  variants: method # This is method-only to match the previous tensor API. In the future we could make this a function too.
1147
1133
  device_guard: False
1148
1134
  supports_named_tensor: True
@@ -1179,17 +1165,15 @@
1179
1165
  variants: function, method
1180
1166
  supports_named_tensor: True
1181
1167
 
1182
- - func: flatten.DimnameList(Tensor self, DimnameList dims, Dimname out_dim) -> Tensor
1168
+ - func: flatten.DimnameList(Tensor self, Dimname[] dims, Dimname out_dim) -> Tensor
1183
1169
  variants: function, method
1184
1170
  supports_named_tensor: True
1185
1171
 
1186
1172
  - func: fill_.Scalar(Tensor(a!) self, Scalar value) -> Tensor(a!)
1187
- use_c10_dispatcher: unboxed_only
1188
1173
  supports_named_tensor: True
1189
1174
  variants: function, method
1190
1175
 
1191
1176
  - func: fill_.Tensor(Tensor(a!) self, Tensor value) -> Tensor(a!)
1192
- use_c10_dispatcher: unboxed_only
1193
1177
  supports_named_tensor: True
1194
1178
  variants: function, method
1195
1179
 
@@ -1199,7 +1183,6 @@
1199
1183
  variants: function, method
1200
1184
 
1201
1185
  - func: floor_(Tensor(a!) self) -> Tensor(a!)
1202
- use_c10_dispatcher: unboxed_only
1203
1186
  supports_named_tensor: True
1204
1187
  variants: function, method
1205
1188
 
@@ -1215,18 +1198,11 @@
1215
1198
  variants: function, method
1216
1199
 
1217
1200
  - func: frac_(Tensor(a!) self) -> Tensor(a!)
1218
- use_c10_dispatcher: unboxed_only
1219
1201
  supports_named_tensor: True
1220
1202
  variants: function, method
1221
- dispatch:
1222
- CPU: _frac__cpu
1223
- CUDA: _frac__cuda
1224
1203
 
1225
1204
  - func: frac.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)
1226
1205
  supports_named_tensor: True
1227
- dispatch:
1228
- CPU: _frac_out_cpu
1229
- CUDA: _frac_out_cuda
1230
1206
 
1231
1207
  - func: full.names(int[] size, Scalar fill_value, *, Dimname[]? names, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor
1232
1208
  device_guard: False
@@ -1235,10 +1211,11 @@
1235
1211
 
1236
1212
  - func: full.out(int[] size, Scalar fill_value, *, Tensor(a!) out) -> Tensor(a!)
1237
1213
 
1238
- - func: full_like(Tensor self, Scalar fill_value) -> Tensor
1239
- use_c10_dispatcher: full
1214
+ - func: full_like(Tensor self, Scalar fill_value, *, MemoryFormat? memory_format=None) -> Tensor
1215
+ supports_named_tensor: True
1240
1216
 
1241
- - func: full_like.dtype(Tensor self, Scalar fill_value, *, ScalarType dtype, Layout layout, Device device, bool pin_memory=False) -> Tensor
1217
+ - func: full_like.dtype(Tensor self, Scalar fill_value, *, ScalarType dtype, Layout layout, Device device, bool pin_memory=False, MemoryFormat? memory_format=None) -> Tensor
1218
+ supports_named_tensor: True
1242
1219
 
1243
1220
  - func: from_file(str filename, bool? shared=None, int? size=0, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor
1244
1221
  dispatch:
@@ -1265,7 +1242,6 @@
1265
1242
  CUDA: grid_sampler_2d_cuda
1266
1243
 
1267
1244
  - func: grid_sampler_2d_backward(Tensor grad_output, Tensor input, Tensor grid, int interpolation_mode, int padding_mode, bool align_corners) -> (Tensor, Tensor)
1268
- use_c10_dispatcher: unboxed_only
1269
1245
  dispatch:
1270
1246
  CPU: grid_sampler_2d_backward_cpu
1271
1247
  CUDA: grid_sampler_2d_backward_cuda
@@ -1277,7 +1253,6 @@
1277
1253
  CUDA: grid_sampler_3d_cuda
1278
1254
 
1279
1255
  - func: grid_sampler_3d_backward(Tensor grad_output, Tensor input, Tensor grid, int interpolation_mode, int padding_mode, bool align_corners) -> (Tensor, Tensor)
1280
- use_c10_dispatcher: unboxed_only
1281
1256
  dispatch:
1282
1257
  CPU: grid_sampler_3d_backward_cpu
1283
1258
  CUDA: grid_sampler_3d_backward_cuda
@@ -1326,11 +1301,9 @@
1326
1301
  variants: function, method
1327
1302
 
1328
1303
  - func: irfft(Tensor self, int signal_ndim, bool normalized=False, bool onesided=True, int[] signal_sizes=[]) -> Tensor
1329
- use_c10_dispatcher: unboxed_only
1330
1304
  variants: function, method
1331
1305
 
1332
1306
  - func: _fft_with_size(Tensor self, int signal_ndim, bool complex_input, bool complex_output, bool inverse, int[] checked_signal_sizes, bool normalized, bool onesided, int[] output_sizes) -> Tensor
1333
- use_c10_dispatcher: unboxed_only
1334
1307
  variants: function
1335
1308
  dispatch:
1336
1309
  CPU: _fft_mkl
@@ -1342,16 +1315,17 @@
1342
1315
  - func: _cufft_get_plan_cache_max_size(int device_index) -> int
1343
1316
  use_c10_dispatcher: full
1344
1317
 
1345
- - func: _cufft_set_plan_cache_max_size(int device_index, int max_size) -> void
1318
+ - func: _cufft_set_plan_cache_max_size(int device_index, int max_size) -> ()
1319
+ use_c10_dispatcher: unboxed_only
1346
1320
 
1347
- - func: _cufft_clear_plan_cache(int device_index) -> void
1321
+ - func: _cufft_clear_plan_cache(int device_index) -> ()
1322
+ use_c10_dispatcher: unboxed_only
1348
1323
 
1349
1324
  - func: index.Tensor(Tensor self, Tensor?[] indices) -> Tensor
1350
1325
  variants: function, method
1351
1326
  # NB: This function is special-cased in tools/autograd/gen_variable_type.py
1352
1327
 
1353
1328
  - func: index_copy_(Tensor(a!) self, int dim, Tensor index, Tensor source) -> Tensor(a!)
1354
- use_c10_dispatcher: unboxed_only
1355
1329
  variants: method
1356
1330
 
1357
1331
  - func: index_copy(Tensor self, int dim, Tensor index, Tensor source) -> Tensor
@@ -1444,7 +1418,6 @@
1444
1418
  CUDA: kl_div_backward_cuda
1445
1419
 
1446
1420
  - func: kthvalue(Tensor self, int k, int dim=-1, bool keepdim=False) -> (Tensor values, Tensor indices)
1447
- use_c10_dispatcher: unboxed_only
1448
1421
  supports_named_tensor: True
1449
1422
  variants: function, method
1450
1423
 
@@ -1466,14 +1439,12 @@
1466
1439
  - func: native_layer_norm(Tensor input, Tensor? weight, Tensor? bias, int M, int N, float eps) -> (Tensor, Tensor, Tensor)
1467
1440
  dispatch:
1468
1441
  CPU: layer_norm_cpu
1442
+ CUDA: layer_norm_cuda
1469
1443
 
1470
1444
  - func: native_layer_norm_backward(Tensor grad_out, Tensor input, Tensor mean, Tensor rstd, Tensor? weight, int M, int N, bool[3] output_mask) -> (Tensor, Tensor, Tensor)
1471
1445
  dispatch:
1472
1446
  CPU: layer_norm_backward_cpu
1473
-
1474
- - func: native_layer_norm_double_backward(Tensor? ggI, Tensor? ggW, Tensor? ggb, Tensor gO, Tensor input, Tensor mean, Tensor rstd, Tensor? weight, int M, int N, bool[3] output_mask) -> (Tensor, Tensor, Tensor)
1475
- dispatch:
1476
- CPU: layer_norm_double_backward_cpu
1447
+ CUDA: layer_norm_backward_cuda
1477
1448
 
1478
1449
  - func: linear(Tensor input, Tensor weight, Tensor? bias=None) -> Tensor
1479
1450
  python_module: nn
@@ -1484,19 +1455,16 @@
1484
1455
  MkldnnCPU: mkldnn_linear
1485
1456
 
1486
1457
  - func: fbgemm_linear_int8_weight_fp32_activation(Tensor input, Tensor weight, Tensor packed, Tensor col_offsets, Scalar weight_scale, Scalar weight_zero_point, Tensor bias) -> Tensor
1487
- use_c10_dispatcher: unboxed_only
1488
1458
 
1489
1459
  - func: fbgemm_linear_int8_weight(Tensor input, Tensor weight, Tensor packed, Tensor col_offsets, Scalar weight_scale, Scalar weight_zero_point, Tensor bias) -> Tensor
1490
1460
  use_c10_dispatcher: full
1491
1461
 
1492
1462
  - func: fbgemm_linear_quantize_weight(Tensor input) -> (Tensor, Tensor, float, int)
1493
- use_c10_dispatcher: unboxed_only
1494
1463
 
1495
1464
  - func: fbgemm_pack_gemm_matrix_fp16(Tensor input) -> Tensor
1496
1465
  use_c10_dispatcher: full
1497
1466
 
1498
1467
  - func: fbgemm_linear_fp16_weight_fp32_activation(Tensor input, Tensor packed_weight, Tensor bias) -> Tensor
1499
- use_c10_dispatcher: unboxed_only
1500
1468
 
1501
1469
  - func: fbgemm_linear_fp16_weight(Tensor input, Tensor packed_weight, Tensor bias) -> Tensor
1502
1470
  use_c10_dispatcher: full
@@ -1520,7 +1488,6 @@
1520
1488
  variants: function, method
1521
1489
 
1522
1490
  - func: log_(Tensor(a!) self) -> Tensor(a!)
1523
- use_c10_dispatcher: unboxed_only
1524
1491
  supports_named_tensor: True
1525
1492
  variants: function, method
1526
1493
 
@@ -1536,18 +1503,14 @@
1536
1503
  variants: function, method
1537
1504
 
1538
1505
  - func: log10_(Tensor(a!) self) -> Tensor(a!)
1539
- use_c10_dispatcher: unboxed_only
1540
1506
  supports_named_tensor: True
1541
1507
  variants: function, method
1542
- dispatch:
1543
- CPU: _log10__cpu
1544
- CUDA: _log10__cuda
1545
1508
 
1546
1509
  - func: log10.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)
1547
1510
  supports_named_tensor: True
1548
1511
  dispatch:
1549
- CPU: _log10_out_cpu
1550
- CUDA: _log10_out_cuda
1512
+ CPU: log10_out
1513
+ CUDA: log10_out
1551
1514
 
1552
1515
  - func: log1p(Tensor self) -> Tensor
1553
1516
  use_c10_dispatcher: full
@@ -1555,20 +1518,19 @@
1555
1518
  variants: function, method
1556
1519
 
1557
1520
  - func: log1p_(Tensor(a!) self) -> Tensor(a!)
1558
- use_c10_dispatcher: unboxed_only
1559
1521
  supports_named_tensor: True
1560
1522
  variants: function, method
1561
1523
  dispatch:
1562
- CPU: _log1p__cpu
1563
- CUDA: _log1p__cuda
1524
+ CPU: log1p_
1525
+ CUDA: log1p_
1564
1526
  SparseCPU: log1p_sparse_
1565
1527
  SparseCUDA: log1p_sparse_
1566
1528
 
1567
1529
  - func: log1p.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)
1568
1530
  supports_named_tensor: True
1569
1531
  dispatch:
1570
- CPU: _log1p_out_cpu
1571
- CUDA: _log1p_out_cuda
1532
+ CPU: log1p_out
1533
+ CUDA: log1p_out
1572
1534
  SparseCPU: log1p_out_sparse
1573
1535
  SparseCUDA: log1p_out_sparse
1574
1536
 
@@ -1578,18 +1540,14 @@
1578
1540
  variants: function, method
1579
1541
 
1580
1542
  - func: log2_(Tensor(a!) self) -> Tensor(a!)
1581
- use_c10_dispatcher: unboxed_only
1582
1543
  supports_named_tensor: True
1583
1544
  variants: function, method
1584
- dispatch:
1585
- CPU: _log2__cpu
1586
- CUDA: _log2__cuda
1587
1545
 
1588
1546
  - func: log2.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)
1589
1547
  supports_named_tensor: True
1590
1548
  dispatch:
1591
- CPU: _log2_out_cpu
1592
- CUDA: _log2_out_cuda
1549
+ CPU: log2_out
1550
+ CUDA: log2_out
1593
1551
 
1594
1552
  - func: logdet(Tensor self) -> Tensor
1595
1553
  use_c10_dispatcher: full
@@ -1603,11 +1561,11 @@
1603
1561
  CUDA: logspace_cuda_out
1604
1562
 
1605
1563
  # log_softmax allows positional dtype, unlike most operators, because kwonly is BC-breaking when loading jit models.
1606
- - func: log_softmax(Tensor self, int dim, ScalarType? dtype=None) -> Tensor
1564
+ - func: log_softmax.int(Tensor self, int dim, ScalarType? dtype=None) -> Tensor
1607
1565
  variants: function, method
1608
1566
  supports_named_tensor: True
1609
1567
 
1610
- - func: log_softmax(Tensor self, Dimname dim, *, ScalarType? dtype=None) -> Tensor
1568
+ - func: log_softmax.Dimname(Tensor self, Dimname dim, *, ScalarType? dtype=None) -> Tensor
1611
1569
  variants: function, method
1612
1570
  supports_named_tensor: True
1613
1571
 
@@ -1624,7 +1582,6 @@
1624
1582
  CUDA: log_softmax_backward_cuda
1625
1583
 
1626
1584
  - func: logsumexp(Tensor self, int[1] dim, bool keepdim=False) -> Tensor
1627
- use_c10_dispatcher: unboxed_only
1628
1585
  supports_named_tensor: True
1629
1586
  variants: function, method
1630
1587
 
@@ -1660,7 +1617,6 @@
1660
1617
  variants: function, method
1661
1618
 
1662
1619
  - func: max.dim(Tensor self, int dim, bool keepdim=False) -> (Tensor values, Tensor indices)
1663
- use_c10_dispatcher: unboxed_only
1664
1620
  variants: function, method
1665
1621
  supports_named_tensor: True
1666
1622
 
@@ -1668,7 +1624,6 @@
1668
1624
  supports_named_tensor: True
1669
1625
 
1670
1626
  - func: max_values(Tensor self, int[1] dim, bool keepdim=False) -> Tensor
1671
- use_c10_dispatcher: unboxed_only
1672
1627
  variants: function, method
1673
1628
 
1674
1629
  - func: max.names_dim(Tensor self, Dimname dim, bool keepdim=False) -> (Tensor values, Tensor indices)
@@ -1683,28 +1638,22 @@
1683
1638
 
1684
1639
  # Return: (Tensor output, Tensor indices)
1685
1640
  - func: max_pool1d_with_indices(Tensor self, int[1] kernel_size, int[1] stride=[], int[1] padding=0, int[1] dilation=1, bool ceil_mode=False) -> (Tensor, Tensor)
1686
- use_c10_dispatcher: unboxed_only
1687
1641
 
1688
1642
  - func: max_pool1d(Tensor self, int[1] kernel_size, int[1] stride=[], int[1] padding=0, int[1] dilation=1, bool ceil_mode=False) -> Tensor
1689
- use_c10_dispatcher: unboxed_only
1690
1643
 
1691
1644
  - func: max_pool2d(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=0, int[2] dilation=1, bool ceil_mode=False) -> Tensor
1692
- use_c10_dispatcher: unboxed_only
1693
1645
 
1694
1646
  - func: mkldnn_max_pool2d(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=0, int[2] dilation=1, bool ceil_mode=False) -> Tensor
1695
- use_c10_dispatcher: unboxed_only
1696
1647
  requires_tensor: True
1697
1648
  dispatch:
1698
1649
  MkldnnCPU: mkldnn_max_pool2d
1699
1650
 
1700
1651
  - func: quantized_max_pool2d(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=0, int[2] dilation=1, bool ceil_mode=False) -> Tensor
1701
- use_c10_dispatcher: unboxed_only
1702
1652
  requires_tensor: True
1703
1653
  dispatch:
1704
1654
  QuantizedCPU: quantized_max_pool2d
1705
1655
 
1706
1656
  - func: max_pool3d(Tensor self, int[3] kernel_size, int[3] stride=[], int[3] padding=0, int[3] dilation=1, bool ceil_mode=False) -> Tensor
1707
- use_c10_dispatcher: unboxed_only
1708
1657
 
1709
1658
  # The CPU and GPU dispatch variants are named weirdly here because otherwise there
1710
1659
  # are namespacing issues in C++
@@ -1734,18 +1683,11 @@
1734
1683
  - func: mean.names_dim(Tensor self, Dimname[1] dim, bool keepdim=False, *, ScalarType? dtype=None) -> Tensor
1735
1684
  variants: function, method
1736
1685
  supports_named_tensor: True
1737
- dispatch:
1738
- CPU: mean_cpu_gpu
1739
- CUDA: mean_cpu_gpu
1740
1686
 
1741
1687
  - func: mean.names_out(Tensor self, Dimname[1] dim, bool keepdim=False, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)
1742
1688
  supports_named_tensor: True
1743
- dispatch:
1744
- CPU: mean_out_cpu_gpu
1745
- CUDA: mean_out_cpu_gpu
1746
1689
 
1747
1690
  - func: median.dim(Tensor self, int dim, bool keepdim=False) -> (Tensor values, Tensor indices)
1748
- use_c10_dispatcher: unboxed_only
1749
1691
  supports_named_tensor: True
1750
1692
  variants: function, method
1751
1693
 
@@ -1760,7 +1702,6 @@
1760
1702
  supports_named_tensor: True
1761
1703
 
1762
1704
  - func: min.dim(Tensor self, int dim, bool keepdim=False) -> (Tensor values, Tensor indices)
1763
- use_c10_dispatcher: unboxed_only
1764
1705
  variants: function, method
1765
1706
  supports_named_tensor: True
1766
1707
 
@@ -1768,7 +1709,6 @@
1768
1709
  supports_named_tensor: True
1769
1710
 
1770
1711
  - func: min_values(Tensor self, int[1] dim, bool keepdim=False) -> Tensor
1771
- use_c10_dispatcher: unboxed_only
1772
1712
  variants: function, method
1773
1713
 
1774
1714
  - func: min.names_dim(Tensor self, Dimname dim, bool keepdim=False) -> (Tensor values, Tensor indices)
@@ -1784,13 +1724,10 @@
1784
1724
  - func: mkldnn_convolution(Tensor self, Tensor weight, Tensor? bias, int[] padding, int[] stride, int[] dilation, int groups) -> Tensor
1785
1725
 
1786
1726
  - func: mkldnn_convolution_backward_input(int[] self_size, Tensor grad_output, Tensor weight, int[] padding, int[] stride, int[] dilation, int groups, bool bias_defined) -> Tensor
1787
- use_c10_dispatcher: unboxed_only
1788
1727
 
1789
1728
  - func: mkldnn_convolution_backward_weights(int[] weight_size, Tensor grad_output, Tensor self, int[] padding, int[] stride, int[] dilation, int groups, bool bias_defined) -> (Tensor, Tensor)
1790
- use_c10_dispatcher: unboxed_only
1791
1729
 
1792
1730
  - func: mkldnn_convolution_backward(Tensor self, Tensor grad_output, Tensor weight, int[] padding, int[] stride, int[] dilation, int groups, bool[3] output_mask) -> (Tensor, Tensor, Tensor)
1793
- use_c10_dispatcher: unboxed_only
1794
1731
 
1795
1732
  - func: miopen_batch_norm(Tensor input, Tensor weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, bool training, float exponential_average_factor, float epsilon) -> (Tensor, Tensor, Tensor)
1796
1733
  dispatch:
@@ -1805,12 +1742,10 @@
1805
1742
  CUDA: miopen_convolution
1806
1743
 
1807
1744
  - func: miopen_convolution_backward_input(int[] self_size, Tensor grad_output, Tensor weight, int[] padding, int[] stride, int[] dilation, int groups, bool benchmark, bool deterministic) -> Tensor
1808
- use_c10_dispatcher: unboxed_only
1809
1745
  dispatch:
1810
1746
  CUDA: miopen_convolution_backward_input
1811
1747
 
1812
1748
  - func: miopen_convolution_backward(Tensor self, Tensor grad_output, Tensor weight, int[] padding, int[] stride, int[] dilation, int groups, bool benchmark, bool deterministic, bool[3] output_mask) -> (Tensor, Tensor, Tensor)
1813
- use_c10_dispatcher: unboxed_only
1814
1749
  dispatch:
1815
1750
  CUDA: miopen_convolution_backward
1816
1751
 
@@ -1820,7 +1755,6 @@
1820
1755
  CUDA: miopen_convolution_backward_bias
1821
1756
 
1822
1757
  - func: miopen_convolution_backward_weight(int[] weight_size, Tensor grad_output, Tensor self, int[] padding, int[] stride, int[] dilation, int groups, bool benchmark, bool deterministic) -> Tensor
1823
- use_c10_dispatcher: unboxed_only
1824
1758
  dispatch:
1825
1759
  CUDA: miopen_convolution_backward_weight
1826
1760
 
@@ -1831,17 +1765,14 @@
1831
1765
  # NB: output_padding not strictly needed here, but it's helpful for the float
1832
1766
  # backwards
1833
1767
  - func: miopen_convolution_transpose_backward(Tensor self, Tensor grad_output, Tensor weight, int[] padding, int[] output_padding, int[] stride, int[] dilation, int groups, bool benchmark, bool deterministic, bool[3] output_mask) -> (Tensor, Tensor, Tensor)
1834
- use_c10_dispatcher: unboxed_only
1835
1768
  dispatch:
1836
1769
  CUDA: miopen_convolution_transpose_backward
1837
1770
 
1838
1771
  - func: miopen_convolution_transpose_backward_input(Tensor grad_output, Tensor weight, int[] padding, int[] stride, int[] dilation, int groups, bool benchmark, bool deterministic) -> Tensor
1839
- use_c10_dispatcher: unboxed_only
1840
1772
  dispatch:
1841
1773
  CUDA: miopen_convolution_transpose_backward_input
1842
1774
 
1843
1775
  - func: miopen_convolution_transpose_backward_weight(int[] weight_size, Tensor grad_output, Tensor self, int[] padding, int[] stride, int[] dilation, int groups, bool benchmark, bool deterministic) -> Tensor
1844
- use_c10_dispatcher: unboxed_only
1845
1776
  dispatch:
1846
1777
  CUDA: miopen_convolution_transpose_backward_weight
1847
1778
 
@@ -1850,17 +1781,14 @@
1850
1781
  CUDA: miopen_depthwise_convolution
1851
1782
 
1852
1783
  - func: miopen_depthwise_convolution_backward_input(int[] self_size, Tensor grad_output, Tensor weight, int[] padding, int[] stride, int[] dilation, int groups, bool benchmark, bool deterministic) -> Tensor
1853
- use_c10_dispatcher: unboxed_only
1854
1784
  dispatch:
1855
1785
  CUDA: miopen_depthwise_convolution_backward_input
1856
1786
 
1857
1787
  - func: miopen_depthwise_convolution_backward(Tensor self, Tensor grad_output, Tensor weight, int[] padding, int[] stride, int[] dilation, int groups, bool benchmark, bool deterministic, bool[3] output_mask) -> (Tensor, Tensor, Tensor)
1858
- use_c10_dispatcher: unboxed_only
1859
1788
  dispatch:
1860
1789
  CUDA: miopen_depthwise_convolution_backward
1861
1790
 
1862
1791
  - func: miopen_depthwise_convolution_backward_weight(int[] weight_size, Tensor grad_output, Tensor self, int[] padding, int[] stride, int[] dilation, int groups, bool benchmark, bool deterministic) -> Tensor
1863
- use_c10_dispatcher: unboxed_only
1864
1792
  dispatch:
1865
1793
  CUDA: miopen_depthwise_convolution_backward_weight
1866
1794
 
@@ -1894,7 +1822,6 @@
1894
1822
  use_c10_dispatcher: full
1895
1823
 
1896
1824
  - func: mode(Tensor self, int dim=-1, bool keepdim=False) -> (Tensor values, Tensor indices)
1897
- use_c10_dispatcher: unboxed_only
1898
1825
  supports_named_tensor: True
1899
1826
  variants: function, method
1900
1827
 
@@ -1920,7 +1847,6 @@
1920
1847
  supports_named_tensor: True
1921
1848
 
1922
1849
  - func: mul_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)
1923
- use_c10_dispatcher: unboxed_only
1924
1850
  variants: method
1925
1851
  dispatch:
1926
1852
  CPU: mul_
@@ -1945,7 +1871,6 @@
1945
1871
  variants: function, method
1946
1872
 
1947
1873
  - func: mul_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)
1948
- use_c10_dispatcher: unboxed_only
1949
1874
  variants: method
1950
1875
 
1951
1876
  - func: mv(Tensor self, Tensor vec) -> Tensor
@@ -1967,7 +1892,6 @@
1967
1892
  variants: function, method
1968
1893
 
1969
1894
  - func: mvlgamma_(Tensor(a!) self, int p) -> Tensor(a!)
1970
- use_c10_dispatcher: unboxed_only
1971
1895
  variants: method
1972
1896
 
1973
1897
  - func: narrow_copy(Tensor self, int dim, int start, int length) -> Tensor
@@ -1980,7 +1904,6 @@
1980
1904
  SparseCUDA: narrow_copy_sparse
1981
1905
 
1982
1906
  - func: narrow(Tensor(a) self, int dim, int start, int length) -> Tensor(a)
1983
- use_c10_dispatcher: unboxed_only
1984
1907
  variants: function, method
1985
1908
  device_guard: False
1986
1909
  supports_named_tensor: True
@@ -1992,7 +1915,6 @@
1992
1915
  MkldnnCPU: mkldnn_batch_norm
1993
1916
 
1994
1917
  - func: batch_norm_stats(Tensor input, float eps) -> (Tensor, Tensor)
1995
- use_c10_dispatcher: unboxed_only
1996
1918
  dispatch:
1997
1919
  CUDA: batch_norm_stats_cuda
1998
1920
 
@@ -2000,6 +1922,10 @@
2000
1922
  dispatch:
2001
1923
  CUDA: batch_norm_elemt_cuda
2002
1924
 
1925
+ - func: batch_norm_elemt.out(Tensor input, Tensor? weight, Tensor? bias, Tensor mean, Tensor invstd, float eps, *, Tensor(a!) out) -> Tensor(a!)
1926
+ dispatch:
1927
+ CUDA: batch_norm_elemt_cuda_out
1928
+
2003
1929
  # for backward compatibility
2004
1930
  - func: batch_norm_gather_stats(Tensor input, Tensor mean, Tensor invstd, Tensor? running_mean, Tensor? running_var, float momentum, float eps, int count) -> (Tensor, Tensor)
2005
1931
  dispatch:
@@ -2030,19 +1956,16 @@
2030
1956
  - func: _nnpack_available() -> bool
2031
1957
  use_c10_dispatcher: full
2032
1958
 
2033
- - func: _nnpack_spatial_convolution(Tensor input, Tensor weight, Tensor? bias, int[2] padding) -> Tensor
1959
+ - func: _nnpack_spatial_convolution(Tensor input, Tensor weight, Tensor? bias, int[2] padding, int[2] stride=1) -> Tensor
2034
1960
  variants: function
2035
1961
 
2036
1962
  - func: _nnpack_spatial_convolution_backward(Tensor input, Tensor grad_output, Tensor weight, int[2] padding, bool[3] output_mask) -> (Tensor, Tensor, Tensor)
2037
- use_c10_dispatcher: unboxed_only
2038
1963
  variants: function
2039
1964
 
2040
1965
  - func: _nnpack_spatial_convolution_backward_input(Tensor input, Tensor grad_output, Tensor weight, int[2] padding) -> Tensor
2041
- use_c10_dispatcher: unboxed_only
2042
1966
  variants: function
2043
1967
 
2044
1968
  - func: _nnpack_spatial_convolution_backward_weight(Tensor input, int[] weightsize, Tensor grad_output, int[2] padding) -> Tensor
2045
- use_c10_dispatcher: unboxed_only
2046
1969
  variants: function
2047
1970
 
2048
1971
  - func: ones.names(int[] size, *, Dimname[]? names, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor
@@ -2052,16 +1975,18 @@
2052
1975
 
2053
1976
  - func: ones.out(int[] size, *, Tensor(a!) out) -> Tensor(a!)
2054
1977
 
2055
- - func: ones_like(Tensor self) -> Tensor
2056
- use_c10_dispatcher: full
1978
+ - func: ones_like(Tensor self, *, MemoryFormat? memory_format=None) -> Tensor
1979
+ supports_named_tensor: True
2057
1980
 
2058
- - func: ones_like.dtype(Tensor self, *, ScalarType dtype, Layout layout, Device device, bool pin_memory=False) -> Tensor
1981
+ - func: ones_like.dtype(Tensor self, *, ScalarType dtype, Layout layout, Device device, bool pin_memory=False, MemoryFormat? memory_format=None) -> Tensor
1982
+ supports_named_tensor: True
2059
1983
 
2060
1984
  - func: pairwise_distance(Tensor x1, Tensor x2, float p=2, float eps=1e-06, bool keepdim=False) -> Tensor
2061
1985
  use_c10_dispatcher: full
2062
1986
 
2063
- - func: cdist(Tensor x1, Tensor x2, float p=2) -> Tensor
1987
+ - func: cdist(Tensor x1, Tensor x2, float p=2, int? compute_mode=None) -> Tensor
2064
1988
  use_c10_dispatcher: full
1989
+ supports_named_tensor: True
2065
1990
 
2066
1991
  - func: _cdist_backward(Tensor grad, Tensor x1, Tensor x2, float p, Tensor cdist) -> Tensor
2067
1992
  use_c10_dispatcher: full
@@ -2080,7 +2005,6 @@
2080
2005
  variants: function
2081
2006
 
2082
2007
  - func: permute(Tensor(a) self, int[] dims) -> Tensor(a)
2083
- use_c10_dispatcher: unboxed_only
2084
2008
  variants: method # This is method-only to match the previous tensor API. In the future we could make this a function too.
2085
2009
 
2086
2010
  # Only exposed from C++ -- in Python,
@@ -2091,7 +2015,6 @@
2091
2015
  # behavior on Windows, for reasons I don't understand
2092
2016
  # (maybe related to capital letter collation somehow...)
2093
2017
  - func: numpy_T(Tensor(a) self) -> Tensor(a)
2094
- use_c10_dispatcher: unboxed_only
2095
2018
  variants: method
2096
2019
 
2097
2020
  - func: pixel_shuffle(Tensor self, int upscale_factor) -> Tensor
@@ -2130,10 +2053,11 @@
2130
2053
 
2131
2054
  - func: rand.generator_out(int[] size, *, Generator? generator, Tensor(a!) out) -> Tensor(a!)
2132
2055
 
2133
- - func: rand_like(Tensor self) -> Tensor
2134
- use_c10_dispatcher: full
2056
+ - func: rand_like(Tensor self, *, MemoryFormat? memory_format=None) -> Tensor
2057
+ supports_named_tensor: True
2135
2058
 
2136
- - func: rand_like.dtype(Tensor self, *, ScalarType dtype, Layout layout, Device device, bool pin_memory=False) -> Tensor
2059
+ - func: rand_like.dtype(Tensor self, *, ScalarType dtype, Layout layout, Device device, bool pin_memory=False, MemoryFormat? memory_format=None) -> Tensor
2060
+ supports_named_tensor: True
2137
2061
 
2138
2062
  - func: randint(int high, int[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor
2139
2063
 
@@ -2151,15 +2075,13 @@
2151
2075
 
2152
2076
  - func: randint.low_generator_out(int low, int high, int[] size, *, Generator? generator, Tensor(a!) out) -> Tensor(a!)
2153
2077
 
2154
- - func: randint_like(Tensor self, int high) -> Tensor
2155
- use_c10_dispatcher: full
2078
+ - func: randint_like(Tensor self, int high, *, MemoryFormat? memory_format=None) -> Tensor
2156
2079
 
2157
- - func: randint_like.low(Tensor self, int low, int high) -> Tensor
2158
- use_c10_dispatcher: full
2080
+ - func: randint_like.low(Tensor self, int low, int high, *, MemoryFormat? memory_format=None) -> Tensor
2159
2081
 
2160
- - func: randint_like.dtype(Tensor self, int high, *, ScalarType dtype, Layout layout, Device device, bool pin_memory=False) -> Tensor
2082
+ - func: randint_like.dtype(Tensor self, int high, *, ScalarType dtype, Layout layout, Device device, bool pin_memory=False, MemoryFormat? memory_format=None) -> Tensor
2161
2083
 
2162
- - func: randint_like.low_dtype(Tensor self, int low, int high, *, ScalarType dtype, Layout layout, Device device, bool pin_memory=False) -> Tensor
2084
+ - func: randint_like.low_dtype(Tensor self, int low, int high, *, ScalarType dtype, Layout layout, Device device, bool pin_memory=False, MemoryFormat? memory_format=None) -> Tensor
2163
2085
 
2164
2086
  - func: randn(int[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor
2165
2087
 
@@ -2175,10 +2097,11 @@
2175
2097
 
2176
2098
  - func: randn.generator_out(int[] size, *, Generator? generator, Tensor(a!) out) -> Tensor(a!)
2177
2099
 
2178
- - func: randn_like(Tensor self) -> Tensor
2179
- use_c10_dispatcher: full
2100
+ - func: randn_like(Tensor self, *, MemoryFormat? memory_format=None) -> Tensor
2101
+ supports_named_tensor: True
2180
2102
 
2181
- - func: randn_like.dtype(Tensor self, *, ScalarType dtype, Layout layout, Device device, bool pin_memory=False) -> Tensor
2103
+ - func: randn_like.dtype(Tensor self, *, ScalarType dtype, Layout layout, Device device, bool pin_memory=False, MemoryFormat? memory_format=None) -> Tensor
2104
+ supports_named_tensor: True
2182
2105
 
2183
2106
  - func: randperm(int n, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor
2184
2107
 
@@ -2206,7 +2129,6 @@
2206
2129
  variants: function, method
2207
2130
 
2208
2131
  - func: reciprocal_(Tensor(a!) self) -> Tensor(a!)
2209
- use_c10_dispatcher: unboxed_only
2210
2132
  supports_named_tensor: True
2211
2133
  variants: function, method
2212
2134
  dispatch:
@@ -2225,7 +2147,6 @@
2225
2147
  variants: function, method
2226
2148
 
2227
2149
  - func: neg_(Tensor(a!) self) -> Tensor(a!)
2228
- use_c10_dispatcher: unboxed_only
2229
2150
  supports_named_tensor: True
2230
2151
  variants: function, method
2231
2152
 
@@ -2236,7 +2157,6 @@
2236
2157
  CUDA: neg_out
2237
2158
 
2238
2159
  - func: repeat(Tensor self, int[] repeats) -> Tensor
2239
- use_c10_dispatcher: unboxed_only
2240
2160
  variants: method # This is method-only to match the previous tensor API. In the future we could make this a function too.
2241
2161
 
2242
2162
  - func: repeat_interleave.Tensor(Tensor repeats) -> Tensor
@@ -2255,13 +2175,11 @@
2255
2175
  variants: function, method
2256
2176
 
2257
2177
  - func: reshape(Tensor self, int[] shape) -> Tensor
2258
- use_c10_dispatcher: unboxed_only
2259
2178
  variants: function, method
2260
2179
  device_guard: False
2261
2180
  supports_named_tensor: True
2262
2181
 
2263
2182
  - func: _mkldnn_reshape(Tensor self, int[] shape) -> Tensor
2264
- use_c10_dispatcher: unboxed_only
2265
2183
  device_guard: False
2266
2184
  requires_tensor: True
2267
2185
  dispatch:
@@ -2278,7 +2196,6 @@
2278
2196
  variants: function, method
2279
2197
 
2280
2198
  - func: round_(Tensor(a!) self) -> Tensor(a!)
2281
- use_c10_dispatcher: unboxed_only
2282
2199
  supports_named_tensor: True
2283
2200
  variants: function, method
2284
2201
 
@@ -2289,10 +2206,8 @@
2289
2206
  CUDA: round_out
2290
2207
 
2291
2208
  - func: rrelu(Tensor self, Scalar lower=0.125, Scalar upper=0.3333333333333333, bool training=False, Generator? generator=None) -> Tensor
2292
- use_c10_dispatcher: 'unboxed_only'
2293
2209
 
2294
2210
  - func: rrelu_(Tensor(a!) self, Scalar lower=0.125, Scalar upper=0.3333333333333333, bool training=False, Generator? generator=None) -> Tensor(a!)
2295
- use_c10_dispatcher: 'unboxed_only'
2296
2211
 
2297
2212
  - func: relu(Tensor self) -> Tensor
2298
2213
  use_c10_dispatcher: full
@@ -2305,7 +2220,6 @@
2305
2220
  supports_named_tensor: True
2306
2221
 
2307
2222
  - func: relu_(Tensor(a!) self) -> Tensor(a!)
2308
- use_c10_dispatcher: unboxed_only
2309
2223
  supports_named_tensor: True
2310
2224
  variants: function, method
2311
2225
  dispatch:
@@ -2322,7 +2236,6 @@
2322
2236
  CUDA: prelu_cuda
2323
2237
 
2324
2238
  - func: prelu_backward(Tensor grad_output, Tensor self, Tensor weight) -> (Tensor, Tensor)
2325
- use_c10_dispatcher: unboxed_only
2326
2239
  variants: function, method
2327
2240
  dispatch:
2328
2241
  CPU: prelu_backward_cpu
@@ -2362,7 +2275,6 @@
2362
2275
  variants: function, method
2363
2276
 
2364
2277
  - func: rsqrt_(Tensor(a!) self) -> Tensor(a!)
2365
- use_c10_dispatcher: unboxed_only
2366
2278
  supports_named_tensor: True
2367
2279
  variants: function, method
2368
2280
 
@@ -2378,7 +2290,6 @@
2378
2290
  supports_named_tensor: True
2379
2291
 
2380
2292
  - func: select.int(Tensor(a) self, int dim, int index) -> Tensor(a)
2381
- use_c10_dispatcher: unboxed_only
2382
2293
  variants: function, method
2383
2294
  device_guard: False
2384
2295
  supports_named_tensor: True
@@ -2387,13 +2298,11 @@
2387
2298
  use_c10_dispatcher: full
2388
2299
 
2389
2300
  - func: selu_(Tensor(a!) self) -> Tensor(a!)
2390
- use_c10_dispatcher: unboxed_only
2391
2301
 
2392
2302
  - func: celu(Tensor self, Scalar alpha=1.0) -> Tensor
2393
2303
  use_c10_dispatcher: full
2394
2304
 
2395
2305
  - func: celu_(Tensor(a!) self, Scalar alpha=1.0) -> Tensor(a!)
2396
- use_c10_dispatcher: unboxed_only
2397
2306
 
2398
2307
 
2399
2308
  - func: sigmoid(Tensor self) -> Tensor
@@ -2406,19 +2315,15 @@
2406
2315
  MkldnnCPU: mkldnn_sigmoid
2407
2316
 
2408
2317
  - func: sigmoid_(Tensor(a!) self) -> Tensor(a!)
2409
- use_c10_dispatcher: unboxed_only
2410
2318
  supports_named_tensor: True
2411
2319
  variants: function, method
2412
2320
  dispatch:
2413
- CPU: _sigmoid__cpu
2414
- CUDA: _sigmoid__cuda
2321
+ CPU: sigmoid_
2322
+ CUDA: sigmoid_
2415
2323
  MkldnnCPU: mkldnn_sigmoid_
2416
2324
 
2417
2325
  - func: sigmoid.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)
2418
2326
  supports_named_tensor: True
2419
- dispatch:
2420
- CPU: _sigmoid_out_cpu
2421
- CUDA: _sigmoid_out_cuda
2422
2327
 
2423
2328
  - func: sin(Tensor self) -> Tensor
2424
2329
  use_c10_dispatcher: full
@@ -2426,18 +2331,14 @@
2426
2331
  variants: function, method
2427
2332
 
2428
2333
  - func: sin_(Tensor(a!) self) -> Tensor(a!)
2429
- use_c10_dispatcher: unboxed_only
2430
2334
  supports_named_tensor: True
2431
2335
  variants: function, method
2432
- dispatch:
2433
- CPU: _sin__cpu
2434
- CUDA: _sin__cuda
2435
2336
 
2436
2337
  - func: sin.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)
2437
2338
  supports_named_tensor: True
2438
2339
  dispatch:
2439
- CPU: _sin_out_cpu
2440
- CUDA: _sin_out_cuda
2340
+ CPU: sin_out
2341
+ CUDA: sin_out
2441
2342
 
2442
2343
  - func: sinh(Tensor self) -> Tensor
2443
2344
  use_c10_dispatcher: full
@@ -2445,26 +2346,32 @@
2445
2346
  variants: function, method
2446
2347
 
2447
2348
  - func: sinh_(Tensor(a!) self) -> Tensor(a!)
2448
- use_c10_dispatcher: unboxed_only
2449
2349
  supports_named_tensor: True
2450
2350
  variants: function, method
2451
- dispatch:
2452
- CPU: _sinh__cpu
2453
- CUDA: _sinh__cuda
2454
2351
 
2455
2352
  - func: sinh.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)
2456
2353
  supports_named_tensor: True
2457
- dispatch:
2458
- CPU: _sinh_out_cpu
2459
- CUDA: _sinh_out_cuda
2460
2354
 
2355
+ # Returns a copy of this `Variable` that is detached from its autograd graph.
2356
+ # This method is OK to call if the `Variable` is a view.
2357
+ #
2358
+ # NOTE: Previously, if we change the tensor metadata (e.g. sizes / strides /
2359
+ # storage / storage_offset) of a tensor created from `detach()`, those metadata
2360
+ # in the original tensor will also be updated. However, the new behavior is that
2361
+ # those metadata changes to the detached tensor will not update the original tensor
2362
+ # anymore, and in the `detach()` function we need to set `allow_tensor_metadata_change_`
2363
+ # to false to make such changes explicitly illegal, in order to prevent users from
2364
+ # changing metadata of the detached tensor and expecting the original tensor to also
2365
+ # be updated.
2461
2366
  - func: detach(Tensor self) -> Tensor
2462
2367
  use_c10_dispatcher: full
2463
2368
  supports_named_tensor: True
2464
2369
  variants: function, method
2465
2370
 
2371
+ # Like `detach()`, but modifies this `Variable` in-place. This method may
2372
+ # only be called on non-view `Variable`s. You can use `is_view()` to check
2373
+ # this. If this `Variable` is a view, throws an `std::runtime_error()`.
2466
2374
  - func: detach_(Tensor(a!) self) -> Tensor(a!)
2467
- use_c10_dispatcher: unboxed_only
2468
2375
  supports_named_tensor: True
2469
2376
  variants: function, method
2470
2377
 
@@ -2480,13 +2387,11 @@
2480
2387
  supports_named_tensor: True
2481
2388
 
2482
2389
  - func: slice.Tensor(Tensor(a) self, int dim=0, int start=0, int end=9223372036854775807, int step=1) -> Tensor(a)
2483
- use_c10_dispatcher: unboxed_only
2484
2390
  variants: function, method
2485
2391
  device_guard: False
2486
2392
  supports_named_tensor: True
2487
2393
 
2488
2394
  - func: slogdet(Tensor self) -> (Tensor sign, Tensor logabsdet)
2489
- use_c10_dispatcher: unboxed_only
2490
2395
  variants: function, method
2491
2396
 
2492
2397
  - func: smm(Tensor self, Tensor mat2) -> Tensor
@@ -2494,11 +2399,11 @@
2494
2399
  variants: function, method
2495
2400
 
2496
2401
  # softmax allows positional dtype, unlike most operators, because kwonly is BC-breaking when loading jit models.
2497
- - func: softmax(Tensor self, int dim, ScalarType? dtype=None) -> Tensor
2402
+ - func: softmax.int(Tensor self, int dim, ScalarType? dtype=None) -> Tensor
2498
2403
  variants: function, method
2499
2404
  supports_named_tensor: True
2500
2405
 
2501
- - func: softmax(Tensor self, Dimname dim, *, ScalarType? dtype=None) -> Tensor
2406
+ - func: softmax.Dimname(Tensor self, Dimname dim, *, ScalarType? dtype=None) -> Tensor
2502
2407
  variants: function, method
2503
2408
  supports_named_tensor: True
2504
2409
 
@@ -2516,25 +2421,21 @@
2516
2421
  CUDA: softmax_backward_cuda
2517
2422
 
2518
2423
  - func: split.Tensor(Tensor(a) self, int split_size, int dim=0) -> Tensor(a)[]
2519
- use_c10_dispatcher: unboxed_only
2520
2424
  variants: function, method
2521
2425
  device_guard: False
2522
2426
  supports_named_tensor: True
2523
2427
 
2524
2428
  - func: split_with_sizes(Tensor self, int[] split_sizes, int dim=0) -> Tensor[]
2525
- use_c10_dispatcher: unboxed_only
2526
2429
  variants: function, method
2527
2430
  device_guard: False
2528
2431
  supports_named_tensor: True
2529
2432
 
2530
2433
  - func: squeeze(Tensor(a) self) -> Tensor(a)
2531
- use_c10_dispatcher: unboxed_only
2532
2434
  supports_named_tensor: True
2533
2435
  variants: function, method
2534
2436
  device_guard: False
2535
2437
 
2536
2438
  - func: squeeze.dim(Tensor(a) self, int dim) -> Tensor(a)
2537
- use_c10_dispatcher: unboxed_only
2538
2439
  supports_named_tensor: True
2539
2440
  variants: function, method
2540
2441
  device_guard: False
@@ -2545,12 +2446,10 @@
2545
2446
  device_guard: False
2546
2447
 
2547
2448
  - func: squeeze_(Tensor(a!) self) -> Tensor(a!)
2548
- use_c10_dispatcher: unboxed_only
2549
2449
  variants: method
2550
2450
  device_guard: False
2551
2451
 
2552
2452
  - func: squeeze_.dim(Tensor(a!) self, int dim) -> Tensor(a!)
2553
- use_c10_dispatcher: unboxed_only
2554
2453
  variants: method
2555
2454
  device_guard: False
2556
2455
 
@@ -2570,7 +2469,6 @@
2570
2469
  SparseCUDA: _sspaddmm_out_cuda
2571
2470
 
2572
2471
  - func: stack(Tensor[] tensors, int dim=0) -> Tensor
2573
- use_c10_dispatcher: unboxed_only
2574
2472
 
2575
2473
  - func: stack.out(Tensor[] tensors, int dim=0, *, Tensor(a!) out) -> Tensor(a!)
2576
2474
 
@@ -2611,7 +2509,6 @@
2611
2509
  supports_named_tensor: True
2612
2510
 
2613
2511
  - func: sum_to_size(Tensor self, int[] size) -> Tensor
2614
- use_c10_dispatcher: unboxed_only
2615
2512
  variants: method
2616
2513
  device_guard: False
2617
2514
 
@@ -2621,18 +2518,11 @@
2621
2518
  variants: function, method
2622
2519
 
2623
2520
  - func: sqrt_(Tensor(a!) self) -> Tensor(a!)
2624
- use_c10_dispatcher: unboxed_only
2625
2521
  supports_named_tensor: True
2626
2522
  variants: function, method
2627
- dispatch:
2628
- CPU: _sqrt__cpu
2629
- CUDA: _sqrt__cuda
2630
2523
 
2631
2524
  - func: sqrt.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)
2632
2525
  supports_named_tensor: True
2633
- dispatch:
2634
- CPU: _sqrt_out_cpu
2635
- CUDA: _sqrt_out_cuda
2636
2526
 
2637
2527
  - func: std(Tensor self, bool unbiased=True) -> Tensor
2638
2528
  use_c10_dispatcher: full
@@ -2640,17 +2530,14 @@
2640
2530
  supports_named_tensor: True
2641
2531
 
2642
2532
  - func: std.dim(Tensor self, int[1] dim, bool unbiased=True, bool keepdim=False) -> Tensor
2643
- use_c10_dispatcher: unboxed_only
2644
2533
  variants: function, method
2645
2534
  supports_named_tensor: True
2646
2535
 
2647
2536
  - func: std_mean(Tensor self, bool unbiased=True) -> (Tensor, Tensor)
2648
- use_c10_dispatcher: unboxed_only
2649
2537
  variants: function
2650
2538
  supports_named_tensor: True
2651
2539
 
2652
2540
  - func: std_mean.dim(Tensor self, int[1] dim, bool unbiased=True, bool keepdim=False) -> (Tensor, Tensor)
2653
- use_c10_dispatcher: unboxed_only
2654
2541
  variants: function
2655
2542
  supports_named_tensor: True
2656
2543
 
@@ -2688,13 +2575,11 @@
2688
2575
 
2689
2576
 
2690
2577
  - func: t(Tensor(a) self) -> Tensor(a)
2691
- use_c10_dispatcher: unboxed_only
2692
2578
  device_guard: False
2693
2579
  variants: function, method
2694
2580
  supports_named_tensor: True
2695
2581
 
2696
2582
  - func: t_(Tensor(a!) self) -> Tensor(a!)
2697
- use_c10_dispatcher: unboxed_only
2698
2583
  device_guard: False
2699
2584
  variants: method
2700
2585
 
@@ -2704,7 +2589,6 @@
2704
2589
  variants: function, method
2705
2590
 
2706
2591
  - func: tan_(Tensor(a!) self) -> Tensor(a!)
2707
- use_c10_dispatcher: unboxed_only
2708
2592
  supports_named_tensor: True
2709
2593
  variants: function, method
2710
2594
  dispatch:
@@ -2723,7 +2607,6 @@
2723
2607
  variants: function, method
2724
2608
 
2725
2609
  - func: tanh_(Tensor(a!) self) -> Tensor(a!)
2726
- use_c10_dispatcher: unboxed_only
2727
2610
  supports_named_tensor: True
2728
2611
  variants: function, method
2729
2612
  dispatch:
@@ -2737,7 +2620,6 @@
2737
2620
  CUDA: _tanh_out_cuda
2738
2621
 
2739
2622
  - func: tensordot(Tensor self, Tensor other, int[] dims_self, int[] dims_other) -> Tensor
2740
- use_c10_dispatcher: unboxed_only
2741
2623
  variants: function
2742
2624
 
2743
2625
  # TODO: namespace threshold in 'nn'
@@ -2747,7 +2629,6 @@
2747
2629
  supports_named_tensor: True
2748
2630
 
2749
2631
  - func: threshold_(Tensor(a!) self, Scalar threshold, Scalar value) -> Tensor(a!)
2750
- use_c10_dispatcher: unboxed_only
2751
2632
  variants: function
2752
2633
  supports_named_tensor: True
2753
2634
 
@@ -2759,7 +2640,6 @@
2759
2640
  variants: function
2760
2641
 
2761
2642
  - func: transpose.int(Tensor(a) self, int dim0, int dim1) -> Tensor(a)
2762
- use_c10_dispatcher: unboxed_only
2763
2643
  variants: function, method
2764
2644
  device_guard: False
2765
2645
  supports_named_tensor: True
@@ -2777,12 +2657,10 @@
2777
2657
  MkldnnCPU: mkldnn_transpose
2778
2658
 
2779
2659
  - func: transpose_(Tensor(a!) self, int dim0, int dim1) -> Tensor(a!)
2780
- use_c10_dispatcher: unboxed_only
2781
2660
  variants: method
2782
2661
  device_guard: False
2783
2662
 
2784
2663
  - func: _mkldnn_transpose_(Tensor(a!) self, int dim0, int dim1) -> Tensor(a!)
2785
- use_c10_dispatcher: unboxed_only
2786
2664
  device_guard: False
2787
2665
  requires_tensor: True
2788
2666
  dispatch:
@@ -2794,14 +2672,12 @@
2794
2672
  variants: function
2795
2673
 
2796
2674
  - func: flip(Tensor self, int[] dims) -> Tensor
2797
- use_c10_dispatcher: unboxed_only
2798
2675
  variants: function, method
2799
2676
  dispatch:
2800
2677
  CPU: flip_cpu
2801
2678
  CUDA: flip_cuda
2802
2679
 
2803
2680
  - func: roll(Tensor self, int[1] shifts, int[1] dims=[]) -> Tensor
2804
- use_c10_dispatcher: unboxed_only
2805
2681
  variants: function, method
2806
2682
  dispatch:
2807
2683
  CPU: roll_cpu
@@ -2810,7 +2686,6 @@
2810
2686
  # default int[] value [0,1] should not add space after comma, since native_parse.py uses ', ' to split args
2811
2687
 
2812
2688
  - func: rot90(Tensor self, int k=1, int[] dims=[0,1]) -> Tensor
2813
- use_c10_dispatcher: unboxed_only
2814
2689
  variants: function, method
2815
2690
 
2816
2691
  - func: trapz.x(Tensor y, Tensor x, *, int dim=-1) -> Tensor
@@ -2820,7 +2695,6 @@
2820
2695
  use_c10_dispatcher: full
2821
2696
 
2822
2697
  - func: _trilinear(Tensor i1, Tensor i2, Tensor i3, int[] expand1, int[] expand2, int[] expand3, int[] sumdim, int unroll_dim=1) -> Tensor
2823
- use_c10_dispatcher: unboxed_only
2824
2698
 
2825
2699
  - func: triplet_margin_loss(Tensor anchor, Tensor positive, Tensor negative, float margin=1.0, float p=2, float eps=1e-06, bool swap=False, int reduction=Mean) -> Tensor
2826
2700
  use_c10_dispatcher: full
@@ -2831,7 +2705,6 @@
2831
2705
  variants: function, method
2832
2706
 
2833
2707
  - func: trunc_(Tensor(a!) self) -> Tensor(a!)
2834
- use_c10_dispatcher: unboxed_only
2835
2708
  supports_named_tensor: True
2836
2709
  variants: function, method
2837
2710
 
@@ -2850,28 +2723,24 @@
2850
2723
  variants: function
2851
2724
 
2852
2725
  - func: _unique(Tensor self, bool sorted=True, bool return_inverse=False) -> (Tensor, Tensor)
2853
- use_c10_dispatcher: unboxed_only
2854
2726
  variants: function
2855
2727
  dispatch:
2856
2728
  CPU: _unique_cpu
2857
2729
  CUDA: _unique_cuda
2858
2730
 
2859
2731
  - func: unique_dim(Tensor self, int dim, bool sorted=True, bool return_inverse=False, bool return_counts=False) -> (Tensor, Tensor, Tensor)
2860
- use_c10_dispatcher: unboxed_only
2861
2732
  variants: function
2862
2733
  dispatch:
2863
2734
  CPU: unique_dim_cpu
2864
2735
  CUDA: unique_dim_cuda
2865
2736
 
2866
2737
  - func: unique_consecutive(Tensor self, bool return_inverse=False, bool return_counts=False, int? dim=None) -> (Tensor, Tensor, Tensor)
2867
- use_c10_dispatcher: unboxed_only
2868
2738
  variants: function
2869
2739
  dispatch:
2870
2740
  CPU: unique_consecutive_cpu
2871
2741
  CUDA: unique_consecutive_cuda
2872
2742
 
2873
2743
  - func: unique_dim_consecutive(Tensor self, int dim, bool return_inverse=False, bool return_counts=False) -> (Tensor, Tensor, Tensor)
2874
- use_c10_dispatcher: unboxed_only
2875
2744
  variants: function
2876
2745
  dispatch:
2877
2746
  CPU: unique_dim_consecutive_cpu
@@ -2882,22 +2751,18 @@
2882
2751
  # Please don't rely on these two operators, they will be removed soon
2883
2752
 
2884
2753
  - func: _unique2(Tensor self, bool sorted=True, bool return_inverse=False, bool return_counts=False) -> (Tensor, Tensor, Tensor)
2885
- use_c10_dispatcher: unboxed_only
2886
2754
  variants: function
2887
2755
  dispatch:
2888
2756
  CPU: _unique2_cpu
2889
2757
  CUDA: _unique2_cuda
2890
2758
 
2891
2759
  - func: _unsafe_view(Tensor self, int[] size) -> Tensor
2892
- use_c10_dispatcher: unboxed_only
2893
2760
 
2894
2761
  - func: unsqueeze(Tensor(a) self, int dim) -> Tensor(a)
2895
- use_c10_dispatcher: unboxed_only
2896
2762
  variants: function, method
2897
2763
  device_guard: False
2898
2764
 
2899
2765
  - func: unsqueeze_(Tensor(a!) self, int dim) -> Tensor(a!)
2900
- use_c10_dispatcher: unboxed_only
2901
2766
  variants: method
2902
2767
  device_guard: False
2903
2768
 
@@ -2907,7 +2772,6 @@
2907
2772
  supports_named_tensor: True
2908
2773
 
2909
2774
  - func: var.dim(Tensor self, int[1] dim, bool unbiased=True, bool keepdim=False) -> Tensor
2910
- use_c10_dispatcher: unboxed_only
2911
2775
  variants: function, method
2912
2776
  supports_named_tensor: True
2913
2777
 
@@ -2922,12 +2786,10 @@
2922
2786
  supports_named_tensor: True
2923
2787
 
2924
2788
  - func: var_mean(Tensor self, bool unbiased=True) -> (Tensor, Tensor)
2925
- use_c10_dispatcher: unboxed_only
2926
2789
  variants: function
2927
2790
  supports_named_tensor: True
2928
2791
 
2929
2792
  - func: var_mean.dim(Tensor self, int[1] dim, bool unbiased=True, bool keepdim=False) -> (Tensor, Tensor)
2930
- use_c10_dispatcher: unboxed_only
2931
2793
  variants: function
2932
2794
  supports_named_tensor: True
2933
2795
 
@@ -2948,7 +2810,6 @@
2948
2810
  variants: function, method
2949
2811
 
2950
2812
  - func: where(Tensor condition) -> Tensor[]
2951
- use_c10_dispatcher: unboxed_only
2952
2813
  variants: function
2953
2814
 
2954
2815
  - func: _s_where(Tensor condition, Tensor self, Tensor other) -> Tensor
@@ -2959,7 +2820,6 @@
2959
2820
  CUDA: _s_where_cuda
2960
2821
 
2961
2822
  - func: norm_except_dim(Tensor v, int pow=2, int dim=0) -> Tensor
2962
- use_c10_dispatcher: unboxed_only
2963
2823
  variants: function
2964
2824
 
2965
2825
  # VariableType::_weight_norm does not want to be given a gap in the autograd graph,
@@ -2969,19 +2829,16 @@
2969
2829
  variants: function
2970
2830
 
2971
2831
  - func: _weight_norm_cuda_interface(Tensor v, Tensor g, int dim=0) -> (Tensor, Tensor)
2972
- use_c10_dispatcher: unboxed_only
2973
2832
  variants: function
2974
2833
  dispatch:
2975
2834
  CUDA: weight_norm_cuda
2976
2835
 
2977
2836
  - func: _weight_norm_cuda_interface_backward(Tensor grad_w, Tensor saved_v, Tensor saved_g, Tensor saved_norms, int dim) -> (Tensor, Tensor)
2978
- use_c10_dispatcher: unboxed_only
2979
2837
  variants: function
2980
2838
  dispatch:
2981
2839
  CUDA: weight_norm_cuda_backward
2982
2840
 
2983
2841
  - func: _weight_norm_differentiable_backward(Tensor grad_w, Tensor saved_v, Tensor saved_g, Tensor saved_norms, int dim) -> (Tensor, Tensor)
2984
- use_c10_dispatcher: unboxed_only
2985
2842
  variants: function
2986
2843
 
2987
2844
  - func: zeros.names(int[] size, *, Dimname[]? names, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor
@@ -2991,10 +2848,11 @@
2991
2848
 
2992
2849
  - func: zeros.out(int[] size, *, Tensor(a!) out) -> Tensor(a!)
2993
2850
 
2994
- - func: zeros_like(Tensor self) -> Tensor
2995
- use_c10_dispatcher: full
2851
+ - func: zeros_like(Tensor self, *, MemoryFormat? memory_format=None) -> Tensor
2852
+ supports_named_tensor: True
2996
2853
 
2997
- - func: zeros_like.dtype(Tensor self, *, ScalarType dtype, Layout layout, Device device, bool pin_memory=False) -> Tensor
2854
+ - func: zeros_like.dtype(Tensor self, *, ScalarType dtype, Layout layout, Device device, bool pin_memory=False, MemoryFormat? memory_format=None) -> Tensor
2855
+ supports_named_tensor: True
2998
2856
 
2999
2857
  - func: _standard_gamma_grad(Tensor self, Tensor output) -> Tensor
3000
2858
  use_c10_dispatcher: full
@@ -3004,7 +2862,6 @@
3004
2862
  CUDA: _standard_gamma_grad_cuda
3005
2863
 
3006
2864
  - func: _standard_gamma(Tensor self, Generator? generator=None) -> Tensor
3007
- use_c10_dispatcher: 'unboxed_only'
3008
2865
  variants: function
3009
2866
  dispatch:
3010
2867
  CPU: _s_gamma_cpu
@@ -3017,14 +2874,12 @@
3017
2874
  CUDA: _dirichlet_grad_cuda
3018
2875
 
3019
2876
  - func: _sample_dirichlet(Tensor self, Generator? generator=None) -> Tensor
3020
- use_c10_dispatcher: 'unboxed_only'
3021
2877
  variants: function
3022
2878
  dispatch:
3023
2879
  CPU: _s_dirichlet_cpu
3024
2880
  CUDA: _s_dirichlet_cuda
3025
2881
 
3026
2882
  - func: poisson(Tensor self, Generator? generator=None) -> Tensor
3027
- use_c10_dispatcher: 'unboxed_only'
3028
2883
  dispatch:
3029
2884
  CPU: _s_poisson_cpu
3030
2885
  CUDA: _s_poisson_cuda
@@ -3045,12 +2900,10 @@
3045
2900
  - func: _sparse_sum.dtype(Tensor self, *, ScalarType dtype) -> Tensor
3046
2901
 
3047
2902
  - func: _sparse_sum.dim(Tensor self, int[1] dim) -> Tensor
3048
- use_c10_dispatcher: unboxed_only
3049
2903
 
3050
2904
  - func: _sparse_sum.dim_dtype(Tensor self, int[1] dim, *, ScalarType dtype) -> Tensor
3051
2905
 
3052
2906
  - func: _sparse_sum_backward(Tensor grad, Tensor self, int[] dim) -> Tensor
3053
- use_c10_dispatcher: unboxed_only
3054
2907
  dispatch:
3055
2908
  SparseCPU: _sparse_sum_backward_cpu
3056
2909
  SparseCUDA: _sparse_sum_backward_cuda
@@ -3066,7 +2919,6 @@
3066
2919
  variants: function, method
3067
2920
 
3068
2921
  - func: norm.ScalarOpt_dim(Tensor self, Scalar? p, int[1] dim, bool keepdim=False) -> Tensor
3069
- use_c10_dispatcher: unboxed_only
3070
2922
  variants: function, method
3071
2923
 
3072
2924
  - func: norm.dtype_out(Tensor self, Scalar? p, int[1] dim, bool keepdim, *, ScalarType dtype, Tensor(a!) out) -> Tensor(a!)
@@ -3088,7 +2940,6 @@
3088
2940
  variants: function
3089
2941
 
3090
2942
  - func: frobenius_norm.dim(Tensor self, int[1] dim, bool keepdim=False) -> Tensor
3091
- use_c10_dispatcher: unboxed_only
3092
2943
  variants: function
3093
2944
 
3094
2945
  - func: frobenius_norm.out(Tensor self, int[1] dim, bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)
@@ -3102,14 +2953,12 @@
3102
2953
  variants: function
3103
2954
 
3104
2955
  - func: nuclear_norm.dim(Tensor self, int[2] dim, bool keepdim=False) -> Tensor
3105
- use_c10_dispatcher: unboxed_only
3106
2956
  variants: function
3107
2957
 
3108
2958
  - func: nuclear_norm.dim_out(Tensor self, int[2] dim, bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)
3109
2959
  variants: function
3110
2960
 
3111
- - func: clone(Tensor self) -> Tensor
3112
- use_c10_dispatcher: full
2961
+ - func: clone(Tensor self, *, MemoryFormat? memory_format=None) -> Tensor
3113
2962
  variants: function, method
3114
2963
  dispatch:
3115
2964
  CPU: clone
@@ -3120,8 +2969,7 @@
3120
2969
  QuantizedCPU: quantized_clone
3121
2970
  supports_named_tensor: True
3122
2971
 
3123
- - func: resize_as_(Tensor(a!) self, Tensor the_template) -> Tensor(a!)
3124
- use_c10_dispatcher: unboxed_only
2972
+ - func: resize_as_(Tensor(a!) self, Tensor the_template, *, MemoryFormat? memory_format=None) -> Tensor(a!)
3125
2973
  supports_named_tensor: True
3126
2974
  variants: function, method
3127
2975
 
@@ -3144,12 +2992,11 @@
3144
2992
  SparseCUDA: pow_sparse_scalar
3145
2993
 
3146
2994
  - func: zero_(Tensor(a!) self) -> Tensor(a!)
3147
- use_c10_dispatcher: unboxed_only
3148
2995
  supports_named_tensor: True
3149
2996
  variants: method, function
3150
2997
  dispatch:
3151
- CPU: legacy::cpu::_th_zero_
3152
- CUDA: legacy::cuda::_th_zero_
2998
+ CPU: zero_
2999
+ CUDA: zero_
3153
3000
  SparseCPU: zero_sparse_
3154
3001
  SparseCUDA: zero_sparse_
3155
3002
  MkldnnCPU: mkldnn_zero_
@@ -3173,7 +3020,6 @@
3173
3020
  supports_named_tensor: True
3174
3021
 
3175
3022
  - func: sub_.Tensor(Tensor(a!) self, Tensor other, *, Scalar alpha=1) -> Tensor(a!)
3176
- use_c10_dispatcher: unboxed_only
3177
3023
  variants: method
3178
3024
  dispatch:
3179
3025
  CPU: sub_
@@ -3189,7 +3035,6 @@
3189
3035
  supports_named_tensor: True
3190
3036
 
3191
3037
  - func: sub_.Scalar(Tensor(a!) self, Scalar other, Scalar alpha=1) -> Tensor(a!)
3192
- use_c10_dispatcher: unboxed_only
3193
3038
  variants: method
3194
3039
  supports_named_tensor: True
3195
3040
 
@@ -3229,7 +3074,6 @@
3229
3074
  supports_named_tensor: True
3230
3075
 
3231
3076
  - func: addmm_(Tensor(a!) self, Tensor mat1, Tensor mat2, *, Scalar beta=1, Scalar alpha=1) -> Tensor(a!)
3232
- use_c10_dispatcher: unboxed_only
3233
3077
  variants: method
3234
3078
  dispatch:
3235
3079
  CPU: legacy::cpu::_th_addmm_
@@ -3380,7 +3224,6 @@
3380
3224
  requires_tensor: True
3381
3225
 
3382
3226
  - func: sparse_resize_(Tensor(a!) self, int[] size, int sparse_dim, int dense_dim) -> Tensor(a!)
3383
- use_c10_dispatcher: unboxed_only
3384
3227
  variants: method
3385
3228
  dispatch:
3386
3229
  SparseCPU: sparse_resize_
@@ -3388,7 +3231,6 @@
3388
3231
  requires_tensor: True
3389
3232
 
3390
3233
  - func: sparse_resize_and_clear_(Tensor(a!) self, int[] size, int sparse_dim, int dense_dim) -> Tensor(a!)
3391
- use_c10_dispatcher: unboxed_only
3392
3234
  variants: method
3393
3235
  dispatch:
3394
3236
  SparseCPU: sparse_resize_and_clear_
@@ -3488,7 +3330,6 @@
3488
3330
 
3489
3331
 
3490
3332
  - func: _indices(Tensor(a) self) -> Tensor(a)
3491
- use_c10_dispatcher: unboxed_only
3492
3333
  variants: method
3493
3334
  dispatch:
3494
3335
  SparseCPU: _indices_sparse
@@ -3497,7 +3338,6 @@
3497
3338
  device_guard: False
3498
3339
 
3499
3340
  - func: _values(Tensor(a) self) -> Tensor(a)
3500
- use_c10_dispatcher: unboxed_only
3501
3341
  variants: method
3502
3342
  dispatch:
3503
3343
  SparseCPU: _values_sparse
@@ -3509,7 +3349,6 @@
3509
3349
  # a bit unsafe. Similar to _indices and _values, this is useful for implementing
3510
3350
  # custom sparse operations in Python/C++ extension.
3511
3351
  - func: _coalesced_(Tensor(a!) self, bool coalesced) -> Tensor(a!)
3512
- use_c10_dispatcher: unboxed_only
3513
3352
  variants: method
3514
3353
  dispatch:
3515
3354
  SparseCPU: _coalesced_sparse_
@@ -3518,7 +3357,6 @@
3518
3357
  device_guard: False
3519
3358
 
3520
3359
  - func: indices(Tensor(a) self) -> Tensor(a)
3521
- use_c10_dispatcher: unboxed_only
3522
3360
  variants: method
3523
3361
  dispatch:
3524
3362
  SparseCPU: indices_sparse
@@ -3527,7 +3365,6 @@
3527
3365
  device_guard: False
3528
3366
 
3529
3367
  - func: values(Tensor(a) self) -> Tensor(a)
3530
- use_c10_dispatcher: unboxed_only
3531
3368
  variants: method
3532
3369
  dispatch:
3533
3370
  SparseCPU: values_sparse
@@ -3550,21 +3387,13 @@
3550
3387
  requires_tensor: True
3551
3388
 
3552
3389
  - func: copy_sparse_to_sparse_(Tensor(a!) self, Tensor src, bool non_blocking=False) -> Tensor(a!)
3553
- use_c10_dispatcher: unboxed_only
3554
3390
  variants: function
3555
3391
  dispatch:
3556
3392
  SparseCPU: copy_sparse_
3557
3393
  SparseCUDA: copy_sparse_
3558
3394
  requires_tensor: True
3559
3395
 
3560
- - func: numel(Tensor self) -> int
3561
- use_c10_dispatcher: full
3562
- variants: function, method
3563
- device_guard: False
3564
- supports_named_tensor: True
3565
-
3566
3396
  - func: unbind.int(Tensor(a) self, int dim=0) -> Tensor(a)[]
3567
- use_c10_dispatcher: unboxed_only
3568
3397
  variants: function, method
3569
3398
  supports_named_tensor: True
3570
3399
 
@@ -3593,7 +3422,6 @@
3593
3422
  CPU: dense_to_mkldnn
3594
3423
 
3595
3424
  - func: mkldnn_reorder_conv2d_weight(Tensor self, int[2] padding=0, int[2] stride=1, int[2] dilation=1, int groups=1) -> Tensor
3596
- use_c10_dispatcher: unboxed_only
3597
3425
  variants: function
3598
3426
  python_module: nn
3599
3427
  dispatch:
@@ -3631,13 +3459,11 @@
3631
3459
  QuantizedCPU: q_zero_point_quant
3632
3460
 
3633
3461
  - func: q_per_channel_scales(Tensor self) -> Tensor
3634
- use_c10_dispatcher: unboxed_only
3635
3462
  variants: function, method
3636
3463
  dispatch:
3637
3464
  QuantizedCPU: q_per_channel_scales_quant
3638
3465
 
3639
3466
  - func: q_per_channel_zero_points(Tensor self) -> Tensor
3640
- use_c10_dispatcher: unboxed_only
3641
3467
  variants: function, method
3642
3468
  dispatch:
3643
3469
  QuantizedCPU: q_per_channel_zero_points_quant
@@ -3659,7 +3485,6 @@
3659
3485
  CPU: make_per_tensor_quantized_tensor_cpu
3660
3486
 
3661
3487
  - func: _make_per_channel_quantized_tensor(Tensor self, Tensor scale, Tensor zero_point, int axis) -> Tensor
3662
- use_c10_dispatcher: unboxed_only
3663
3488
  dispatch:
3664
3489
  CPU: make_per_channel_quantized_tensor_cpu
3665
3490
 
@@ -3696,31 +3521,28 @@
3696
3521
  # to(Device) must not exist because all constructors of Device also works for
3697
3522
  # TensorOptions. Otherwise, an ambiguity error is thrown.
3698
3523
  # See NOTE [ TensorOptions Constructors ].
3699
- - func: to.dtype_layout(Tensor self, *, ScalarType dtype, Layout layout, Device device, bool pin_memory=False, bool non_blocking=False, bool copy=False) -> Tensor
3524
+ - func: to.dtype_layout(Tensor self, *, ScalarType dtype, Layout layout, Device device, bool pin_memory=False, bool non_blocking=False, bool copy=False, MemoryFormat? memory_format=None) -> Tensor
3700
3525
  variants: method
3701
3526
  device_guard: False
3702
3527
  supports_named_tensor: True
3703
3528
 
3704
- - func: to.device(Tensor self, Device device, ScalarType dtype, bool non_blocking=False, bool copy=False) -> Tensor
3529
+ - func: to.device(Tensor self, Device device, ScalarType dtype, bool non_blocking=False, bool copy=False, MemoryFormat? memory_format=None) -> Tensor
3705
3530
  variants: method
3706
3531
  device_guard: False
3707
3532
  supports_named_tensor: True
3708
3533
 
3709
- - func: to.dtype(Tensor self, ScalarType dtype, bool non_blocking=False, bool copy=False) -> Tensor
3534
+ - func: to.dtype(Tensor self, ScalarType dtype, bool non_blocking=False, bool copy=False, MemoryFormat? memory_format=None) -> Tensor
3710
3535
  variants: method
3711
3536
  device_guard: False
3712
3537
  supports_named_tensor: True
3713
3538
 
3714
- - func: to.other(Tensor self, Tensor other, bool non_blocking=False, bool copy=False) -> Tensor
3715
- use_c10_dispatcher: full
3539
+ - func: to.other(Tensor self, Tensor other, bool non_blocking=False, bool copy=False, MemoryFormat? memory_format=None) -> Tensor
3716
3540
  variants: method
3717
3541
  device_guard: False
3718
3542
 
3719
3543
  - func: meshgrid(Tensor[] tensors) -> Tensor[]
3720
- use_c10_dispatcher: unboxed_only
3721
3544
 
3722
3545
  - func: cartesian_prod(Tensor[] tensors) -> Tensor
3723
- use_c10_dispatcher: unboxed_only
3724
3546
  variants: function
3725
3547
 
3726
3548
  - func: combinations(Tensor self, int r=2, bool with_replacement=False) -> Tensor
@@ -3774,7 +3596,6 @@
3774
3596
  CUDA: _thnn_fused_gru_cell_cuda
3775
3597
 
3776
3598
  - func: _thnn_fused_gru_cell_backward(Tensor grad_hy, Tensor workspace, bool has_bias) -> (Tensor, Tensor, Tensor, Tensor, Tensor)
3777
- use_c10_dispatcher: unboxed_only
3778
3599
  dispatch:
3779
3600
  CUDA: _thnn_fused_gru_cell_backward_cuda
3780
3601
 
@@ -3782,28 +3603,20 @@
3782
3603
 
3783
3604
  # RNN cells and layers
3784
3605
  - func: lstm.input(Tensor input, Tensor[] hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional, bool batch_first) -> (Tensor, Tensor, Tensor)
3785
- use_c10_dispatcher: unboxed_only
3786
3606
 
3787
3607
  - func: lstm.data(Tensor data, Tensor batch_sizes, Tensor[] hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional) -> (Tensor, Tensor, Tensor)
3788
- use_c10_dispatcher: unboxed_only
3789
3608
 
3790
3609
  - func: gru.input(Tensor input, Tensor hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional, bool batch_first) -> (Tensor, Tensor)
3791
- use_c10_dispatcher: unboxed_only
3792
3610
 
3793
3611
  - func: gru.data(Tensor data, Tensor batch_sizes, Tensor hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional) -> (Tensor, Tensor)
3794
- use_c10_dispatcher: unboxed_only
3795
3612
 
3796
3613
  - func: rnn_tanh.input(Tensor input, Tensor hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional, bool batch_first) -> (Tensor, Tensor)
3797
- use_c10_dispatcher: unboxed_only
3798
3614
 
3799
3615
  - func: rnn_tanh.data(Tensor data, Tensor batch_sizes, Tensor hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional) -> (Tensor, Tensor)
3800
- use_c10_dispatcher: unboxed_only
3801
3616
 
3802
3617
  - func: rnn_relu.input(Tensor input, Tensor hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional, bool batch_first) -> (Tensor, Tensor)
3803
- use_c10_dispatcher: unboxed_only
3804
3618
 
3805
3619
  - func: rnn_relu.data(Tensor data, Tensor batch_sizes, Tensor hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional) -> (Tensor, Tensor)
3806
- use_c10_dispatcher: unboxed_only
3807
3620
 
3808
3621
  - func: lstm_cell(Tensor input, Tensor[] hx, Tensor w_ih, Tensor w_hh, Tensor? b_ih=None, Tensor? b_hh=None) -> (Tensor, Tensor)
3809
3622
 
@@ -3816,17 +3629,16 @@
3816
3629
  # Quantized RNN layers
3817
3630
  - func: quantized_lstm(Tensor input, Tensor[] hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional, bool batch_first, *, ScalarType? dtype=None, bool use_dynamic=False) -> (Tensor, Tensor, Tensor)
3818
3631
 
3632
+ - func: quantized_lstm.data(Tensor data, Tensor batch_sizes, Tensor[] hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional, *, ScalarType? dtype=None, bool use_dynamic=False) -> (Tensor, Tensor, Tensor)
3633
+
3819
3634
  # Quantized GRU layers
3820
3635
 
3821
3636
  - func: quantized_gru.input(Tensor input, Tensor hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional, bool batch_first) -> (Tensor, Tensor)
3822
- use_c10_dispatcher: unboxed_only
3823
3637
 
3824
3638
  - func: quantized_gru.data(Tensor data, Tensor batch_sizes, Tensor hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional) -> (Tensor, Tensor)
3825
- use_c10_dispatcher: unboxed_only
3826
3639
 
3827
3640
  # Quantized RNN cells
3828
3641
  - func: quantized_lstm_cell(Tensor input, Tensor[] hx, Tensor w_ih, Tensor w_hh, Tensor b_ih, Tensor b_hh, Tensor packed_ih, Tensor packed_hh, Tensor col_offsets_ih, Tensor col_offsets_hh, Scalar scale_ih, Scalar scale_hh, Scalar zero_point_ih, Scalar zero_point_hh) -> (Tensor, Tensor)
3829
- use_c10_dispatcher: unboxed_only
3830
3642
 
3831
3643
  - func: quantized_gru_cell(Tensor input, Tensor hx, Tensor w_ih, Tensor w_hh, Tensor b_ih, Tensor b_hh, Tensor packed_ih, Tensor packed_hh, Tensor col_offsets_ih, Tensor col_offsets_hh, Scalar scale_ih, Scalar scale_hh, Scalar zero_point_ih, Scalar zero_point_hh) -> Tensor
3832
3644
  use_c10_dispatcher: full
@@ -3839,13 +3651,10 @@
3839
3651
 
3840
3652
  # PackedSequence utilities
3841
3653
  - func: _pack_padded_sequence(Tensor input, Tensor lengths, bool batch_first) -> (Tensor, Tensor)
3842
- use_c10_dispatcher: unboxed_only
3843
3654
 
3844
3655
  - func: _pack_padded_sequence_backward(Tensor grad, int[] input_size, Tensor batch_sizes, bool batch_first) -> Tensor
3845
- use_c10_dispatcher: unboxed_only
3846
3656
 
3847
3657
  - func: _pad_packed_sequence(Tensor data, Tensor batch_sizes, bool batch_first, Scalar padding_value, int total_length) -> (Tensor, Tensor)
3848
- use_c10_dispatcher: unboxed_only
3849
3658
 
3850
3659
  # wrappers for legacy TH methods
3851
3660
 
@@ -3853,8 +3662,8 @@
3853
3662
  variants: method
3854
3663
  device_guard: False
3855
3664
  dispatch:
3856
- CPU: legacy::cpu::_th_set_
3857
- CUDA: legacy::cuda::_th_set_
3665
+ CPU: set_
3666
+ CUDA: set_
3858
3667
 
3859
3668
  - func: set_.source_Storage_storage_offset(Tensor(a!) self, Storage source, int storage_offset, int[] size, int[] stride=[]) -> Tensor(a!)
3860
3669
  variants: method
@@ -3865,7 +3674,6 @@
3865
3674
  QuantizedCPU: set_storage
3866
3675
 
3867
3676
  - func: set_.source_Tensor(Tensor(a!) self, Tensor source) -> Tensor(a!)
3868
- use_c10_dispatcher: unboxed_only
3869
3677
  variants: method
3870
3678
  device_guard: False
3871
3679
  dispatch:
@@ -3873,11 +3681,10 @@
3873
3681
  CUDA: legacy::cuda::_th_set_
3874
3682
 
3875
3683
  - func: set_(Tensor(a!) self) -> Tensor(a!)
3876
- use_c10_dispatcher: unboxed_only
3877
3684
  variants: method
3878
3685
  dispatch:
3879
- CPU: legacy::cpu::_th_set_
3880
- CUDA: legacy::cuda::_th_set_
3686
+ CPU: set_cpu_
3687
+ CUDA: set_cuda_
3881
3688
 
3882
3689
  - func: set_quantizer_(Tensor(a!) self, ConstQuantizerPtr quantizer) -> Tensor(a!)
3883
3690
  variants: method
@@ -3889,11 +3696,10 @@
3889
3696
  variants: method
3890
3697
  device_guard: False
3891
3698
  dispatch:
3892
- CPU: legacy::cpu::_th_is_set_to
3893
- CUDA: legacy::cuda::_th_is_set_to
3699
+ CPU: is_set_to
3700
+ CUDA: is_set_to
3894
3701
 
3895
3702
  - func: masked_fill_.Scalar(Tensor(a!) self, Tensor mask, Scalar value) -> Tensor(a!)
3896
- use_c10_dispatcher: unboxed_only
3897
3703
  variants: method
3898
3704
  dispatch:
3899
3705
  CPU: masked_fill__cpu
@@ -3906,7 +3712,6 @@
3906
3712
  supports_named_tensor: True
3907
3713
 
3908
3714
  - func: masked_fill_.Tensor(Tensor(a!) self, Tensor mask, Tensor value) -> Tensor(a!)
3909
- use_c10_dispatcher: unboxed_only
3910
3715
  variants: method
3911
3716
  dispatch:
3912
3717
  CPU: masked_fill__cpu
@@ -3919,7 +3724,6 @@
3919
3724
  supports_named_tensor: True
3920
3725
 
3921
3726
  - func: masked_scatter_(Tensor(a!) self, Tensor mask, Tensor source) -> Tensor(a!)
3922
- use_c10_dispatcher: unboxed_only
3923
3727
  variants: method
3924
3728
  dispatch:
3925
3729
  CPU: masked_scatter__cpu
@@ -3930,7 +3734,6 @@
3930
3734
  variants: function, method
3931
3735
 
3932
3736
  - func: view(Tensor(a) self, int[] size) -> Tensor(a)
3933
- use_c10_dispatcher: unboxed_only
3934
3737
  variants: method
3935
3738
  device_guard: False
3936
3739
  dispatch:
@@ -3940,17 +3743,15 @@
3940
3743
  QuantizedCPU: view
3941
3744
 
3942
3745
  - func: put_(Tensor(a!) self, Tensor index, Tensor source, bool accumulate=False) -> Tensor(a!)
3943
- use_c10_dispatcher: unboxed_only
3944
3746
  variants: method
3945
3747
  dispatch:
3946
3748
  CPU: legacy::cpu::_th_put_
3947
3749
  CUDA: legacy::cuda::_th_put_
3948
3750
 
3949
3751
  - func: index_add_(Tensor(a!) self, int dim, Tensor index, Tensor source) -> Tensor(a!)
3950
- use_c10_dispatcher: unboxed_only
3951
3752
  variants: method
3952
3753
  dispatch:
3953
- CPU: legacy::cpu::_th_index_add_
3754
+ CPU: index_add_cpu_
3954
3755
  CUDA: legacy::cuda::_th_index_add_
3955
3756
 
3956
3757
  - func: index_add(Tensor self, int dim, Tensor index, Tensor source) -> Tensor
@@ -3960,50 +3761,47 @@
3960
3761
  - func: index_add.dimname(Tensor self, Dimname dim, Tensor index, Tensor source) -> Tensor
3961
3762
  variants: function, method
3962
3763
 
3963
- - func: index_fill_.Scalar(Tensor(a!) self, int dim, Tensor index, Scalar value) -> Tensor(a!)
3964
- use_c10_dispatcher: unboxed_only
3764
+ - func: index_fill_.int_Scalar(Tensor(a!) self, int dim, Tensor index, Scalar value) -> Tensor(a!)
3965
3765
  variants: method
3966
3766
  supports_named_tensor: True
3967
3767
  dispatch:
3968
3768
  CPU: legacy::cpu::_th_index_fill_
3969
3769
  CUDA: legacy::cuda::_th_index_fill_
3970
3770
 
3971
- - func: index_fill.Scalar(Tensor self, int dim, Tensor index, Scalar value) -> Tensor
3771
+ - func: index_fill.int_Scalar(Tensor self, int dim, Tensor index, Scalar value) -> Tensor
3972
3772
  use_c10_dispatcher: full
3973
3773
  supports_named_tensor: True
3974
3774
  variants: function, method
3975
3775
 
3976
- - func: index_fill_.Tensor(Tensor(a!) self, int dim, Tensor index, Tensor value) -> Tensor(a!)
3977
- use_c10_dispatcher: unboxed_only
3776
+ - func: index_fill_.int_Tensor(Tensor(a!) self, int dim, Tensor index, Tensor value) -> Tensor(a!)
3978
3777
  variants: method
3979
3778
  dispatch:
3980
- CPU: legacy::cpu::_th_index_fill_
3981
- CUDA: legacy::cuda::_th_index_fill_
3779
+ CPU: index_fill_
3780
+ CUDA: index_fill_
3982
3781
  supports_named_tensor: True
3983
3782
 
3984
- - func: index_fill.Tensor(Tensor self, int dim, Tensor index, Tensor value) -> Tensor
3783
+ - func: index_fill.int_Tensor(Tensor self, int dim, Tensor index, Tensor value) -> Tensor
3985
3784
  use_c10_dispatcher: full
3986
3785
  variants: function, method
3987
3786
  supports_named_tensor: True
3988
3787
 
3989
- - func: index_fill_.dimname_Scalar(Tensor(a!) self, Dimname dim, Tensor index, Scalar value) -> Tensor(a!)
3788
+ - func: index_fill_.Dimname_Scalar(Tensor(a!) self, Dimname dim, Tensor index, Scalar value) -> Tensor(a!)
3990
3789
  variants: method
3991
3790
  supports_named_tensor: True
3992
3791
 
3993
- - func: index_fill_.dimname_Scalar(Tensor(a!) self, Dimname dim, Tensor index, Tensor value) -> Tensor(a!)
3792
+ - func: index_fill_.Dimname_Tensor(Tensor(a!) self, Dimname dim, Tensor index, Tensor value) -> Tensor(a!)
3994
3793
  variants: method
3995
3794
  supports_named_tensor: True
3996
3795
 
3997
- - func: index_fill.dimname_Scalar(Tensor self, Dimname dim, Tensor index, Scalar value) -> Tensor
3796
+ - func: index_fill.Dimname_Scalar(Tensor self, Dimname dim, Tensor index, Scalar value) -> Tensor
3998
3797
  variants: function, method
3999
3798
  supports_named_tensor: True
4000
3799
 
4001
- - func: index_fill.dimname_Tensor(Tensor self, Dimname dim, Tensor index, Tensor value) -> Tensor
3800
+ - func: index_fill.Dimname_Tensor(Tensor self, Dimname dim, Tensor index, Tensor value) -> Tensor
4002
3801
  variants: function, method
4003
3802
  supports_named_tensor: True
4004
3803
 
4005
3804
  - func: scatter_.src(Tensor(a!) self, int dim, Tensor index, Tensor src) -> Tensor(a!)
4006
- use_c10_dispatcher: unboxed_only
4007
3805
  variants: method
4008
3806
  dispatch:
4009
3807
  CPU: legacy::cpu::_th_scatter_
@@ -4014,7 +3812,6 @@
4014
3812
  variants: function, method
4015
3813
 
4016
3814
  - func: scatter_.value(Tensor(a!) self, int dim, Tensor index, Scalar value) -> Tensor(a!)
4017
- use_c10_dispatcher: unboxed_only
4018
3815
  variants: method
4019
3816
  dispatch:
4020
3817
  CPU: legacy::cpu::_th_scatter_
@@ -4031,7 +3828,6 @@
4031
3828
  variants: function, method
4032
3829
 
4033
3830
  - func: scatter_add_(Tensor(a!) self, int dim, Tensor index, Tensor src) -> Tensor(a!)
4034
- use_c10_dispatcher: unboxed_only
4035
3831
  variants: method
4036
3832
  dispatch:
4037
3833
  CPU: legacy::cpu::_th_scatter_add_
@@ -4045,51 +3841,39 @@
4045
3841
  variants: function, method
4046
3842
 
4047
3843
  - func: lt_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)
4048
- use_c10_dispatcher: unboxed_only
4049
3844
  variants: method
4050
3845
 
4051
3846
  - func: lt_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)
4052
- use_c10_dispatcher: unboxed_only
4053
3847
  variants: method
4054
3848
 
4055
3849
  - func: gt_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)
4056
- use_c10_dispatcher: unboxed_only
4057
3850
  variants: method
4058
3851
 
4059
3852
  - func: gt_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)
4060
- use_c10_dispatcher: unboxed_only
4061
3853
  variants: method
4062
3854
 
4063
3855
  - func: le_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)
4064
- use_c10_dispatcher: unboxed_only
4065
3856
  variants: method
4066
3857
 
4067
3858
  - func: le_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)
4068
- use_c10_dispatcher: unboxed_only
4069
3859
  variants: method
4070
3860
 
4071
3861
  - func: ge_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)
4072
- use_c10_dispatcher: unboxed_only
4073
3862
  variants: method
4074
3863
 
4075
3864
  - func: ge_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)
4076
- use_c10_dispatcher: unboxed_only
4077
3865
  variants: method
4078
3866
 
4079
3867
  - func: eq_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)
4080
- use_c10_dispatcher: unboxed_only
4081
3868
  variants: method
4082
3869
 
4083
3870
  - func: eq_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)
4084
- use_c10_dispatcher: unboxed_only
4085
3871
  variants: method
4086
3872
 
4087
3873
  - func: ne_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)
4088
- use_c10_dispatcher: unboxed_only
4089
3874
  variants: method
4090
3875
 
4091
3876
  - func: ne_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)
4092
- use_c10_dispatcher: unboxed_only
4093
3877
  variants: method
4094
3878
 
4095
3879
  - func: __and__.Scalar(Tensor self, Scalar other) -> Tensor
@@ -4107,14 +3891,12 @@
4107
3891
  CUDA: legacy::cuda::_th_and
4108
3892
 
4109
3893
  - func: __iand__.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)
4110
- use_c10_dispatcher: unboxed_only
4111
3894
  variants: method
4112
3895
  dispatch:
4113
3896
  CPU: legacy::cpu::_th_iand_
4114
3897
  CUDA: legacy::cuda::_th_iand_
4115
3898
 
4116
3899
  - func: __iand__.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)
4117
- use_c10_dispatcher: unboxed_only
4118
3900
  variants: method
4119
3901
  dispatch:
4120
3902
  CPU: legacy::cpu::_th_iand_
@@ -4135,46 +3917,54 @@
4135
3917
  CUDA: legacy::cuda::_th_or
4136
3918
 
4137
3919
  - func: __ior__.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)
4138
- use_c10_dispatcher: unboxed_only
4139
3920
  variants: method
4140
3921
  dispatch:
4141
3922
  CPU: legacy::cpu::_th_ior_
4142
3923
  CUDA: legacy::cuda::_th_ior_
4143
3924
 
4144
3925
  - func: __ior__.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)
4145
- use_c10_dispatcher: unboxed_only
4146
3926
  variants: method
4147
3927
  dispatch:
4148
3928
  CPU: legacy::cpu::_th_ior_
4149
3929
  CUDA: legacy::cuda::_th_ior_
4150
3930
 
3931
+ - func: bitwise_xor.Tensor_out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)
3932
+ variants: function
3933
+ dispatch:
3934
+ CPU: bitwise_xor_out
3935
+ CUDA: bitwise_xor_out
3936
+
3937
+ - func: bitwise_xor.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)
3938
+ variants: function
3939
+ dispatch:
3940
+ CPU: bitwise_xor_out
3941
+ CUDA: bitwise_xor_out
3942
+
3943
+ - func: bitwise_xor.Scalar(Tensor self, Scalar other) -> Tensor
3944
+ variants: method, function
3945
+
3946
+ - func: bitwise_xor.Tensor(Tensor self, Tensor other) -> Tensor
3947
+ variants: method, function
3948
+
3949
+ - func: bitwise_xor_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)
3950
+ variants: method
3951
+
3952
+ - func: bitwise_xor_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)
3953
+ variants: method
3954
+
4151
3955
  - func: __xor__.Scalar(Tensor self, Scalar other) -> Tensor
4152
3956
  use_c10_dispatcher: full
4153
3957
  variants: method, function
4154
- dispatch:
4155
- CPU: legacy::cpu::_th_xor
4156
- CUDA: legacy::cuda::_th_xor
4157
3958
 
4158
3959
  - func: __xor__.Tensor(Tensor self, Tensor other) -> Tensor
4159
3960
  use_c10_dispatcher: full
4160
3961
  variants: method, function
4161
- dispatch:
4162
- CPU: legacy::cpu::_th_xor
4163
- CUDA: legacy::cuda::_th_xor
4164
3962
 
4165
3963
  - func: __ixor__.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)
4166
- use_c10_dispatcher: unboxed_only
4167
3964
  variants: method
4168
- dispatch:
4169
- CPU: legacy::cpu::_th_ixor_
4170
- CUDA: legacy::cuda::_th_ixor_
4171
3965
 
4172
3966
  - func: __ixor__.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)
4173
- use_c10_dispatcher: unboxed_only
4174
3967
  variants: method
4175
- dispatch:
4176
- CPU: legacy::cpu::_th_ixor_
4177
- CUDA: legacy::cuda::_th_ixor_
4178
3968
 
4179
3969
  - func: __lshift__.Scalar(Tensor self, Scalar other) -> Tensor
4180
3970
  use_c10_dispatcher: full
@@ -4191,14 +3981,12 @@
4191
3981
  CUDA: legacy::cuda::_th_lshift
4192
3982
 
4193
3983
  - func: __ilshift__.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)
4194
- use_c10_dispatcher: unboxed_only
4195
3984
  variants: method
4196
3985
  dispatch:
4197
3986
  CPU: legacy::cpu::_th_ilshift_
4198
3987
  CUDA: legacy::cuda::_th_ilshift_
4199
3988
 
4200
3989
  - func: __ilshift__.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)
4201
- use_c10_dispatcher: unboxed_only
4202
3990
  variants: method
4203
3991
  dispatch:
4204
3992
  CPU: legacy::cpu::_th_ilshift_
@@ -4219,21 +4007,18 @@
4219
4007
  CUDA: legacy::cuda::_th_rshift
4220
4008
 
4221
4009
  - func: __irshift__.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)
4222
- use_c10_dispatcher: unboxed_only
4223
4010
  variants: method
4224
4011
  dispatch:
4225
4012
  CPU: legacy::cpu::_th_irshift_
4226
4013
  CUDA: legacy::cuda::_th_irshift_
4227
4014
 
4228
4015
  - func: __irshift__.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)
4229
- use_c10_dispatcher: unboxed_only
4230
4016
  variants: method
4231
4017
  dispatch:
4232
4018
  CPU: legacy::cpu::_th_irshift_
4233
4019
  CUDA: legacy::cuda::_th_irshift_
4234
4020
 
4235
4021
  - func: lgamma_(Tensor(a!) self) -> Tensor(a!)
4236
- use_c10_dispatcher: unboxed_only
4237
4022
  supports_named_tensor: True
4238
4023
  variants: method
4239
4024
  dispatch:
@@ -4241,43 +4026,36 @@
4241
4026
  CUDA: _lgamma__cuda
4242
4027
 
4243
4028
  - func: atan2_(Tensor(a!) self, Tensor other) -> Tensor(a!)
4244
- use_c10_dispatcher: unboxed_only
4245
4029
  supports_named_tensor: True
4246
4030
  variants: method
4247
4031
 
4248
4032
  - func: tril_(Tensor(a!) self, int diagonal=0) -> Tensor(a!)
4249
- use_c10_dispatcher: unboxed_only
4250
4033
  variants: method
4251
4034
  dispatch:
4252
4035
  CPU: tril_cpu_
4253
4036
  CUDA: tril_cuda_
4254
4037
 
4255
4038
  - func: triu_(Tensor(a!) self, int diagonal=0) -> Tensor(a!)
4256
- use_c10_dispatcher: unboxed_only
4257
4039
  variants: method
4258
4040
  dispatch:
4259
4041
  CPU: triu_cpu_
4260
4042
  CUDA: triu_cuda_
4261
4043
 
4262
4044
  - func: digamma_(Tensor(a!) self) -> Tensor(a!)
4263
- use_c10_dispatcher: unboxed_only
4264
4045
  supports_named_tensor: True
4265
4046
  variants: method
4266
4047
 
4267
4048
  - func: polygamma_(Tensor(a!) self, int n) -> Tensor(a!)
4268
- use_c10_dispatcher: unboxed_only
4269
4049
  supports_named_tensor: True
4270
4050
  variants: method
4271
4051
 
4272
4052
  - func: renorm_(Tensor(a!) self, Scalar p, int dim, Scalar maxnorm) -> Tensor(a!)
4273
- use_c10_dispatcher: unboxed_only
4274
4053
  variants: method
4275
4054
  dispatch:
4276
4055
  CPU: legacy::cpu::_th_renorm_
4277
4056
  CUDA: legacy::cuda::_th_renorm_
4278
4057
 
4279
4058
  - func: pow_.Scalar(Tensor(a!) self, Scalar exponent) -> Tensor(a!)
4280
- use_c10_dispatcher: unboxed_only
4281
4059
  supports_named_tensor: True
4282
4060
  variants: method
4283
4061
  dispatch:
@@ -4285,7 +4063,6 @@
4285
4063
  CUDA: pow_
4286
4064
 
4287
4065
  - func: pow_.Tensor(Tensor(a!) self, Tensor exponent) -> Tensor(a!)
4288
- use_c10_dispatcher: unboxed_only
4289
4066
  supports_named_tensor: True
4290
4067
  variants: method
4291
4068
  dispatch:
@@ -4293,49 +4070,42 @@
4293
4070
  CUDA: pow_
4294
4071
 
4295
4072
  - func: lerp_.Scalar(Tensor(a!) self, Tensor end, Scalar weight) -> Tensor(a!)
4296
- use_c10_dispatcher: unboxed_only
4297
4073
  variants: method
4298
4074
  dispatch:
4299
4075
  CPU: lerp_cpu_scalar_
4300
4076
  CUDA: lerp_cuda_scalar_
4301
4077
 
4302
4078
  - func: lerp_.Tensor(Tensor(a!) self, Tensor end, Tensor weight) -> Tensor(a!)
4303
- use_c10_dispatcher: unboxed_only
4304
4079
  variants: method
4305
4080
  dispatch:
4306
4081
  CPU: lerp_cpu_tensor_
4307
4082
  CUDA: lerp_cuda_tensor_
4308
4083
 
4309
4084
  - func: fmod_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)
4310
- use_c10_dispatcher: unboxed_only
4311
4085
  variants: method
4312
4086
  dispatch:
4313
4087
  CPU: legacy::cpu::_th_fmod_
4314
4088
  CUDA: legacy::cuda::_th_fmod_
4315
4089
 
4316
4090
  - func: fmod_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)
4317
- use_c10_dispatcher: unboxed_only
4318
4091
  variants: method
4319
4092
  dispatch:
4320
4093
  CPU: legacy::cpu::_th_fmod_
4321
4094
  CUDA: legacy::cuda::_th_fmod_
4322
4095
 
4323
4096
  - func: remainder_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)
4324
- use_c10_dispatcher: unboxed_only
4325
4097
  variants: method
4326
4098
  dispatch:
4327
4099
  CPU: legacy::cpu::_th_remainder_
4328
4100
  CUDA: legacy::cuda::_th_remainder_
4329
4101
 
4330
4102
  - func: remainder_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)
4331
- use_c10_dispatcher: unboxed_only
4332
4103
  variants: method
4333
4104
  dispatch:
4334
4105
  CPU: legacy::cpu::_th_remainder_
4335
4106
  CUDA: legacy::cuda::_th_remainder_
4336
4107
 
4337
4108
  - func: addbmm_(Tensor(a!) self, Tensor batch1, Tensor batch2, *, Scalar beta=1, Scalar alpha=1) -> Tensor(a!)
4338
- use_c10_dispatcher: unboxed_only
4339
4109
  variants: method
4340
4110
  dispatch:
4341
4111
  CPU: legacy::cpu::_th_addbmm_
@@ -4354,11 +4124,10 @@
4354
4124
  CUDA: legacy::cuda::_th_addbmm
4355
4125
 
4356
4126
  - func: addcdiv_(Tensor(a!) self, Tensor tensor1, Tensor tensor2, *, Scalar value=1) -> Tensor(a!)
4357
- use_c10_dispatcher: unboxed_only
4358
4127
  variants: method
4128
+ supports_named_tensor: True
4359
4129
 
4360
4130
  - func: random_.from(Tensor(a!) self, int from, int to, *, Generator? generator=None) -> Tensor(a!)
4361
- use_c10_dispatcher: 'unboxed_only'
4362
4131
  variants: method
4363
4132
  dispatch:
4364
4133
  CPU: legacy::cpu::_th_random_
@@ -4366,7 +4135,6 @@
4366
4135
  supports_named_tensor: True
4367
4136
 
4368
4137
  - func: random_.to(Tensor(a!) self, int to, *, Generator? generator=None) -> Tensor(a!)
4369
- use_c10_dispatcher: 'unboxed_only'
4370
4138
  variants: method
4371
4139
  dispatch:
4372
4140
  CPU: legacy::cpu::_th_random_
@@ -4374,7 +4142,6 @@
4374
4142
  supports_named_tensor: True
4375
4143
 
4376
4144
  - func: random_(Tensor(a!) self, *, Generator? generator=None) -> Tensor(a!)
4377
- use_c10_dispatcher: 'unboxed_only'
4378
4145
  variants: method
4379
4146
  dispatch:
4380
4147
  CPU: legacy::cpu::_th_random_
@@ -4382,7 +4149,6 @@
4382
4149
  supports_named_tensor: True
4383
4150
 
4384
4151
  - func: uniform_(Tensor(a!) self, float from=0, float to=1, *, Generator? generator=None) -> Tensor(a!)
4385
- use_c10_dispatcher: 'unboxed_only'
4386
4152
  variants: method
4387
4153
  dispatch:
4388
4154
  CPU: legacy::cpu::_th_uniform_
@@ -4390,7 +4156,6 @@
4390
4156
  supports_named_tensor: True
4391
4157
 
4392
4158
  - func: normal_(Tensor(a!) self, float mean=0, float std=1, *, Generator? generator=None) -> Tensor(a!)
4393
- use_c10_dispatcher: 'unboxed_only'
4394
4159
  variants: method
4395
4160
  dispatch:
4396
4161
  CPU: legacy::cpu::_th_normal_
@@ -4398,7 +4163,6 @@
4398
4163
  supports_named_tensor: True
4399
4164
 
4400
4165
  - func: cauchy_(Tensor(a!) self, float median=0, float sigma=1, *, Generator? generator=None) -> Tensor(a!)
4401
- use_c10_dispatcher: 'unboxed_only'
4402
4166
  variants: method
4403
4167
  dispatch:
4404
4168
  CPU: legacy::cpu::_th_cauchy_
@@ -4406,7 +4170,6 @@
4406
4170
  supports_named_tensor: True
4407
4171
 
4408
4172
  - func: log_normal_(Tensor(a!) self, float mean=1, float std=2, *, Generator? generator=None) -> Tensor(a!)
4409
- use_c10_dispatcher: 'unboxed_only'
4410
4173
  variants: method
4411
4174
  dispatch:
4412
4175
  CPU: legacy::cpu::_th_log_normal_
@@ -4414,7 +4177,6 @@
4414
4177
  supports_named_tensor: True
4415
4178
 
4416
4179
  - func: exponential_(Tensor(a!) self, float lambd=1, *, Generator? generator=None) -> Tensor(a!)
4417
- use_c10_dispatcher: 'unboxed_only'
4418
4180
  variants: method
4419
4181
  dispatch:
4420
4182
  CPU: legacy::cpu::_th_exponential_
@@ -4422,7 +4184,6 @@
4422
4184
  supports_named_tensor: True
4423
4185
 
4424
4186
  - func: geometric_(Tensor(a!) self, float p, *, Generator? generator=None) -> Tensor(a!)
4425
- use_c10_dispatcher: 'unboxed_only'
4426
4187
  variants: method
4427
4188
  dispatch:
4428
4189
  CPU: legacy::cpu::_th_geometric_
@@ -4734,7 +4495,6 @@
4734
4495
  CUDA: legacy::cuda::_th_nonzero
4735
4496
 
4736
4497
  - func: nonzero_numpy(Tensor self) -> Tensor[]
4737
- use_c10_dispatcher: unboxed_only
4738
4498
  variants: method, function
4739
4499
 
4740
4500
  - func: gather.out(Tensor self, int dim, Tensor index, *, bool sparse_grad=False, Tensor(a!) out) -> Tensor(a!)
@@ -4758,20 +4518,24 @@
4758
4518
  use_c10_dispatcher: full
4759
4519
 
4760
4520
  - func: addcmul.out(Tensor self, Tensor tensor1, Tensor tensor2, *, Scalar value=1, Tensor(a!) out) -> Tensor(a!)
4521
+ supports_named_tensor: True
4761
4522
 
4762
4523
  - func: addcmul(Tensor self, Tensor tensor1, Tensor tensor2, *, Scalar value=1) -> Tensor
4763
4524
  use_c10_dispatcher: full
4764
4525
  variants: method, function
4526
+ supports_named_tensor: True
4765
4527
 
4766
4528
  - func: addcmul_(Tensor(a!) self, Tensor tensor1, Tensor tensor2, *, Scalar value=1) -> Tensor(a!)
4767
- use_c10_dispatcher: unboxed_only
4768
4529
  variants: method
4530
+ supports_named_tensor: True
4769
4531
 
4770
4532
  - func: addcdiv.out(Tensor self, Tensor tensor1, Tensor tensor2, *, Scalar value=1, Tensor(a!) out) -> Tensor(a!)
4533
+ supports_named_tensor: True
4771
4534
 
4772
4535
  - func: addcdiv(Tensor self, Tensor tensor1, Tensor tensor2, *, Scalar value=1) -> Tensor
4773
4536
  use_c10_dispatcher: full
4774
4537
  variants: method, function
4538
+ supports_named_tensor: True
4775
4539
 
4776
4540
  - func: lstsq.X(Tensor self, Tensor A, *, Tensor(a!) X, Tensor(b!) qr) -> (Tensor(a!) solution, Tensor(b!) QR)
4777
4541
  dispatch:
@@ -4779,7 +4543,6 @@
4779
4543
  CUDA: legacy::cuda::_th_gels_out
4780
4544
 
4781
4545
  - func: lstsq(Tensor self, Tensor A) -> (Tensor solution, Tensor QR)
4782
- use_c10_dispatcher: unboxed_only
4783
4546
  variants: method, function
4784
4547
  dispatch:
4785
4548
  CPU: legacy::cpu::_th_gels
@@ -4788,11 +4551,9 @@
4788
4551
  - func: triangular_solve.X(Tensor self, Tensor A, bool upper=True, bool transpose=False, bool unitriangular=False, *, Tensor(a!) X, Tensor(b!) M) -> (Tensor(a!) solution, Tensor(b!) cloned_coefficient)
4789
4552
 
4790
4553
  - func: triangular_solve(Tensor self, Tensor A, bool upper=True, bool transpose=False, bool unitriangular=False) -> (Tensor solution, Tensor cloned_coefficient)
4791
- use_c10_dispatcher: unboxed_only
4792
4554
  variants: method, function
4793
4555
 
4794
4556
  - func: _triangular_solve_helper(Tensor self, Tensor A, bool upper, bool transpose, bool unitriangular) -> (Tensor, Tensor)
4795
- use_c10_dispatcher: unboxed_only
4796
4557
  variants: function
4797
4558
  dispatch:
4798
4559
  CPU: _triangular_solve_helper_cpu
@@ -4801,11 +4562,9 @@
4801
4562
  - func: symeig.e(Tensor self, bool eigenvectors=False, bool upper=True, *, Tensor(a!) e, Tensor(b!) V) -> (Tensor(a!) eigenvalues, Tensor(b!) eigenvectors)
4802
4563
 
4803
4564
  - func: symeig(Tensor self, bool eigenvectors=False, bool upper=True) -> (Tensor eigenvalues, Tensor eigenvectors)
4804
- use_c10_dispatcher: unboxed_only
4805
4565
  variants: method, function
4806
4566
 
4807
4567
  - func: _symeig_helper(Tensor self, bool eigenvectors, bool upper) -> (Tensor, Tensor)
4808
- use_c10_dispatcher: unboxed_only
4809
4568
  variants: function
4810
4569
  dispatch:
4811
4570
  CPU: _symeig_helper_cpu
@@ -4817,7 +4576,6 @@
4817
4576
  CUDA: legacy::cuda::_th_eig_out
4818
4577
 
4819
4578
  - func: eig(Tensor self, bool eigenvectors=False) -> (Tensor eigenvalues, Tensor eigenvectors)
4820
- use_c10_dispatcher: unboxed_only
4821
4579
  variants: method, function
4822
4580
  dispatch:
4823
4581
  CPU: legacy::cpu::_th_eig
@@ -4826,11 +4584,9 @@
4826
4584
  - func: svd.U(Tensor self, bool some=True, bool compute_uv=True, *, Tensor(a!) U, Tensor(b!) S, Tensor(c!) V) -> (Tensor(a!) U, Tensor(b!) S, Tensor(c!) V)
4827
4585
 
4828
4586
  - func: svd(Tensor self, bool some=True, bool compute_uv=True) -> (Tensor U, Tensor S, Tensor V)
4829
- use_c10_dispatcher: unboxed_only
4830
4587
  variants: method, function
4831
4588
 
4832
4589
  - func: _svd_helper(Tensor self, bool some, bool compute_uv) -> (Tensor, Tensor, Tensor)
4833
- use_c10_dispatcher: unboxed_only
4834
4590
  variants: function
4835
4591
  dispatch:
4836
4592
  CPU: _svd_helper_cpu
@@ -4863,13 +4619,11 @@
4863
4619
  CUDA: _cholesky_solve_helper_cuda
4864
4620
 
4865
4621
  - func: solve(Tensor self, Tensor A) -> (Tensor solution, Tensor LU)
4866
- use_c10_dispatcher: unboxed_only
4867
4622
  variants: function, method
4868
4623
 
4869
4624
  - func: solve.solution(Tensor self, Tensor A, *, Tensor(a!) solution, Tensor(b!) lu) -> (Tensor(a!) solution, Tensor(b!) LU)
4870
4625
 
4871
4626
  - func: _solve_helper(Tensor self, Tensor A) -> (Tensor, Tensor)
4872
- use_c10_dispatcher: unboxed_only
4873
4627
  variants: function
4874
4628
  dispatch:
4875
4629
  CPU: _solve_helper_cpu
@@ -4890,11 +4644,9 @@
4890
4644
  - func: qr.Q(Tensor self, bool some=True, *, Tensor(a!) Q, Tensor(b!) R) -> (Tensor(a!) Q, Tensor(b!) R)
4891
4645
 
4892
4646
  - func: qr(Tensor self, bool some=True) -> (Tensor Q, Tensor R)
4893
- use_c10_dispatcher: unboxed_only
4894
4647
  variants: method, function
4895
4648
 
4896
4649
  - func: _qr_helper(Tensor self, bool some) -> (Tensor, Tensor)
4897
- use_c10_dispatcher: unboxed_only
4898
4650
  variants: function
4899
4651
  dispatch:
4900
4652
  CPU: _qr_helper_cpu
@@ -4906,7 +4658,6 @@
4906
4658
  CUDA: legacy::cuda::_th_geqrf_out
4907
4659
 
4908
4660
  - func: geqrf(Tensor self) -> (Tensor a, Tensor tau)
4909
- use_c10_dispatcher: unboxed_only
4910
4661
  variants: method, function
4911
4662
  dispatch:
4912
4663
  CPU: legacy::cpu::_th_geqrf
@@ -4933,7 +4684,6 @@
4933
4684
  CPU: legacy::cpu::_th_ormqr
4934
4685
 
4935
4686
  - func: _lu_with_info(Tensor self, bool pivot=True, bool check_errors=True) -> (Tensor, Tensor, Tensor)
4936
- use_c10_dispatcher: unboxed_only
4937
4687
  variants: function
4938
4688
  dispatch:
4939
4689
  CPU: _lu_with_info_cpu
@@ -4959,21 +4709,18 @@
4959
4709
  CUDA: multinomial_out
4960
4710
 
4961
4711
  - func: multinomial(Tensor self, int num_samples, bool replacement=False, *, Generator? generator=None) -> Tensor
4962
- use_c10_dispatcher: 'unboxed_only'
4963
4712
  variants: method, function
4964
4713
  dispatch:
4965
4714
  CPU: multinomial
4966
4715
  CUDA: multinomial
4967
4716
 
4968
4717
  - func: _multinomial_alias_setup(Tensor probs) -> (Tensor, Tensor)
4969
- use_c10_dispatcher: unboxed_only
4970
4718
  variants: function
4971
4719
  dispatch:
4972
4720
  CPU: legacy::cpu::_th_multinomial_alias_setup
4973
4721
  CUDA: legacy::cuda::_th_multinomial_alias_setup
4974
4722
 
4975
4723
  - func: _multinomial_alias_draw(Tensor J, Tensor q, int num_samples, *, Generator? generator=None) -> Tensor
4976
- use_c10_dispatcher: 'unboxed_only'
4977
4724
  variants: function
4978
4725
  dispatch:
4979
4726
  CPU: legacy::cpu::_th_multinomial_alias_draw
@@ -5018,7 +4765,6 @@
5018
4765
  CUDA: erfinv
5019
4766
 
5020
4767
  - func: erfinv_(Tensor(a!) self) -> Tensor(a!)
5021
- use_c10_dispatcher: unboxed_only
5022
4768
  supports_named_tensor: True
5023
4769
  variants: method
5024
4770
  dispatch:
@@ -5032,12 +4778,10 @@
5032
4778
  CUDA: _erfinv_out_cuda
5033
4779
 
5034
4780
  - func: sign(Tensor self) -> Tensor
5035
- use_c10_dispatcher: unboxed_only
5036
4781
  variants: function, method
5037
4782
  supports_named_tensor: True
5038
4783
 
5039
4784
  - func: sign_(Tensor(a!) self) -> Tensor(a!)
5040
- use_c10_dispatcher: unboxed_only
5041
4785
  variants: method
5042
4786
  supports_named_tensor: True
5043
4787
 
@@ -5202,7 +4946,6 @@
5202
4946
  CUDA: legacy::cuda::_th_sort_out
5203
4947
 
5204
4948
  - func: sort(Tensor self, int dim=-1, bool descending=False) -> (Tensor values, Tensor indices)
5205
- use_c10_dispatcher: unboxed_only
5206
4949
  variants: method, function
5207
4950
  dispatch:
5208
4951
  CPU: legacy::cpu::_th_sort
@@ -5227,7 +4970,6 @@
5227
4970
  CUDA: legacy::cuda::_th_topk_out
5228
4971
 
5229
4972
  - func: topk(Tensor self, int k, int dim=-1, bool largest=True, bool sorted=True) -> (Tensor values, Tensor indices)
5230
- use_c10_dispatcher: unboxed_only
5231
4973
  variants: method, function
5232
4974
  dispatch:
5233
4975
  CPU: topk
@@ -5257,11 +4999,11 @@
5257
4999
  CUDA: legacy::cuda::_th_renorm
5258
5000
 
5259
5001
  - func: unfold(Tensor(a) self, int dimension, int size, int step) -> Tensor(a)
5260
- use_c10_dispatcher: unboxed_only
5261
5002
  variants: method
5003
+ device_guard: False
5262
5004
  dispatch:
5263
- CPU: legacy::cpu::_th_unfold
5264
- CUDA: legacy::cuda::_th_unfold
5005
+ CPU: unfold
5006
+ CUDA: unfold
5265
5007
 
5266
5008
  - func: equal(Tensor self, Tensor other) -> bool
5267
5009
  use_c10_dispatcher: full
@@ -5270,6 +5012,7 @@
5270
5012
  CPU: legacy::cpu::_th_equal
5271
5013
  CUDA: legacy::cuda::_th_equal
5272
5014
  QuantizedCPU: quantized_equal
5015
+ supports_named_tensor: True
5273
5016
 
5274
5017
  - func: pow.Tensor_Tensor_out(Tensor self, Tensor exponent, *, Tensor(a!) out) -> Tensor(a!)
5275
5018
  supports_named_tensor: True
@@ -5304,7 +5047,6 @@
5304
5047
  CUDA: normal_out_cuda
5305
5048
 
5306
5049
  - func: normal.Tensor_float(Tensor mean, float std=1, *, Generator? generator=None) -> Tensor
5307
- use_c10_dispatcher: 'unboxed_only'
5308
5050
  dispatch:
5309
5051
  CPU: legacy::cpu::_th_normal
5310
5052
  CUDA: normal_cuda
@@ -5315,7 +5057,6 @@
5315
5057
  CUDA: normal_out_cuda
5316
5058
 
5317
5059
  - func: normal.float_Tensor(float mean, Tensor std, *, Generator? generator=None) -> Tensor
5318
- use_c10_dispatcher: 'unboxed_only'
5319
5060
  dispatch:
5320
5061
  CPU: legacy::cpu::_th_normal
5321
5062
  CUDA: normal_cuda
@@ -5326,7 +5067,6 @@
5326
5067
  CUDA: normal_out_cuda
5327
5068
 
5328
5069
  - func: normal.Tensor_Tensor(Tensor mean, Tensor std, *, Generator? generator=None) -> Tensor
5329
- use_c10_dispatcher: 'unboxed_only'
5330
5070
  dispatch:
5331
5071
  CPU: legacy::cpu::_th_normal
5332
5072
  CUDA: normal_cuda
@@ -5336,7 +5076,6 @@
5336
5076
  - func: normal.float_float_out(float mean, float std, int[] size, *, Generator? generator=None, Tensor(a!) out) -> Tensor(a!)
5337
5077
 
5338
5078
  - func: alias(Tensor(a) self) -> Tensor(a)
5339
- use_c10_dispatcher: unboxed_only
5340
5079
  variants: method, function
5341
5080
  supports_named_tensor: True
5342
5081
 
@@ -5347,7 +5086,6 @@
5347
5086
  CUDA: legacy::cuda::_th_addr
5348
5087
 
5349
5088
  - func: _addr_(Tensor(a!) self, Tensor vec1, Tensor vec2, *, Scalar beta=1, Scalar alpha=1) -> Tensor(a!)
5350
- use_c10_dispatcher: unboxed_only
5351
5089
  dispatch:
5352
5090
  CPU: legacy::cpu::_th_addr_
5353
5091
  CUDA: legacy::cuda::_th_addr_
@@ -5358,7 +5096,6 @@
5358
5096
  CUDA: legacy::cuda::_th_addr_out
5359
5097
 
5360
5098
  - func: _index_copy_(Tensor(a!) self, int dim, Tensor index, Tensor source) -> Tensor(a!)
5361
- use_c10_dispatcher: unboxed_only
5362
5099
  dispatch:
5363
5100
  CPU: legacy::cpu::_th_index_copy_
5364
5101
  CUDA: legacy::cuda::_th_index_copy_
@@ -5400,7 +5137,6 @@
5400
5137
  supports_named_tensor: True
5401
5138
 
5402
5139
  - func: _cat(Tensor[] tensors, int dim=0) -> Tensor
5403
- use_c10_dispatcher: unboxed_only
5404
5140
  dispatch:
5405
5141
  CPU: legacy::cpu::_th_cat
5406
5142
  CUDA: legacy::cuda::_th_cat
@@ -5411,7 +5147,6 @@
5411
5147
  CUDA: legacy::cuda::_th_cat_out
5412
5148
 
5413
5149
  - func: _mode(Tensor self, int dim=-1, bool keepdim=False) -> (Tensor, Tensor)
5414
- use_c10_dispatcher: unboxed_only
5415
5150
  dispatch:
5416
5151
  CPU: legacy::cpu::_th_mode
5417
5152
  CUDA: legacy::cuda::_th_mode
@@ -5422,7 +5157,6 @@
5422
5157
  CUDA: legacy::cuda::_th_mode_out
5423
5158
 
5424
5159
  - func: _max(Tensor self, int dim, bool keepdim=False) -> (Tensor, Tensor)
5425
- use_c10_dispatcher: unboxed_only
5426
5160
  dispatch:
5427
5161
  CPU: legacy::cpu::_th_max
5428
5162
  CUDA: legacy::cuda::_th_max
@@ -5433,7 +5167,6 @@
5433
5167
  CUDA: legacy::cuda::_th_max_out
5434
5168
 
5435
5169
  - func: _min(Tensor self, int dim, bool keepdim=False) -> (Tensor, Tensor)
5436
- use_c10_dispatcher: unboxed_only
5437
5170
  dispatch:
5438
5171
  CPU: legacy::cpu::_th_min
5439
5172
  CUDA: legacy::cuda::_th_min
@@ -5471,78 +5204,63 @@
5471
5204
 
5472
5205
  - func: mse_loss.out(Tensor self, Tensor target, int reduction=Mean, *, Tensor(a!) out) -> Tensor(a!)
5473
5206
  python_module: nn
5474
- dispatch:
5475
- CPU: legacy::cpu::_thnn_mse_loss_forward_out
5476
- CUDA: legacy::cuda::_thnn_mse_loss_forward_out
5477
5207
 
5478
5208
  - func: mse_loss(Tensor self, Tensor target, int reduction=Mean) -> Tensor
5479
5209
  use_c10_dispatcher: full
5480
5210
  python_module: nn
5481
- dispatch:
5482
- CPU: legacy::cpu::_thnn_mse_loss_forward
5483
- CUDA: legacy::cuda::_thnn_mse_loss_forward
5484
5211
 
5485
5212
  - func: mse_loss_backward.grad_input(Tensor grad_output, Tensor self, Tensor target, int reduction, *, Tensor(a!) grad_input) -> Tensor(a!)
5486
5213
  python_module: nn
5487
5214
  dispatch:
5488
- CPU: legacy::cpu::_thnn_mse_loss_backward_out
5489
- CUDA: legacy::cuda::_thnn_mse_loss_backward_out
5215
+ CPU: mse_loss_backward_out
5216
+ CUDA: mse_loss_backward_out
5490
5217
 
5491
5218
  - func: mse_loss_backward(Tensor grad_output, Tensor self, Tensor target, int reduction) -> Tensor
5492
5219
  use_c10_dispatcher: full
5493
5220
  python_module: nn
5494
5221
  dispatch:
5495
- CPU: legacy::cpu::_thnn_mse_loss_backward
5496
- CUDA: legacy::cuda::_thnn_mse_loss_backward
5222
+ CPU: mse_loss_backward
5223
+ CUDA: mse_loss_backward
5497
5224
 
5498
5225
  - func: l1_loss.out(Tensor self, Tensor target, int reduction=Mean, *, Tensor(a!) out) -> Tensor(a!)
5499
5226
  python_module: nn
5500
- dispatch:
5501
- CPU: legacy::cpu::_thnn_l1_loss_forward_out
5502
- CUDA: legacy::cuda::_thnn_l1_loss_forward_out
5503
5227
 
5504
5228
  - func: l1_loss(Tensor self, Tensor target, int reduction=Mean) -> Tensor
5505
5229
  use_c10_dispatcher: full
5506
5230
  python_module: nn
5507
- dispatch:
5508
- CPU: legacy::cpu::_thnn_l1_loss_forward
5509
- CUDA: legacy::cuda::_thnn_l1_loss_forward
5510
5231
 
5511
5232
  - func: l1_loss_backward.grad_input(Tensor grad_output, Tensor self, Tensor target, int reduction, *, Tensor(a!) grad_input) -> Tensor(a!)
5512
5233
  python_module: nn
5513
5234
  dispatch:
5514
- CPU: legacy::cpu::_thnn_l1_loss_backward_out
5515
- CUDA: legacy::cuda::_thnn_l1_loss_backward_out
5235
+ CPU: l1_loss_backward_out
5236
+ CUDA: l1_loss_backward_out
5516
5237
 
5517
5238
  - func: l1_loss_backward(Tensor grad_output, Tensor self, Tensor target, int reduction) -> Tensor
5518
5239
  use_c10_dispatcher: full
5519
5240
  python_module: nn
5520
- dispatch:
5521
- CPU: legacy::cpu::_thnn_l1_loss_backward
5522
- CUDA: legacy::cuda::_thnn_l1_loss_backward
5523
5241
 
5524
5242
  - func: multi_margin_loss.out(Tensor self, Tensor target, Scalar p=1, Scalar margin=1, Tensor? weight=None, int reduction=Mean, *, Tensor(a!) out) -> Tensor(a!)
5525
5243
  python_module: nn
5526
5244
  dispatch:
5527
- CPU: legacy::cpu::_thnn_multi_margin_loss_forward_out
5245
+ CPU: multi_margin_loss_cpu_out
5528
5246
  CUDA: legacy::cuda::_thnn_multi_margin_loss_forward_out
5529
5247
 
5530
5248
  - func: multi_margin_loss(Tensor self, Tensor target, Scalar p=1, Scalar margin=1, Tensor? weight=None, int reduction=Mean) -> Tensor
5531
5249
  python_module: nn
5532
5250
  dispatch:
5533
- CPU: legacy::cpu::_thnn_multi_margin_loss_forward
5251
+ CPU: multi_margin_loss_cpu
5534
5252
  CUDA: legacy::cuda::_thnn_multi_margin_loss_forward
5535
5253
 
5536
5254
  - func: multi_margin_loss_backward.grad_input(Tensor grad_output, Tensor self, Tensor target, Scalar p, Scalar margin, Tensor? weight=None, int reduction=Mean, *, Tensor(a!) grad_input) -> Tensor(a!)
5537
5255
  python_module: nn
5538
5256
  dispatch:
5539
- CPU: legacy::cpu::_thnn_multi_margin_loss_backward_out
5257
+ CPU: multi_margin_loss_cpu_backward_out
5540
5258
  CUDA: legacy::cuda::_thnn_multi_margin_loss_backward_out
5541
5259
 
5542
5260
  - func: multi_margin_loss_backward(Tensor grad_output, Tensor self, Tensor target, Scalar p, Scalar margin, Tensor? weight=None, int reduction=Mean) -> Tensor
5543
5261
  python_module: nn
5544
5262
  dispatch:
5545
- CPU: legacy::cpu::_thnn_multi_margin_loss_backward
5263
+ CPU: multi_margin_loss_cpu_backward
5546
5264
  CUDA: legacy::cuda::_thnn_multi_margin_loss_backward
5547
5265
 
5548
5266
  - func: multilabel_margin_loss.out(Tensor self, Tensor target, int reduction=Mean, *, Tensor(a!) out) -> Tensor(a!)
@@ -5555,27 +5273,26 @@
5555
5273
  - func: multilabel_margin_loss_forward.output(Tensor self, Tensor target, int reduction, *, Tensor(a!) output, Tensor(b!) is_target) -> (Tensor(a!), Tensor(b!))
5556
5274
  python_module: nn
5557
5275
  dispatch:
5558
- CPU: legacy::cpu::_thnn_multilabel_margin_loss_forward_out
5276
+ CPU: multilabel_margin_loss_forward_out_cpu
5559
5277
  CUDA: legacy::cuda::_thnn_multilabel_margin_loss_forward_out
5560
5278
 
5561
5279
  - func: multilabel_margin_loss_forward(Tensor self, Tensor target, int reduction) -> (Tensor output, Tensor is_target)
5562
- use_c10_dispatcher: unboxed_only
5563
5280
  python_module: nn
5564
5281
  dispatch:
5565
- CPU: legacy::cpu::_thnn_multilabel_margin_loss_forward
5282
+ CPU: multilabel_margin_loss_forward_cpu
5566
5283
  CUDA: legacy::cuda::_thnn_multilabel_margin_loss_forward
5567
5284
 
5568
5285
  - func: multilabel_margin_loss_backward.grad_input(Tensor grad_output, Tensor self, Tensor target, int reduction, Tensor is_target, *, Tensor(a!) grad_input) -> Tensor(a!)
5569
5286
  python_module: nn
5570
5287
  dispatch:
5571
- CPU: legacy::cpu::_thnn_multilabel_margin_loss_backward_out
5288
+ CPU: multilabel_margin_loss_backward_cpu_out
5572
5289
  CUDA: legacy::cuda::_thnn_multilabel_margin_loss_backward_out
5573
5290
 
5574
5291
  - func: multilabel_margin_loss_backward(Tensor grad_output, Tensor self, Tensor target, int reduction, Tensor is_target) -> Tensor
5575
5292
  use_c10_dispatcher: full
5576
5293
  python_module: nn
5577
5294
  dispatch:
5578
- CPU: legacy::cpu::_thnn_multilabel_margin_loss_backward
5295
+ CPU: multilabel_margin_loss_backward_cpu
5579
5296
  CUDA: legacy::cuda::_thnn_multilabel_margin_loss_backward
5580
5297
 
5581
5298
  - func: nll_loss.out(Tensor self, Tensor target, Tensor? weight=None, int reduction=Mean, int ignore_index=-100, *, Tensor(a!) out) -> Tensor(a!)
@@ -5587,25 +5304,25 @@
5587
5304
  - func: nll_loss_forward.output(Tensor self, Tensor target, Tensor? weight, int reduction, int ignore_index, *, Tensor(a!) output, Tensor(b!) total_weight) -> (Tensor(a!), Tensor(b!))
5588
5305
  python_module: nn
5589
5306
  dispatch:
5590
- CPU: legacy::cpu::_thnn_nll_loss_forward_out
5307
+ CPU: nll_loss_forward_out_cpu
5591
5308
  CUDA: legacy::cuda::_thnn_nll_loss_forward_out
5592
5309
 
5593
5310
  - func: nll_loss_forward(Tensor self, Tensor target, Tensor? weight, int reduction, int ignore_index) -> (Tensor output, Tensor total_weight)
5594
5311
  python_module: nn
5595
5312
  dispatch:
5596
- CPU: legacy::cpu::_thnn_nll_loss_forward
5313
+ CPU: nll_loss_forward_cpu
5597
5314
  CUDA: legacy::cuda::_thnn_nll_loss_forward
5598
5315
 
5599
5316
  - func: nll_loss_backward.grad_input(Tensor grad_output, Tensor self, Tensor target, Tensor? weight, int reduction, int ignore_index, Tensor total_weight, *, Tensor(a!) grad_input) -> Tensor(a!)
5600
5317
  python_module: nn
5601
5318
  dispatch:
5602
- CPU: legacy::cpu::_thnn_nll_loss_backward_out
5319
+ CPU: nll_loss_backward_out_cpu
5603
5320
  CUDA: legacy::cuda::_thnn_nll_loss_backward_out
5604
5321
 
5605
5322
  - func: nll_loss_backward(Tensor grad_output, Tensor self, Tensor target, Tensor? weight, int reduction, int ignore_index, Tensor total_weight) -> Tensor
5606
5323
  python_module: nn
5607
5324
  dispatch:
5608
- CPU: legacy::cpu::_thnn_nll_loss_backward
5325
+ CPU: nll_loss_backward_cpu
5609
5326
  CUDA: legacy::cuda::_thnn_nll_loss_backward
5610
5327
 
5611
5328
  - func: nll_loss2d.out(Tensor self, Tensor target, Tensor? weight=None, int reduction=Mean, int ignore_index=-100, *, Tensor(a!) out) -> Tensor(a!)
@@ -5617,52 +5334,46 @@
5617
5334
  - func: nll_loss2d_forward.output(Tensor self, Tensor target, Tensor? weight, int reduction, int ignore_index, *, Tensor(a!) output, Tensor(b!) total_weight) -> (Tensor(a!), Tensor(b!))
5618
5335
  python_module: nn
5619
5336
  dispatch:
5620
- CPU: legacy::cpu::_thnn_nll_loss2d_forward_out
5337
+ CPU: nll_loss2d_forward_out_cpu
5621
5338
  CUDA: legacy::cuda::_thnn_nll_loss2d_forward_out
5622
5339
 
5623
5340
  - func: nll_loss2d_forward(Tensor self, Tensor target, Tensor? weight, int reduction, int ignore_index) -> (Tensor output, Tensor total_weight)
5624
5341
  python_module: nn
5625
5342
  dispatch:
5626
- CPU: legacy::cpu::_thnn_nll_loss2d_forward
5343
+ CPU: nll_loss2d_forward_cpu
5627
5344
  CUDA: legacy::cuda::_thnn_nll_loss2d_forward
5628
5345
 
5629
5346
  - func: nll_loss2d_backward.grad_input(Tensor grad_output, Tensor self, Tensor target, Tensor? weight, int reduction, int ignore_index, Tensor total_weight, *, Tensor(a!) grad_input) -> Tensor(a!)
5630
5347
  python_module: nn
5631
5348
  dispatch:
5632
- CPU: legacy::cpu::_thnn_nll_loss2d_backward_out
5349
+ CPU: nll_loss2d_backward_out_cpu
5633
5350
  CUDA: legacy::cuda::_thnn_nll_loss2d_backward_out
5634
5351
 
5635
5352
  - func: nll_loss2d_backward(Tensor grad_output, Tensor self, Tensor target, Tensor? weight, int reduction, int ignore_index, Tensor total_weight) -> Tensor
5636
5353
  python_module: nn
5637
5354
  dispatch:
5638
- CPU: legacy::cpu::_thnn_nll_loss2d_backward
5355
+ CPU: nll_loss2d_backward_cpu
5639
5356
  CUDA: legacy::cuda::_thnn_nll_loss2d_backward
5640
5357
 
5641
5358
  - func: smooth_l1_loss.out(Tensor self, Tensor target, int reduction=Mean, *, Tensor(a!) out) -> Tensor(a!)
5642
5359
  python_module: nn
5643
5360
  dispatch:
5644
- CPU: legacy::cpu::_thnn_smooth_l1_loss_forward_out
5645
- CUDA: legacy::cuda::_thnn_smooth_l1_loss_forward_out
5361
+ CPU: smooth_l1_loss_out
5362
+ CUDA: smooth_l1_loss_out
5646
5363
 
5647
5364
  - func: smooth_l1_loss(Tensor self, Tensor target, int reduction=Mean) -> Tensor
5648
5365
  use_c10_dispatcher: full
5649
5366
  python_module: nn
5650
- dispatch:
5651
- CPU: legacy::cpu::_thnn_smooth_l1_loss_forward
5652
- CUDA: legacy::cuda::_thnn_smooth_l1_loss_forward
5653
5367
 
5654
5368
  - func: smooth_l1_loss_backward.grad_input(Tensor grad_output, Tensor self, Tensor target, int reduction, *, Tensor(a!) grad_input) -> Tensor(a!)
5655
5369
  python_module: nn
5656
5370
  dispatch:
5657
- CPU: legacy::cpu::_thnn_smooth_l1_loss_backward_out
5658
- CUDA: legacy::cuda::_thnn_smooth_l1_loss_backward_out
5371
+ CPU: smooth_l1_loss_backward_out
5372
+ CUDA: smooth_l1_loss_backward_out
5659
5373
 
5660
5374
  - func: smooth_l1_loss_backward(Tensor grad_output, Tensor self, Tensor target, int reduction) -> Tensor
5661
5375
  use_c10_dispatcher: full
5662
5376
  python_module: nn
5663
- dispatch:
5664
- CPU: legacy::cpu::_thnn_smooth_l1_loss_backward
5665
- CUDA: legacy::cuda::_thnn_smooth_l1_loss_backward
5666
5377
 
5667
5378
  - func: soft_margin_loss.out(Tensor self, Tensor target, int reduction=Mean, *, Tensor(a!) out) -> Tensor(a!)
5668
5379
  python_module: nn
@@ -5717,7 +5428,6 @@
5717
5428
  CUDA: legacy::cuda::_thnn_elu_backward
5718
5429
 
5719
5430
  - func: elu_(Tensor(a!) self, Scalar alpha=1, Scalar scale=1, Scalar input_scale=1) -> Tensor(a!)
5720
- use_c10_dispatcher: unboxed_only
5721
5431
  python_module: nn
5722
5432
  dispatch:
5723
5433
  CPU: legacy::cpu::_thnn_elu_forward_
@@ -5776,7 +5486,6 @@
5776
5486
  CUDA: legacy::cuda::_thnn_hardtanh_backward
5777
5487
 
5778
5488
  - func: hardtanh_(Tensor(a!) self, Scalar min_val=-1, Scalar max_val=1) -> Tensor(a!)
5779
- use_c10_dispatcher: unboxed_only
5780
5489
  python_module: nn
5781
5490
  dispatch:
5782
5491
  CPU: legacy::cpu::_thnn_hardtanh_forward_
@@ -5809,7 +5518,6 @@
5809
5518
  CUDA: legacy::cuda::_thnn_leaky_relu_backward
5810
5519
 
5811
5520
  - func: leaky_relu_(Tensor(a!) self, Scalar negative_slope=0.01) -> Tensor(a!)
5812
- use_c10_dispatcher: unboxed_only
5813
5521
  python_module: nn
5814
5522
  dispatch:
5815
5523
  CPU: legacy::cpu::_thnn_leaky_relu_forward_
@@ -5829,7 +5537,6 @@
5829
5537
  CUDA: legacy::cuda::_thnn_log_sigmoid_forward_out
5830
5538
 
5831
5539
  - func: log_sigmoid_forward(Tensor self) -> (Tensor output, Tensor buffer)
5832
- use_c10_dispatcher: unboxed_only
5833
5540
  python_module: nn
5834
5541
  dispatch:
5835
5542
  CPU: legacy::cpu::_thnn_log_sigmoid_forward
@@ -5855,7 +5562,6 @@
5855
5562
  CUDA: legacy::cuda::_thnn_rrelu_with_noise_forward_out
5856
5563
 
5857
5564
  - func: rrelu_with_noise(Tensor self, Tensor noise, Scalar lower=0.125, Scalar upper=0.3333333333333333, bool training=False, Generator? generator=None) -> Tensor
5858
- use_c10_dispatcher: 'unboxed_only'
5859
5565
  python_module: nn
5860
5566
  dispatch:
5861
5567
  CPU: legacy::cpu::_thnn_rrelu_with_noise_forward
@@ -5875,7 +5581,6 @@
5875
5581
  CUDA: legacy::cuda::_thnn_rrelu_with_noise_backward
5876
5582
 
5877
5583
  - func: rrelu_with_noise_(Tensor(a!) self, Tensor noise, Scalar lower=0.125, Scalar upper=0.3333333333333333, bool training=False, Generator? generator=None) -> Tensor(a!)
5878
- use_c10_dispatcher: 'unboxed_only'
5879
5584
  python_module: nn
5880
5585
  dispatch:
5881
5586
  CPU: legacy::cpu::_thnn_rrelu_with_noise_forward_
@@ -5941,17 +5646,14 @@
5941
5646
  MkldnnCPU: mkldnn_adaptive_avg_pool2d_out
5942
5647
 
5943
5648
  - func: adaptive_avg_pool2d(Tensor self, int[2] output_size) -> Tensor
5944
- use_c10_dispatcher: unboxed_only
5945
5649
  python_module: nn
5946
5650
 
5947
5651
  - func: mkldnn_adaptive_avg_pool2d(Tensor self, int[2] output_size) -> Tensor
5948
- use_c10_dispatcher: unboxed_only
5949
5652
  dispatch:
5950
5653
  MkldnnCPU: mkldnn_adaptive_avg_pool2d
5951
5654
  requires_tensor: True
5952
5655
 
5953
5656
  - func: _adaptive_avg_pool2d(Tensor self, int[2] output_size) -> Tensor
5954
- use_c10_dispatcher: unboxed_only
5955
5657
  dispatch:
5956
5658
  CPU: adaptive_avg_pool2d_cpu
5957
5659
  CUDA: adaptive_avg_pool2d_cuda
@@ -5971,7 +5673,6 @@
5971
5673
  CUDA: adaptive_avg_pool3d_out_cuda
5972
5674
 
5973
5675
  - func: adaptive_avg_pool3d(Tensor self, int[3] output_size) -> Tensor
5974
- use_c10_dispatcher: unboxed_only
5975
5676
  python_module: nn
5976
5677
  dispatch:
5977
5678
  CPU: adaptive_avg_pool3d_cpu
@@ -5999,7 +5700,6 @@
5999
5700
 
6000
5701
  # Return: (Tensor output, Tensor indices)
6001
5702
  - func: adaptive_max_pool2d(Tensor self, int[2] output_size) -> (Tensor, Tensor)
6002
- use_c10_dispatcher: unboxed_only
6003
5703
  python_module: nn
6004
5704
  dispatch:
6005
5705
  CPU: adaptive_max_pool2d_cpu
@@ -6027,7 +5727,6 @@
6027
5727
 
6028
5728
  # Return: (Tensor output, Tensor indices)
6029
5729
  - func: adaptive_max_pool3d(Tensor self, int[3] output_size) -> (Tensor, Tensor)
6030
- use_c10_dispatcher: unboxed_only
6031
5730
  python_module: nn
6032
5731
  dispatch:
6033
5732
  CPU: adaptive_max_pool3d_cpu
@@ -6054,7 +5753,6 @@
6054
5753
  MkldnnCPU: mkldnn_avg_pool2d_out
6055
5754
 
6056
5755
  - func: avg_pool2d(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=0, bool ceil_mode=False, bool count_include_pad=True, int? divisor_override=None) -> Tensor
6057
- use_c10_dispatcher: unboxed_only
6058
5756
  python_module: nn
6059
5757
  dispatch:
6060
5758
  CPU: avg_pool2d_cpu
@@ -6069,7 +5767,6 @@
6069
5767
  CUDA: avg_pool2d_backward_out_cuda
6070
5768
 
6071
5769
  - func: avg_pool2d_backward(Tensor grad_output, Tensor self, int[2] kernel_size, int[2] stride, int[2] padding, bool ceil_mode, bool count_include_pad, int? divisor_override) -> Tensor
6072
- use_c10_dispatcher: unboxed_only
6073
5770
  python_module: nn
6074
5771
  dispatch:
6075
5772
  CPU: avg_pool2d_backward_cpu
@@ -6082,7 +5779,6 @@
6082
5779
  CUDA: avg_pool3d_out_cuda
6083
5780
 
6084
5781
  - func: avg_pool3d(Tensor self, int[3] kernel_size, int[3] stride=[], int[3] padding=0, bool ceil_mode=False, bool count_include_pad=True, int? divisor_override=None) -> Tensor
6085
- use_c10_dispatcher: unboxed_only
6086
5782
  python_module: nn
6087
5783
  dispatch:
6088
5784
  CPU: avg_pool3d_cpu
@@ -6095,7 +5791,6 @@
6095
5791
  CUDA: avg_pool3d_backward_out_cuda
6096
5792
 
6097
5793
  - func: avg_pool3d_backward(Tensor grad_output, Tensor self, int[3] kernel_size, int[3] stride, int[3] padding, bool ceil_mode, bool count_include_pad, int? divisor_override) -> Tensor
6098
- use_c10_dispatcher: unboxed_only
6099
5794
  python_module: nn
6100
5795
  dispatch:
6101
5796
  CPU: avg_pool3d_backward_cpu
@@ -6110,7 +5805,6 @@
6110
5805
 
6111
5806
  # Return: (Tensor output, Tensor indices)
6112
5807
  - func: fractional_max_pool2d(Tensor self, int[2] kernel_size, int[2] output_size, Tensor random_samples) -> (Tensor, Tensor)
6113
- use_c10_dispatcher: unboxed_only
6114
5808
  python_module: nn
6115
5809
  dispatch:
6116
5810
  CPU: fractional_max_pool2d_cpu
@@ -6123,7 +5817,6 @@
6123
5817
  CUDA: fractional_max_pool2d_backward_out_cuda
6124
5818
 
6125
5819
  - func: fractional_max_pool2d_backward(Tensor grad_output, Tensor self, int[2] kernel_size, int[2] output_size, Tensor indices) -> Tensor
6126
- use_c10_dispatcher: unboxed_only
6127
5820
  python_module: nn
6128
5821
  dispatch:
6129
5822
  CPU: fractional_max_pool2d_backward_cpu
@@ -6138,7 +5831,6 @@
6138
5831
 
6139
5832
  # Return: (Tensor output, Tensor indices)
6140
5833
  - func: fractional_max_pool3d(Tensor self, int[3] kernel_size, int[3] output_size, Tensor random_samples) -> (Tensor, Tensor)
6141
- use_c10_dispatcher: unboxed_only
6142
5834
  python_module: nn
6143
5835
  dispatch:
6144
5836
  CPU: fractional_max_pool3d_cpu
@@ -6151,7 +5843,6 @@
6151
5843
  CUDA: fractional_max_pool3d_backward_out_cuda
6152
5844
 
6153
5845
  - func: fractional_max_pool3d_backward(Tensor grad_output, Tensor self, int[3] kernel_size, int[3] output_size, Tensor indices) -> Tensor
6154
- use_c10_dispatcher: unboxed_only
6155
5846
  python_module: nn
6156
5847
  dispatch:
6157
5848
  CPU: fractional_max_pool3d_backward_cpu
@@ -6166,7 +5857,6 @@
6166
5857
 
6167
5858
  # Return: (Tensor output, Tensor indices)
6168
5859
  - func: max_pool2d_with_indices(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=0, int[2] dilation=1, bool ceil_mode=False) -> (Tensor, Tensor)
6169
- use_c10_dispatcher: unboxed_only
6170
5860
  python_module: nn
6171
5861
  dispatch:
6172
5862
  CPU: max_pool2d_with_indices_cpu
@@ -6179,7 +5869,6 @@
6179
5869
  CUDA: max_pool2d_with_indices_backward_out_cuda
6180
5870
 
6181
5871
  - func: max_pool2d_with_indices_backward(Tensor grad_output, Tensor self, int[2] kernel_size, int[2] stride, int[2] padding, int[2] dilation, bool ceil_mode, Tensor indices) -> Tensor
6182
- use_c10_dispatcher: unboxed_only
6183
5872
  python_module: nn
6184
5873
  dispatch:
6185
5874
  CPU: max_pool2d_with_indices_backward_cpu
@@ -6194,7 +5883,6 @@
6194
5883
 
6195
5884
  # Return: (Tensor output, Tensor indices)
6196
5885
  - func: max_pool3d_with_indices(Tensor self, int[3] kernel_size, int[3] stride=[], int[3] padding=0, int[3] dilation=1, bool ceil_mode=False) -> (Tensor, Tensor)
6197
- use_c10_dispatcher: unboxed_only
6198
5886
  python_module: nn
6199
5887
  dispatch:
6200
5888
  CPU: max_pool3d_with_indices_cpu
@@ -6207,7 +5895,6 @@
6207
5895
  CUDA: max_pool3d_with_indices_backward_out_cuda
6208
5896
 
6209
5897
  - func: max_pool3d_with_indices_backward(Tensor grad_output, Tensor self, int[3] kernel_size, int[3] stride, int[3] padding, int[3] dilation, bool ceil_mode, Tensor indices) -> Tensor
6210
- use_c10_dispatcher: unboxed_only
6211
5898
  python_module: nn
6212
5899
  dispatch:
6213
5900
  CPU: max_pool3d_with_indices_backward_cpu
@@ -6220,7 +5907,6 @@
6220
5907
  CUDA: max_unpooling2d_forward_out_cuda
6221
5908
 
6222
5909
  - func: max_unpool2d(Tensor self, Tensor indices, int[2] output_size) -> Tensor
6223
- use_c10_dispatcher: unboxed_only
6224
5910
  python_module: nn
6225
5911
  dispatch:
6226
5912
  CPU: max_unpooling2d_forward_cpu
@@ -6233,7 +5919,6 @@
6233
5919
  CUDA: max_unpooling2d_backward_out_cuda
6234
5920
 
6235
5921
  - func: max_unpool2d_backward(Tensor grad_output, Tensor self, Tensor indices, int[2] output_size) -> Tensor
6236
- use_c10_dispatcher: unboxed_only
6237
5922
  python_module: nn
6238
5923
  dispatch:
6239
5924
  CPU: max_unpooling2d_backward_cpu
@@ -6246,7 +5931,6 @@
6246
5931
  CUDA: max_unpooling3d_forward_out_cuda
6247
5932
 
6248
5933
  - func: max_unpool3d(Tensor self, Tensor indices, int[3] output_size, int[3] stride, int[3] padding) -> Tensor
6249
- use_c10_dispatcher: unboxed_only
6250
5934
  python_module: nn
6251
5935
  dispatch:
6252
5936
  CPU: max_unpooling3d_forward_cpu
@@ -6259,7 +5943,6 @@
6259
5943
  CUDA: max_unpooling3d_backward_out_cuda
6260
5944
 
6261
5945
  - func: max_unpool3d_backward(Tensor grad_output, Tensor self, Tensor indices, int[3] output_size, int[3] stride, int[3] padding) -> Tensor
6262
- use_c10_dispatcher: unboxed_only
6263
5946
  python_module: nn
6264
5947
  dispatch:
6265
5948
  CPU: max_unpooling3d_backward_cpu
@@ -6272,7 +5955,6 @@
6272
5955
  CUDA: reflection_pad1d_out_cuda
6273
5956
 
6274
5957
  - func: reflection_pad1d(Tensor self, int[2] padding) -> Tensor
6275
- use_c10_dispatcher: unboxed_only
6276
5958
  python_module: nn
6277
5959
  dispatch:
6278
5960
  CPU: reflection_pad1d_cpu
@@ -6285,7 +5967,6 @@
6285
5967
  CUDA: reflection_pad1d_backward_out_cuda
6286
5968
 
6287
5969
  - func: reflection_pad1d_backward(Tensor grad_output, Tensor self, int[2] padding) -> Tensor
6288
- use_c10_dispatcher: unboxed_only
6289
5970
  python_module: nn
6290
5971
  dispatch:
6291
5972
  CPU: reflection_pad1d_backward_cpu
@@ -6298,7 +5979,6 @@
6298
5979
  CUDA: reflection_pad2d_out_cuda
6299
5980
 
6300
5981
  - func: reflection_pad2d(Tensor self, int[4] padding) -> Tensor
6301
- use_c10_dispatcher: unboxed_only
6302
5982
  python_module: nn
6303
5983
  dispatch:
6304
5984
  CPU: reflection_pad2d_cpu
@@ -6311,7 +5991,6 @@
6311
5991
  CUDA: reflection_pad2d_backward_out_cuda
6312
5992
 
6313
5993
  - func: reflection_pad2d_backward(Tensor grad_output, Tensor self, int[4] padding) -> Tensor
6314
- use_c10_dispatcher: unboxed_only
6315
5994
  python_module: nn
6316
5995
  dispatch:
6317
5996
  CPU: reflection_pad2d_backward_cpu
@@ -6324,7 +6003,6 @@
6324
6003
  CUDA: replication_pad1d_out_cuda
6325
6004
 
6326
6005
  - func: replication_pad1d(Tensor self, int[2] padding) -> Tensor
6327
- use_c10_dispatcher: unboxed_only
6328
6006
  python_module: nn
6329
6007
  dispatch:
6330
6008
  CPU: replication_pad1d_cpu
@@ -6337,7 +6015,6 @@
6337
6015
  CUDA: replication_pad1d_backward_out_cuda
6338
6016
 
6339
6017
  - func: replication_pad1d_backward(Tensor grad_output, Tensor self, int[2] padding) -> Tensor
6340
- use_c10_dispatcher: unboxed_only
6341
6018
  python_module: nn
6342
6019
  dispatch:
6343
6020
  CPU: replication_pad1d_backward_cpu
@@ -6350,7 +6027,6 @@
6350
6027
  CUDA: replication_pad2d_out_cuda
6351
6028
 
6352
6029
  - func: replication_pad2d(Tensor self, int[4] padding) -> Tensor
6353
- use_c10_dispatcher: unboxed_only
6354
6030
  python_module: nn
6355
6031
  dispatch:
6356
6032
  CPU: replication_pad2d_cpu
@@ -6363,7 +6039,6 @@
6363
6039
  CUDA: replication_pad2d_backward_out_cuda
6364
6040
 
6365
6041
  - func: replication_pad2d_backward(Tensor grad_output, Tensor self, int[4] padding) -> Tensor
6366
- use_c10_dispatcher: unboxed_only
6367
6042
  python_module: nn
6368
6043
  dispatch:
6369
6044
  CPU: replication_pad2d_backward_cpu
@@ -6376,7 +6051,6 @@
6376
6051
  CUDA: replication_pad3d_out_cuda
6377
6052
 
6378
6053
  - func: replication_pad3d(Tensor self, int[6] padding) -> Tensor
6379
- use_c10_dispatcher: unboxed_only
6380
6054
  python_module: nn
6381
6055
  dispatch:
6382
6056
  CPU: replication_pad3d_cpu
@@ -6389,12 +6063,14 @@
6389
6063
  CUDA: replication_pad3d_backward_out_cuda
6390
6064
 
6391
6065
  - func: replication_pad3d_backward(Tensor grad_output, Tensor self, int[6] padding) -> Tensor
6392
- use_c10_dispatcher: unboxed_only
6393
6066
  python_module: nn
6394
6067
  dispatch:
6395
6068
  CPU: replication_pad3d_backward_cpu
6396
6069
  CUDA: replication_pad3d_backward_cuda
6397
6070
 
6071
+ - func: _test_optional_float(Tensor self, *, float? scale=None) -> Tensor
6072
+ variants: function
6073
+
6398
6074
  - func: upsample_linear1d.out(Tensor self, int[1] output_size, bool align_corners, *, Tensor(a!) out) -> Tensor(a!)
6399
6075
  python_module: nn
6400
6076
  dispatch:
@@ -6402,7 +6078,6 @@
6402
6078
  CUDA: upsample_linear1d_out_cuda
6403
6079
 
6404
6080
  - func: upsample_linear1d(Tensor self, int[1] output_size, bool align_corners) -> Tensor
6405
- use_c10_dispatcher: unboxed_only
6406
6081
  python_module: nn
6407
6082
  dispatch:
6408
6083
  CPU: upsample_linear1d_cpu
@@ -6415,7 +6090,6 @@
6415
6090
  CUDA: upsample_linear1d_backward_out_cuda
6416
6091
 
6417
6092
  - func: upsample_linear1d_backward(Tensor grad_output, int[1] output_size, int[3] input_size, bool align_corners) -> Tensor
6418
- use_c10_dispatcher: unboxed_only
6419
6093
  python_module: nn
6420
6094
  dispatch:
6421
6095
  CPU: upsample_linear1d_backward_cpu
@@ -6428,7 +6102,6 @@
6428
6102
  CUDA: upsample_bilinear2d_out_cuda
6429
6103
 
6430
6104
  - func: upsample_bilinear2d(Tensor self, int[2] output_size, bool align_corners) -> Tensor
6431
- use_c10_dispatcher: unboxed_only
6432
6105
  python_module: nn
6433
6106
  dispatch:
6434
6107
  CPU: upsample_bilinear2d_cpu
@@ -6442,7 +6115,6 @@
6442
6115
  CUDA: upsample_bilinear2d_backward_out_cuda
6443
6116
 
6444
6117
  - func: upsample_bilinear2d_backward(Tensor grad_output, int[2] output_size, int[4] input_size, bool align_corners) -> Tensor
6445
- use_c10_dispatcher: unboxed_only
6446
6118
  python_module: nn
6447
6119
  dispatch:
6448
6120
  CPU: upsample_bilinear2d_backward_cpu
@@ -6455,7 +6127,6 @@
6455
6127
  CUDA: upsample_bicubic2d_out_cuda
6456
6128
 
6457
6129
  - func: upsample_bicubic2d(Tensor self, int[2] output_size, bool align_corners) -> Tensor
6458
- use_c10_dispatcher: unboxed_only
6459
6130
  python_module: nn
6460
6131
  dispatch:
6461
6132
  CPU: upsample_bicubic2d_cpu
@@ -6468,7 +6139,6 @@
6468
6139
  CUDA: upsample_bicubic2d_backward_out_cuda
6469
6140
 
6470
6141
  - func: upsample_bicubic2d_backward(Tensor grad_output, int[2] output_size, int[4] input_size, bool align_corners) -> Tensor
6471
- use_c10_dispatcher: unboxed_only
6472
6142
  python_module: nn
6473
6143
  dispatch:
6474
6144
  CPU: upsample_bicubic2d_backward_cpu
@@ -6481,7 +6151,6 @@
6481
6151
  CUDA: upsample_trilinear3d_out_cuda
6482
6152
 
6483
6153
  - func: upsample_trilinear3d(Tensor self, int[3] output_size, bool align_corners) -> Tensor
6484
- use_c10_dispatcher: unboxed_only
6485
6154
  python_module: nn
6486
6155
  dispatch:
6487
6156
  CPU: upsample_trilinear3d_cpu
@@ -6494,7 +6163,6 @@
6494
6163
  CUDA: upsample_trilinear3d_backward_out_cuda
6495
6164
 
6496
6165
  - func: upsample_trilinear3d_backward(Tensor grad_output, int[3] output_size, int[5] input_size, bool align_corners) -> Tensor
6497
- use_c10_dispatcher: unboxed_only
6498
6166
  python_module: nn
6499
6167
  dispatch:
6500
6168
  CPU: upsample_trilinear3d_backward_cpu
@@ -6507,7 +6175,6 @@
6507
6175
  CUDA: upsample_nearest1d_out_cuda
6508
6176
 
6509
6177
  - func: upsample_nearest1d(Tensor self, int[1] output_size) -> Tensor
6510
- use_c10_dispatcher: unboxed_only
6511
6178
  python_module: nn
6512
6179
  dispatch:
6513
6180
  CPU: upsample_nearest1d_cpu
@@ -6520,7 +6187,6 @@
6520
6187
  CUDA: upsample_nearest1d_backward_out_cuda
6521
6188
 
6522
6189
  - func: upsample_nearest1d_backward(Tensor grad_output, int[1] output_size, int[3] input_size) -> Tensor
6523
- use_c10_dispatcher: unboxed_only
6524
6190
  python_module: nn
6525
6191
  dispatch:
6526
6192
  CPU: upsample_nearest1d_backward_cpu
@@ -6533,7 +6199,6 @@
6533
6199
  CUDA: upsample_nearest2d_out_cuda
6534
6200
 
6535
6201
  - func: upsample_nearest2d(Tensor self, int[2] output_size) -> Tensor
6536
- use_c10_dispatcher: unboxed_only
6537
6202
  python_module: nn
6538
6203
  dispatch:
6539
6204
  CPU: upsample_nearest2d_cpu
@@ -6547,7 +6212,6 @@
6547
6212
  CUDA: upsample_nearest2d_backward_out_cuda
6548
6213
 
6549
6214
  - func: upsample_nearest2d_backward(Tensor grad_output, int[2] output_size, int[4] input_size) -> Tensor
6550
- use_c10_dispatcher: unboxed_only
6551
6215
  python_module: nn
6552
6216
  dispatch:
6553
6217
  CPU: upsample_nearest2d_backward_cpu
@@ -6560,7 +6224,6 @@
6560
6224
  CUDA: upsample_nearest3d_out_cuda
6561
6225
 
6562
6226
  - func: upsample_nearest3d(Tensor self, int[3] output_size) -> Tensor
6563
- use_c10_dispatcher: unboxed_only
6564
6227
  python_module: nn
6565
6228
  dispatch:
6566
6229
  CPU: upsample_nearest3d_cpu
@@ -6573,7 +6236,6 @@
6573
6236
  CUDA: upsample_nearest3d_backward_out_cuda
6574
6237
 
6575
6238
  - func: upsample_nearest3d_backward(Tensor grad_output, int[3] output_size, int[5] input_size) -> Tensor
6576
- use_c10_dispatcher: unboxed_only
6577
6239
  python_module: nn
6578
6240
  dispatch:
6579
6241
  CPU: upsample_nearest3d_backward_cpu
@@ -6582,15 +6244,12 @@
6582
6244
  - func: sigmoid_backward.grad_input(Tensor grad_output, Tensor output, *, Tensor(a!) grad_input) -> Tensor(a!)
6583
6245
  python_module: nn
6584
6246
  dispatch:
6585
- CPU: legacy::cpu::_thnn_sigmoid_backward_out
6586
- CUDA: legacy::cuda::_thnn_sigmoid_backward_out
6247
+ CPU: sigmoid_backward_out
6248
+ CUDA: sigmoid_backward_out
6587
6249
 
6588
6250
  - func: sigmoid_backward(Tensor grad_output, Tensor output) -> Tensor
6589
6251
  use_c10_dispatcher: full
6590
6252
  python_module: nn
6591
- dispatch:
6592
- CPU: legacy::cpu::_thnn_sigmoid_backward
6593
- CUDA: legacy::cuda::_thnn_sigmoid_backward
6594
6253
 
6595
6254
  - func: tanh_backward.grad_input(Tensor grad_output, Tensor output, *, Tensor(a!) grad_input) -> Tensor(a!)
6596
6255
  python_module: nn
@@ -6635,14 +6294,13 @@
6635
6294
  CPU: slow_conv_transpose2d_cpu
6636
6295
  CUDA: slow_conv_transpose2d_cuda
6637
6296
 
6638
- - func: slow_conv_transpose2d_backward.grad_output(Tensor grad_output, Tensor self, Tensor weight, int[2] kernel_size, int[2] stride, int[2] padding, int[2] output_padding, int[2] dilation, Tensor columns, Tensor ones, *, Tensor?(a!) grad_input, Tensor?(b!) grad_weight, Tensor?(c!) grad_bias) -> (Tensor(a!), Tensor(b!), Tensor(c!))
6297
+ - func: slow_conv_transpose2d_backward.grad_output(Tensor grad_output, Tensor self, Tensor weight, int[2] kernel_size, int[2] stride, int[2] padding, int[2] output_padding, int[2] dilation, Tensor columns, Tensor ones, *, Tensor(a!)? grad_input, Tensor(b!)? grad_weight, Tensor(c!)? grad_bias) -> (Tensor(a!), Tensor(b!), Tensor(c!))
6639
6298
  python_module: nn
6640
6299
  dispatch:
6641
6300
  CPU: slow_conv_transpose2d_backward_out_cpu
6642
6301
  CUDA: slow_conv_transpose2d_backward_out_cuda
6643
6302
 
6644
6303
  - func: slow_conv_transpose2d_backward.output_mask(Tensor grad_output, Tensor self, Tensor weight, int[2] kernel_size, int[2] stride, int[2] padding, int[2] output_padding, int[2] dilation, Tensor columns, Tensor ones, bool[3] output_mask) -> (Tensor grad_input, Tensor grad_weight, Tensor grad_bias)
6645
- use_c10_dispatcher: unboxed_only
6646
6304
  python_module: nn
6647
6305
  dispatch:
6648
6306
  CPU: slow_conv_transpose2d_backward_cpu
@@ -6660,14 +6318,13 @@
6660
6318
  CPU: slow_conv_transpose3d_cpu
6661
6319
  CUDA: slow_conv_transpose3d_cuda
6662
6320
 
6663
- - func: slow_conv_transpose3d_backward.grad_output(Tensor grad_output, Tensor self, Tensor weight, int[3] kernel_size, int[3] stride, int[3] padding, int[3] output_padding, int[3] dilation, Tensor finput, Tensor fgrad_input, *, Tensor?(a!) grad_input, Tensor?(b!) grad_weight, Tensor?(c!) grad_bias) -> (Tensor(a!), Tensor(b!), Tensor(c!))
6321
+ - func: slow_conv_transpose3d_backward.grad_output(Tensor grad_output, Tensor self, Tensor weight, int[3] kernel_size, int[3] stride, int[3] padding, int[3] output_padding, int[3] dilation, Tensor finput, Tensor fgrad_input, *, Tensor(a!)? grad_input, Tensor(b!)? grad_weight, Tensor(c!)? grad_bias) -> (Tensor(a!), Tensor(b!), Tensor(c!))
6664
6322
  python_module: nn
6665
6323
  dispatch:
6666
6324
  CPU: slow_conv_transpose3d_backward_out_cpu
6667
6325
  CUDA: slow_conv_transpose3d_backward_out_cuda
6668
6326
 
6669
6327
  - func: slow_conv_transpose3d_backward.output_mask(Tensor grad_output, Tensor self, Tensor weight, int[3] kernel_size, int[3] stride, int[3] padding, int[3] output_padding, int[3] dilation, Tensor finput, Tensor fgrad_input, bool[3] output_mask) -> (Tensor grad_input, Tensor grad_weight, Tensor grad_bias)
6670
- use_c10_dispatcher: unboxed_only
6671
6328
  python_module: nn
6672
6329
  dispatch:
6673
6330
  CPU: slow_conv_transpose3d_backward_cpu
@@ -6682,26 +6339,25 @@
6682
6339
  - func: thnn_conv2d_forward.output(Tensor self, Tensor weight, int[2] kernel_size, Tensor? bias, int[2] stride, int[2] padding, *, Tensor(a!) output, Tensor(b!) finput, Tensor(c!) fgrad_input) -> (Tensor(a!), Tensor(b!), Tensor(c!))
6683
6340
  python_module: nn
6684
6341
  dispatch:
6685
- CPU: legacy::cpu::_thnn_conv2d_forward_out
6342
+ CPU: slow_conv2d_forward_out_cpu
6686
6343
  CUDA: legacy::cuda::_thnn_conv2d_forward_out
6687
6344
 
6688
6345
  - func: thnn_conv2d_forward(Tensor self, Tensor weight, int[2] kernel_size, Tensor? bias, int[2] stride, int[2] padding) -> (Tensor output, Tensor finput, Tensor fgrad_input)
6689
6346
  python_module: nn
6690
6347
  dispatch:
6691
- CPU: legacy::cpu::_thnn_conv2d_forward
6348
+ CPU: slow_conv2d_forward_cpu
6692
6349
  CUDA: legacy::cuda::_thnn_conv2d_forward
6693
6350
 
6694
- - func: thnn_conv2d_backward.grad_input(Tensor grad_output, Tensor self, Tensor weight, int[2] kernel_size, int[2] stride, int[2] padding, Tensor finput, Tensor fgrad_input, *, Tensor?(a!) grad_input, Tensor?(b!) grad_weight, Tensor?(c!) grad_bias) -> (Tensor(a!), Tensor(b!), Tensor(c!))
6351
+ - func: thnn_conv2d_backward.grad_input(Tensor grad_output, Tensor self, Tensor weight, int[2] kernel_size, int[2] stride, int[2] padding, Tensor finput, Tensor fgrad_input, *, Tensor(a!)? grad_input, Tensor(b!)? grad_weight, Tensor(c!)? grad_bias) -> (Tensor(a!), Tensor(b!), Tensor(c!))
6695
6352
  python_module: nn
6696
6353
  dispatch:
6697
- CPU: legacy::cpu::_thnn_conv2d_backward_out
6354
+ CPU: slow_conv2d_backward_out_cpu
6698
6355
  CUDA: legacy::cuda::_thnn_conv2d_backward_out
6699
6356
 
6700
6357
  - func: thnn_conv2d_backward.output_mask(Tensor grad_output, Tensor self, Tensor weight, int[2] kernel_size, int[2] stride, int[2] padding, Tensor finput, Tensor fgrad_input, bool[3] output_mask) -> (Tensor grad_input, Tensor grad_weight, Tensor grad_bias)
6701
- use_c10_dispatcher: unboxed_only
6702
6358
  python_module: nn
6703
6359
  dispatch:
6704
- CPU: legacy::cpu::_thnn_conv2d_backward
6360
+ CPU: slow_conv2d_backward_cpu
6705
6361
  CUDA: legacy::cuda::_thnn_conv2d_backward
6706
6362
 
6707
6363
  - func: thnn_conv_depthwise2d.out(Tensor self, Tensor weight, int[2] kernel_size, Tensor? bias=None, int[2] stride=1, int[2] padding=0, int[2] dilation=1, *, Tensor(a!) out) -> Tensor(a!)
@@ -6720,43 +6376,41 @@
6720
6376
  dispatch:
6721
6377
  CUDA: legacy::cuda::_thnn_conv_depthwise2d_forward
6722
6378
 
6723
- - func: thnn_conv_depthwise2d_backward.grad_input(Tensor grad_output, Tensor self, Tensor weight, int[2] kernel_size, int[2] stride, int[2] padding, int[2] dilation, *, Tensor?(a!) grad_input, Tensor?(b!) grad_weight) -> (Tensor(a!), Tensor(b!))
6379
+ - func: thnn_conv_depthwise2d_backward.grad_input(Tensor grad_output, Tensor self, Tensor weight, int[2] kernel_size, int[2] stride, int[2] padding, int[2] dilation, *, Tensor(a!)? grad_input, Tensor(b!)? grad_weight) -> (Tensor(a!), Tensor(b!))
6724
6380
  python_module: nn
6725
6381
  dispatch:
6726
6382
  CUDA: legacy::cuda::_thnn_conv_depthwise2d_backward_out
6727
6383
 
6728
6384
  - func: thnn_conv_depthwise2d_backward.output_mask(Tensor grad_output, Tensor self, Tensor weight, int[2] kernel_size, int[2] stride, int[2] padding, int[2] dilation, bool[2] output_mask) -> (Tensor grad_input, Tensor grad_weight)
6729
- use_c10_dispatcher: unboxed_only
6730
6385
  python_module: nn
6731
6386
  dispatch:
6732
6387
  CUDA: legacy::cuda::_thnn_conv_depthwise2d_backward
6733
6388
 
6734
- - func: thnn_conv3d.out(Tensor self, Tensor weight, int[3] kernel_size, Tensor? bias=None, int[3] stride=1, int[3] padding=0, *, Tensor(a!) out) -> Tensor(a!)
6389
+ - func: slow_conv3d.out(Tensor self, Tensor weight, int[3] kernel_size, Tensor? bias=None, int[3] stride=1, int[3] padding=0, *, Tensor(a!) out) -> Tensor(a!)
6735
6390
  python_module: nn
6736
6391
 
6737
- - func: thnn_conv3d(Tensor self, Tensor weight, int[3] kernel_size, Tensor? bias=None, int[3] stride=1, int[3] padding=0) -> Tensor
6392
+ - func: slow_conv3d(Tensor self, Tensor weight, int[3] kernel_size, Tensor? bias=None, int[3] stride=1, int[3] padding=0) -> Tensor
6738
6393
  python_module: nn
6739
6394
 
6740
- - func: thnn_conv3d_forward.output(Tensor self, Tensor weight, int[3] kernel_size, Tensor? bias, int[3] stride, int[3] padding, *, Tensor(a!) output, Tensor(b!) finput, Tensor(c!) fgrad_input) -> (Tensor(a!), Tensor(b!), Tensor(c!))
6395
+ - func: slow_conv3d_forward.output(Tensor self, Tensor weight, int[3] kernel_size, Tensor? bias, int[3] stride, int[3] padding, *, Tensor(a!) output, Tensor(b!) finput, Tensor(c!) fgrad_input) -> (Tensor(a!), Tensor(b!), Tensor(c!))
6741
6396
  python_module: nn
6742
6397
  dispatch:
6743
- CPU: legacy::cpu::_thnn_conv3d_forward_out
6398
+ CPU: slow_conv3d_forward_out_cpu
6744
6399
 
6745
- - func: thnn_conv3d_forward(Tensor self, Tensor weight, int[3] kernel_size, Tensor? bias, int[3] stride, int[3] padding) -> (Tensor output, Tensor finput, Tensor fgrad_input)
6400
+ - func: slow_conv3d_forward(Tensor self, Tensor weight, int[3] kernel_size, Tensor? bias, int[3] stride, int[3] padding) -> (Tensor output, Tensor finput, Tensor fgrad_input)
6746
6401
  python_module: nn
6747
6402
  dispatch:
6748
- CPU: legacy::cpu::_thnn_conv3d_forward
6403
+ CPU: slow_conv3d_forward_cpu
6749
6404
 
6750
- - func: thnn_conv3d_backward.grad_input(Tensor grad_output, Tensor self, Tensor weight, int[3] kernel_size, int[3] stride, int[3] padding, Tensor finput, Tensor fgrad_input, *, Tensor?(a!) grad_input, Tensor?(b!) grad_weight, Tensor?(c!) grad_bias) -> (Tensor(a!), Tensor(b!), Tensor(c!))
6405
+ - func: slow_conv3d_backward.grad_input(Tensor grad_output, Tensor self, Tensor weight, int[3] kernel_size, int[3] stride, int[3] padding, Tensor finput, Tensor fgrad_input, *, Tensor(a!)? grad_input, Tensor(b!)? grad_weight, Tensor(c!)? grad_bias) -> (Tensor(a!), Tensor(b!), Tensor(c!))
6751
6406
  python_module: nn
6752
6407
  dispatch:
6753
- CPU: legacy::cpu::_thnn_conv3d_backward_out
6408
+ CPU: slow_conv3d_backward_out_cpu
6754
6409
 
6755
- - func: thnn_conv3d_backward.output_mask(Tensor grad_output, Tensor self, Tensor weight, int[3] kernel_size, int[3] stride, int[3] padding, Tensor finput, Tensor fgrad_input, bool[3] output_mask) -> (Tensor grad_input, Tensor grad_weight, Tensor grad_bias)
6756
- use_c10_dispatcher: unboxed_only
6410
+ - func: slow_conv3d_backward.output_mask(Tensor grad_output, Tensor self, Tensor weight, int[3] kernel_size, int[3] stride, int[3] padding, Tensor finput, Tensor fgrad_input, bool[3] output_mask) -> (Tensor grad_input, Tensor grad_weight, Tensor grad_bias)
6757
6411
  python_module: nn
6758
6412
  dispatch:
6759
- CPU: legacy::cpu::_thnn_conv3d_backward
6413
+ CPU: slow_conv3d_backward_cpu
6760
6414
 
6761
6415
  - func: slow_conv_dilated2d(Tensor self, Tensor weight, int[2] kernel_size, Tensor? bias=None, int[2] stride=1, int[2] padding=0, int[2] dilation=1) -> Tensor
6762
6416
  python_module: nn
@@ -6765,7 +6419,6 @@
6765
6419
  CUDA: slow_conv_dilated2d_cuda
6766
6420
 
6767
6421
  - func: slow_conv_dilated2d_backward(Tensor grad_output, Tensor self, Tensor weight, int[2] kernel_size, int[2] stride, int[2] padding, int[2] dilation, bool[3] output_mask) -> (Tensor grad_input, Tensor grad_weight, Tensor grad_bias)
6768
- use_c10_dispatcher: unboxed_only
6769
6422
  python_module: nn
6770
6423
  dispatch:
6771
6424
  CPU: slow_conv_dilated2d_backward_cpu
@@ -6778,7 +6431,6 @@
6778
6431
  CUDA: slow_conv_dilated3d_cuda
6779
6432
 
6780
6433
  - func: slow_conv_dilated3d_backward(Tensor grad_output, Tensor self, Tensor weight, int[3] kernel_size, int[3] stride, int[3] padding, int[3] dilation, bool[3] output_mask) -> (Tensor grad_input, Tensor grad_weight, Tensor grad_bias)
6781
- use_c10_dispatcher: unboxed_only
6782
6434
  python_module: nn
6783
6435
  dispatch:
6784
6436
  CPU: slow_conv_dilated3d_backward_cpu
@@ -6791,7 +6443,6 @@
6791
6443
  CUDA: col2im_out_cuda
6792
6444
 
6793
6445
  - func: col2im(Tensor self, int[2] output_size, int[2] kernel_size, int[2] dilation, int[2] padding, int[2] stride) -> Tensor
6794
- use_c10_dispatcher: unboxed_only
6795
6446
  python_module: nn
6796
6447
  dispatch:
6797
6448
  CPU: col2im_cpu
@@ -6804,7 +6455,6 @@
6804
6455
  CUDA: col2im_backward_out_cuda
6805
6456
 
6806
6457
  - func: col2im_backward(Tensor grad_output, int[2] kernel_size, int[2] dilation, int[2] padding, int[2] stride) -> Tensor
6807
- use_c10_dispatcher: unboxed_only
6808
6458
  python_module: nn
6809
6459
  dispatch:
6810
6460
  CPU: col2im_backward_cpu
@@ -6817,7 +6467,6 @@
6817
6467
  CUDA: im2col_out_cuda
6818
6468
 
6819
6469
  - func: im2col(Tensor self, int[2] kernel_size, int[2] dilation, int[2] padding, int[2] stride) -> Tensor
6820
- use_c10_dispatcher: unboxed_only
6821
6470
  python_module: nn
6822
6471
  dispatch:
6823
6472
  CPU: im2col_cpu
@@ -6830,8 +6479,13 @@
6830
6479
  CUDA: im2col_backward_out_cuda
6831
6480
 
6832
6481
  - func: im2col_backward(Tensor grad_output, int[2] input_size, int[2] kernel_size, int[2] dilation, int[2] padding, int[2] stride) -> Tensor
6833
- use_c10_dispatcher: unboxed_only
6834
6482
  python_module: nn
6835
6483
  dispatch:
6836
6484
  CPU: im2col_backward_cpu
6837
6485
  CUDA: im2col_backward_cuda
6486
+
6487
+ - func: isfinite(Tensor self) -> Tensor
6488
+ use_c10_dispatcher: full
6489
+ variants: function
6490
+ device_guard: False
6491
+ supports_named_tensor: True