sparse_ops.yaml 12.9 KB
Newer Older
1
- op : abs
2 3
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
4 5
  infer_meta :
    func : UnchangedInferMeta
6 7 8 9 10 11
  kernel :
    func : abs_coo{sparse_coo -> sparse_coo},
           abs_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : abs_grad

12
- op : acos
13 14
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
15 16
  infer_meta :
    func : UnchangedInferMeta
17 18 19 20 21 22
  kernel :
    func : acos_coo{sparse_coo -> sparse_coo},
           acos_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : acos_grad

23
- op : acosh
24 25
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
26 27
  infer_meta :
    func : UnchangedInferMeta
28 29 30 31 32 33
  kernel :
    func : acosh_coo{sparse_coo -> sparse_coo},
           acosh_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : acosh_grad

34
- op : add
35 36
  args : (Tensor x, Tensor y)
  output : Tensor(out)
Z
zhangkaihuo 已提交
37
  infer_meta :
Z
zhangkaihuo 已提交
38
    func : ElementwiseInferMeta
39
  kernel :
40 41
    func : add_coo_coo{sparse_coo, sparse_coo -> sparse_coo},
           add_csr_csr{sparse_csr, sparse_csr -> sparse_csr}
Z
zhangkaihuo 已提交
42
           add_coo_dense{sparse_coo, dense -> sparse_coo},
43 44 45
    layout : x
  backward : add_grad

46
- op : asin
47 48
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
49 50
  infer_meta :
    func : UnchangedInferMeta
51 52 53 54 55 56
  kernel :
    func : asin_coo{sparse_coo -> sparse_coo},
           asin_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : asin_grad

57
- op : asinh
58 59
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
60 61
  infer_meta :
    func : UnchangedInferMeta
62 63 64 65 66 67
  kernel :
    func : asinh_coo{sparse_coo -> sparse_coo},
           asinh_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : asinh_grad

68
- op : atan
69 70
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
71 72
  infer_meta :
    func : UnchangedInferMeta
73 74 75 76 77 78
  kernel :
    func : atan_coo{sparse_coo -> sparse_coo},
           atan_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : atan_grad

79
- op : atanh
80 81
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
82 83
  infer_meta :
    func : UnchangedInferMeta
84 85 86 87 88 89
  kernel :
    func : atanh_coo{sparse_coo -> sparse_coo},
           atanh_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : atanh_grad

90 91 92 93 94 95 96 97 98 99
- op : batch_norm
  args : (Tensor x, Tensor scale, Tensor bias, Tensor mean, Tensor variance, float momentum, float epsilon, str data_layout, bool is_test, bool use_global_stats, bool trainable_statistics, bool fuse_with_relu)
  output : Tensor(out), Tensor(mean_out), Tensor(variance_out), Tensor(saved_mean), Tensor(saved_variance), Tensor(reserve_space)
  infer_meta :
    func : BatchNormInferMeta
  kernel :
    func : batch_norm_coo {sparse_coo, dense, dense, dense, dense -> sparse_coo, dense, dense, dense, dense, dense}
    data_type : x
  backward : batch_norm_grad

100
- op : cast
101 102
  args : (Tensor x, DataType index_dtype=DataType::UNDEFINED, DataType value_dtype=DataType::UNDEFINED)
  output : Tensor(out)
Z
zhangkaihuo 已提交
103 104 105
  infer_meta :
    func : CastInferMeta
    param: [x, value_dtype]
106 107 108 109 110 111 112
  kernel :
    func : cast_coo{sparse_coo -> sparse_coo},
           cast_csr{sparse_csr -> sparse_csr}
    layout : x
    data_type : x
  backward : cast_grad

113
- op : conv3d
114
  args : (Tensor x, Tensor kernel, int[] paddings, int[] dilations, int[] strides, int groups, bool subm, str key)
115
  output : Tensor(out), Tensor(rulebook), Tensor(counter)
Z
zhangkaihuo 已提交
116 117
  infer_meta :
    func : sparse::Conv3dInferMeta
118
  kernel :
119
    func : conv3d_coo{sparse_coo, dense -> sparse_coo, dense, dense}
120
    layout : x
121 122
  intermediate: rulebook, counter
  backward : conv3d_coo_grad
123

124
- op : divide
125 126
  args : (Tensor x, Tensor y)
  output : Tensor(out)
Z
zhangkaihuo 已提交
127
  infer_meta :
Z
zhangkaihuo 已提交
128
    func : ElementwiseInferMeta
129
  kernel :
130 131
    func : divide_coo_coo{sparse_coo, sparse_coo -> sparse_coo},
           divide_csr_csr{sparse_csr, sparse_csr -> sparse_csr}
132 133 134
    layout : x
  backward : divide_grad

135
- op : divide_scalar
136 137
  args : (Tensor x, float scalar)
  output : Tensor(out)
Z
zhangkaihuo 已提交
138 139 140
  infer_meta :
    func : UnchangedInferMeta
    param : [x]
141 142 143 144 145
  kernel :
    func : divide_coo_scalar{sparse_coo -> sparse_coo},
           divide_csr_scalar{sparse_csr -> sparse_csr}
  backward : divide_scalar_grad

146
- op : expm1
147 148
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
149 150
  infer_meta :
    func : UnchangedInferMeta
151 152 153 154 155 156
  kernel :
    func : expm1_coo{sparse_coo -> sparse_coo},
           expm1_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : expm1_grad

157
- op : leaky_relu
158 159
  args : (Tensor x, float alpha)
  output : Tensor(out)
Z
zhangkaihuo 已提交
160 161 162
  infer_meta :
    func : UnchangedInferMeta
    param : [x]
163 164 165 166 167 168
  kernel :
    func : leaky_relu_coo{sparse_coo -> sparse_coo},
           leaky_relu_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : leaky_relu_grad

169
- op : log1p
170 171
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
172 173
  infer_meta :
    func : UnchangedInferMeta
174 175 176 177 178 179
  kernel :
    func : log1p_coo{sparse_coo -> sparse_coo},
           log1p_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : log1p_grad

180
- op : multiply
181 182
  args : (Tensor x, Tensor y)
  output : Tensor(out)
Z
zhangkaihuo 已提交
183 184
  infer_meta :
    func : ElementwiseInferMeta
185
  kernel :
186 187
    func : multiply_coo_coo{sparse_coo, sparse_coo -> sparse_coo},
           multiply_csr_csr{sparse_csr, sparse_csr -> sparse_csr}
188 189 190
    layout : x
  backward : multiply_grad

191
- op : pow
192 193
  args : (Tensor x, float factor)
  output : Tensor(out)
Z
zhangkaihuo 已提交
194 195 196
  infer_meta :
    func : UnchangedInferMeta
    param : [x]
197 198 199 200 201 202
  kernel :
    func : pow_coo{sparse_coo -> sparse_coo},
           pow_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : pow_grad

203
- op : relu
204
  args : (Tensor x)
205
  output : Tensor(out)
Z
zhangkaihuo 已提交
206 207
  infer_meta :
    func : UnchangedInferMeta
208
  kernel :
209 210
    func : relu_coo{sparse_coo -> sparse_coo},
           relu_csr{sparse_csr -> sparse_csr}
211
    layout : x
212
  backward : relu_grad
213

214
- op : relu6
215 216
  args : (Tensor x, float threshold)
  output : Tensor(out)
Z
zhangkaihuo 已提交
217 218 219
  infer_meta :
    func : UnchangedInferMeta
    param : [x]
220 221 222 223 224 225
  kernel :
    func : relu6_coo{sparse_coo -> sparse_coo},
           relu6_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : relu6_grad

226
- op : scale
227 228
  args : (Tensor x, float scale, float bias, bool bias_after_scale)
  output : Tensor(out)
Z
zhangkaihuo 已提交
229 230 231
  infer_meta :
    func : UnchangedInferMeta
    param : [x]
232 233 234 235 236
  kernel :
    func : scale_coo{sparse_coo -> sparse_coo},
           scale_csr{sparse_csr -> sparse_csr}
  backward : scale_grad

237
- op : sin
238
  args : (Tensor x)
239
  output : Tensor(out)
Z
zhangkaihuo 已提交
240 241
  infer_meta :
    func : UnchangedInferMeta
242
  kernel :
243 244
    func : sin_coo{sparse_coo -> sparse_coo},
           sin_csr{sparse_csr -> sparse_csr}
245
    layout : x
246
  backward : sin_grad
247

248
- op : sinh
249 250
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
251 252
  infer_meta :
    func : UnchangedInferMeta
253 254 255 256 257 258
  kernel :
    func : sinh_coo{sparse_coo -> sparse_coo},
           sinh_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : sinh_grad

259
- op : softmax
260 261
  args : (Tensor x, int axis=-1)
  output : Tensor(out)
Z
zhangkaihuo 已提交
262 263 264
  infer_meta :
    func : UnchangedInferMeta
    param : [x]
265 266 267 268 269
  kernel :
    func : softmax_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : softmax_grad

270
- op : sparse_coo_tensor
271 272
  args : (Tensor values, Tensor indices, IntArray dense_shape)
  output : Tensor(out)
Z
zhangkaihuo 已提交
273 274
  infer_meta :
    func : sparse::SparseCooTensorInferMeta
275 276 277 278 279 280
  kernel :
    func : sparse_coo_tensor{dense, dense -> sparse_coo}
    layout : values
    data_type : values
  backward : sparse_coo_tensor_grad

281
- op : sqrt
282
  args : (Tensor x)
283
  output : Tensor(out)
Z
zhangkaihuo 已提交
284 285
  infer_meta :
    func : UnchangedInferMeta
286
  kernel :
287 288
    func : sqrt_coo{sparse_coo -> sparse_coo},
           sqrt_csr{sparse_csr -> sparse_csr}
289
    layout : x
290
  backward : sqrt_grad
291

292
- op : square
293 294
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
295 296
  infer_meta :
    func : UnchangedInferMeta
297 298 299 300 301 302
  kernel :
    func : square_coo{sparse_coo -> sparse_coo},
           square_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : square_grad

303
- op : subtract
304 305
  args : (Tensor x, Tensor y)
  output : Tensor(out)
Z
zhangkaihuo 已提交
306 307
  infer_meta :
    func : ElementwiseInferMeta
308
  kernel :
309 310
    func : subtract_coo_coo{sparse_coo, sparse_coo -> sparse_coo},
           subtract_csr_csr{sparse_csr, sparse_csr -> sparse_csr}
311 312 313
    layout : x
  backward : subtract_grad

314
- op : tan
315 316
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
317 318
  infer_meta :
    func : UnchangedInferMeta
319 320 321 322 323 324
  kernel :
    func : tan_coo{sparse_coo -> sparse_coo},
           tan_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : tan_grad

325
- op : tanh
326
  args : (Tensor x)
327
  output : Tensor(out)
Z
zhangkaihuo 已提交
328 329
  infer_meta :
    func : UnchangedInferMeta
330
  kernel :
331 332
    func : tanh_coo{sparse_coo -> sparse_coo},
           tanh_csr{sparse_csr -> sparse_csr}
333
    layout : x
334
  backward : tanh_grad
335

336
- op : to_dense
337
  args : (Tensor x)
338
  output : Tensor(out)
Z
zhangkaihuo 已提交
339 340
  infer_meta :
    func : UnchangedInferMeta
341 342 343 344
  kernel :
    func : coo_to_dense {sparse_coo -> dense},
           csr_to_dense {sparse_csr -> dense}
  backward : to_dense_grad
345

346
- op : to_sparse_coo
347
  args : (Tensor x, int64_t sparse_dim)
348
  output : Tensor(out)
Z
zhangkaihuo 已提交
349 350 351
  infer_meta :
    func : UnchangedInferMeta
    param : [x]
352 353 354 355
  kernel :
    func : dense_to_coo { dense -> sparse_coo },
           csr_to_coo { sparse_csr -> sparse_coo}
  backward : to_sparse_coo_grad
356

357
- op : to_sparse_csr
358
  args : (Tensor x)
359
  output : Tensor(out)
Z
zhangkaihuo 已提交
360 361
  infer_meta :
    func : UnchangedInferMeta
362 363 364
  kernel :
    func : dense_to_csr {dense -> sparse_csr},
           coo_to_csr {sparse_coo -> sparse_csr}
Z
zhangkaihuo 已提交
365

366
- op : values
367 368
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
369 370
  infer_meta :
    func : sparse::ValuesInferMeta
371
  kernel :
372 373
    func : values_coo{sparse_coo -> dense},
           values_csr{sparse_csr -> dense}
374 375 376
    layout : x
  backward : values_grad

377
- op: addmm
378 379
  args : (Tensor input, Tensor x, Tensor y, float alpha=1.0, float beta=1.0)
  output : Tensor(out)
Z
zhangkaihuo 已提交
380 381
  infer_meta :
    func : AddmmInferMeta
382 383 384 385 386 387 388 389
  kernel :
    func : addmm_csr_dense {dense, sparse_csr, dense -> dense},
           addmm_csr_csr {sparse_csr, sparse_csr, sparse_csr -> sparse_csr},
           addmm_coo_dense {dense, sparse_coo, dense -> dense},
           addmm_coo_coo {sparse_coo, sparse_coo, sparse_coo -> sparse_coo}
    layout : x
  backward: addmm_grad

390
- op: coalesce
Z
zhangkaihuo 已提交
391 392
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
393 394
  infer_meta :
    func : UnchangedInferMeta
Z
zhangkaihuo 已提交
395 396 397 398
  kernel :
    func: coalesce{sparse_coo -> sparse_coo}
    layout : x

399
- op: full_like
400 401
  args : (Tensor x, Scalar value, DataType dtype=DataType::UNDEFINED)
  output : Tensor(out)
Z
zhangkaihuo 已提交
402 403 404
  infer_meta :
    func : CreateLikeInferMeta
    param : [x, dtype]
405 406 407 408 409 410
  kernel :
    func : coo_full_like{sparse_coo -> sparse_coo},
           csr_full_like{sparse_csr -> sparse_csr}
    layout : x
    data_type : dtype

411
- op: fused_attention
412 413
  args : (Tensor query, Tensor key, Tensor value, Tensor sparse_mask, Tensor key_padding_mask, Tensor attn_mask)
  output : Tensor(out), Tensor(softmax)
Z
zhangkaihuo 已提交
414 415
  infer_meta :
    func : sparse::FusedAttentionInferMeta
416 417 418
  kernel :
    func : fused_attention_csr{dense, dense, dense, sparse_csr, dense, dense -> dense, sparse_csr}
    layout : sparse_mask
419 420
    data_type: query
  optional : key_padding_mask, attn_mask
421 422 423
  intermediate : softmax
  backward: fused_attention_grad

424
- op: masked_matmul
425 426
  args : (Tensor x, Tensor y, Tensor mask)
  output : Tensor(out)
Z
zhangkaihuo 已提交
427 428 429
  infer_meta :
    func : MatmulInferMeta
    param : [x, y, false, false]
430
  kernel :
431
    func : masked_matmul_csr{dense, dense, sparse_csr -> sparse_csr}
432 433 434
    layout : x
  backward: masked_matmul_grad

435
- op: matmul
436 437
  args : (Tensor x, Tensor y)
  output : Tensor(out)
Z
zhangkaihuo 已提交
438 439 440
  infer_meta :
    func : MatmulInferMeta
    param: [x, y, false, false]
441
  kernel :
442 443 444 445
    func : matmul_csr_dense {sparse_csr, dense -> dense},
           matmul_csr_csr {sparse_csr, sparse_csr -> sparse_csr},
           matmul_coo_dense {sparse_coo, dense -> dense},
           matmul_coo_coo {sparse_coo, sparse_coo -> sparse_coo}
446 447 448
    layout : x
  backward: matmul_grad

449
- op: maxpool
Z
zhangkaihuo 已提交
450
  args : (Tensor x, int[] kernel_sizes, int[] paddings, int[] dilations, int[] strides)
451
  output : Tensor(out), Tensor(rulebook), Tensor(counter)
Z
zhangkaihuo 已提交
452 453
  infer_meta :
    func : sparse::Pool3dInferMeta
Z
zhangkaihuo 已提交
454
  kernel :
455
    func : maxpool_coo{sparse_coo -> sparse_coo, dense, dense}
Z
zhangkaihuo 已提交
456
    layout : x
457
  intermediate : rulebook, counter
458
  backward : maxpool_grad
459

460
- op: mv
461 462
  args : (Tensor x, Tensor vec)
  output : Tensor(out)
Z
zhangkaihuo 已提交
463 464
  infer_meta :
    func : MvInferMeta
465 466 467 468 469
  kernel :
    func : mv_coo{sparse_coo, dense -> dense},
           mv_csr{sparse_csr, dense -> dense}
    layout : x
  backward: mv_grad
470 471 472 473 474 475 476 477 478 479 480 481

- op : transpose
  args : (Tensor x, int[] perm)
  output : Tensor(out)
  infer_meta :
    func : TransposeInferMeta
    param: [ x, perm ]
  kernel :
    func : transpose_coo{sparse_coo -> sparse_coo},
           transpose_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : transpose_grad
Z
zhangkaihuo 已提交
482 483 484 485 486 487 488 489 490 491

- op : sync_batch_norm
  args : (Tensor x, Tensor scale, Tensor bias, Tensor mean, Tensor variance, float momentum, float epsilon, str data_layout, bool is_test, bool use_global_stats, bool trainable_statistics, bool fuse_with_relu)
  output : Tensor(out), Tensor(mean_out), Tensor(variance_out), Tensor(saved_mean), Tensor(saved_variance), Tensor(reserve_space)
  infer_meta :
    func : BatchNormInferMeta
  kernel :
    func : sync_batch_norm_coo{sparse_coo, dense, dense, dense, dense -> sparse_coo, dense, dense, dense, dense, dense}
    data_type : x
  backward : sync_batch_norm_grad