sparse_ops.yaml 13.8 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
- op : batch_norm_
91
  args : (Tensor x, Tensor mean, Tensor variance, Tensor scale, Tensor bias, bool is_test, float momentum, float epsilon, str data_layout, bool use_global_stats, bool trainable_statistics)
92 93 94 95 96 97
  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
98
  inplace : (mean -> mean_out), (variance -> variance_out)
99 100
  backward : batch_norm_grad

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

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

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

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

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

158 159 160 161 162 163 164 165 166 167 168
- op : isnan
  args : (Tensor x)
  output : Tensor(out)
  infer_meta :
    func : IsfiniteInferMeta
    param: [x]
  kernel :
    func : isnan_coo{sparse_coo -> sparse_coo},
      isnan_csr{sparse_csr -> sparse_csr}
    layout : x

169
- op : leaky_relu
170 171
  args : (Tensor x, float alpha)
  output : Tensor(out)
Z
zhangkaihuo 已提交
172 173 174
  infer_meta :
    func : UnchangedInferMeta
    param : [x]
175 176 177 178 179 180
  kernel :
    func : leaky_relu_coo{sparse_coo -> sparse_coo},
           leaky_relu_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : leaky_relu_grad

181
- op : log1p
182 183
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
184 185
  infer_meta :
    func : UnchangedInferMeta
186 187 188 189 190 191
  kernel :
    func : log1p_coo{sparse_coo -> sparse_coo},
           log1p_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : log1p_grad

192
- op : multiply
193 194
  args : (Tensor x, Tensor y)
  output : Tensor(out)
Z
zhangkaihuo 已提交
195 196
  infer_meta :
    func : ElementwiseInferMeta
197
  kernel :
198 199
    func : multiply_coo_coo{sparse_coo, sparse_coo -> sparse_coo},
           multiply_csr_csr{sparse_csr, sparse_csr -> sparse_csr}
200 201 202
    layout : x
  backward : multiply_grad

203
- op : pow
204 205
  args : (Tensor x, float factor)
  output : Tensor(out)
Z
zhangkaihuo 已提交
206 207 208
  infer_meta :
    func : UnchangedInferMeta
    param : [x]
209 210 211 212 213 214
  kernel :
    func : pow_coo{sparse_coo -> sparse_coo},
           pow_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : pow_grad

215
- op : relu
216
  args : (Tensor x)
217
  output : Tensor(out)
Z
zhangkaihuo 已提交
218 219
  infer_meta :
    func : UnchangedInferMeta
220
  kernel :
221 222
    func : relu_coo{sparse_coo -> sparse_coo},
           relu_csr{sparse_csr -> sparse_csr}
223
    layout : x
224
  backward : relu_grad
225

226
- op : relu6
227
  args : (Tensor x)
228
  output : Tensor(out)
Z
zhangkaihuo 已提交
229 230 231
  infer_meta :
    func : UnchangedInferMeta
    param : [x]
232 233 234 235 236 237
  kernel :
    func : relu6_coo{sparse_coo -> sparse_coo},
           relu6_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : relu6_grad

238 239 240 241 242 243 244 245 246 247 248
- op : reshape
  args : (Tensor x,  IntArray shape)
  output : Tensor(out)
  infer_meta :
    func : ReshapeInferMeta
  kernel :
    func : reshape_coo{sparse_coo -> sparse_coo},
           reshape_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : reshape_grad

249
- op : scale
250 251
  args : (Tensor x, float scale, float bias, bool bias_after_scale)
  output : Tensor(out)
Z
zhangkaihuo 已提交
252 253 254
  infer_meta :
    func : UnchangedInferMeta
    param : [x]
255 256 257 258 259
  kernel :
    func : scale_coo{sparse_coo -> sparse_coo},
           scale_csr{sparse_csr -> sparse_csr}
  backward : scale_grad

260
- op : sin
261
  args : (Tensor x)
262
  output : Tensor(out)
Z
zhangkaihuo 已提交
263 264
  infer_meta :
    func : UnchangedInferMeta
265
  kernel :
266 267
    func : sin_coo{sparse_coo -> sparse_coo},
           sin_csr{sparse_csr -> sparse_csr}
268
    layout : x
269
  backward : sin_grad
270

271
- op : sinh
272 273
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
274 275
  infer_meta :
    func : UnchangedInferMeta
276 277 278 279 280 281
  kernel :
    func : sinh_coo{sparse_coo -> sparse_coo},
           sinh_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : sinh_grad

282
- op : softmax
283 284
  args : (Tensor x, int axis=-1)
  output : Tensor(out)
Z
zhangkaihuo 已提交
285 286 287
  infer_meta :
    func : UnchangedInferMeta
    param : [x]
288
  kernel :
289 290
    func : softmax_coo{sparse_coo -> sparse_coo},
           softmax_csr{sparse_csr -> sparse_csr}
291 292 293
    layout : x
  backward : softmax_grad

294
- op : sparse_coo_tensor
295
  args : (Tensor values, Tensor indices, int64_t[] shape={})
296
  output : Tensor(out)
Z
zhangkaihuo 已提交
297 298
  infer_meta :
    func : sparse::SparseCooTensorInferMeta
299 300 301 302 303 304
  kernel :
    func : sparse_coo_tensor{dense, dense -> sparse_coo}
    layout : values
    data_type : values
  backward : sparse_coo_tensor_grad

305
- op : sqrt
306
  args : (Tensor x)
307
  output : Tensor(out)
Z
zhangkaihuo 已提交
308 309
  infer_meta :
    func : UnchangedInferMeta
310
  kernel :
311 312
    func : sqrt_coo{sparse_coo -> sparse_coo},
           sqrt_csr{sparse_csr -> sparse_csr}
313
    layout : x
314
  backward : sqrt_grad
315

316
- op : square
317 318
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
319 320
  infer_meta :
    func : UnchangedInferMeta
321 322 323 324 325 326
  kernel :
    func : square_coo{sparse_coo -> sparse_coo},
           square_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : square_grad

327
- op : subtract
328 329
  args : (Tensor x, Tensor y)
  output : Tensor(out)
Z
zhangkaihuo 已提交
330 331
  infer_meta :
    func : ElementwiseInferMeta
332
  kernel :
333 334
    func : subtract_coo_coo{sparse_coo, sparse_coo -> sparse_coo},
           subtract_csr_csr{sparse_csr, sparse_csr -> sparse_csr}
335 336 337
    layout : x
  backward : subtract_grad

338 339 340 341 342 343 344 345 346 347 348
- op : sum
  args : (Tensor x, IntArray axis={}, DataType dtype=DataType::UNDEFINED, bool keepdim=false)
  output : Tensor(out)
  infer_meta :
    func : SumInferMeta
  kernel :
    func : sum_coo{sparse_coo -> sparse_coo},
           sum_csr{sparse_csr -> sparse_csr}
    data_type : x
  backward : sum_grad

349
- op : sync_batch_norm_
350
  args : (Tensor x, Tensor mean, Tensor variance, Tensor scale, Tensor bias, bool is_test, float momentum, float epsilon, str data_layout, bool use_global_stats, bool trainable_statistics)
351 352 353 354 355 356 357 358 359
  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
  inplace : (mean -> mean_out), (variance -> variance_out)

360
- op : tan
361 362
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
363 364
  infer_meta :
    func : UnchangedInferMeta
365 366 367 368 369 370
  kernel :
    func : tan_coo{sparse_coo -> sparse_coo},
           tan_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : tan_grad

371
- op : tanh
372
  args : (Tensor x)
373
  output : Tensor(out)
Z
zhangkaihuo 已提交
374 375
  infer_meta :
    func : UnchangedInferMeta
376
  kernel :
377 378
    func : tanh_coo{sparse_coo -> sparse_coo},
           tanh_csr{sparse_csr -> sparse_csr}
379
    layout : x
380
  backward : tanh_grad
381

382
- op : to_dense
383
  args : (Tensor x)
384
  output : Tensor(out)
Z
zhangkaihuo 已提交
385 386
  infer_meta :
    func : UnchangedInferMeta
387 388 389 390
  kernel :
    func : coo_to_dense {sparse_coo -> dense},
           csr_to_dense {sparse_csr -> dense}
  backward : to_dense_grad
391

392
- op : to_sparse_coo
393
  args : (Tensor x, int64_t sparse_dim)
394
  output : Tensor(out)
Z
zhangkaihuo 已提交
395 396 397
  infer_meta :
    func : UnchangedInferMeta
    param : [x]
398 399 400 401
  kernel :
    func : dense_to_coo { dense -> sparse_coo },
           csr_to_coo { sparse_csr -> sparse_coo}
  backward : to_sparse_coo_grad
402

403
- op : to_sparse_csr
404
  args : (Tensor x)
405
  output : Tensor(out)
Z
zhangkaihuo 已提交
406 407
  infer_meta :
    func : UnchangedInferMeta
408 409 410
  kernel :
    func : dense_to_csr {dense -> sparse_csr},
           coo_to_csr {sparse_coo -> sparse_csr}
Z
zhangkaihuo 已提交
411

412 413 414 415 416 417 418 419 420 421 422 423
- 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

424
- op : values
425 426
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
427 428
  infer_meta :
    func : sparse::ValuesInferMeta
429
  kernel :
430 431
    func : values_coo{sparse_coo -> dense},
           values_csr{sparse_csr -> dense}
432 433 434
    layout : x
  backward : values_grad

435
- op: addmm
436
  args : (Tensor input, Tensor x, Tensor y, float beta=1.0, float alpha=1.0)
437
  output : Tensor(out)
Z
zhangkaihuo 已提交
438
  infer_meta :
Z
zhangkaihuo 已提交
439 440
    func : UnchangedInferMeta
    param : [input]
441 442 443 444 445 446 447 448
  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

449
- op: coalesce
Z
zhangkaihuo 已提交
450 451
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
452 453
  infer_meta :
    func : UnchangedInferMeta
Z
zhangkaihuo 已提交
454
  kernel :
Z
zhangkaihuo 已提交
455
    func: coalesce_coo{sparse_coo -> sparse_coo}
Z
zhangkaihuo 已提交
456 457
    layout : x

458
- op: full_like
459 460
  args : (Tensor x, Scalar value, DataType dtype=DataType::UNDEFINED)
  output : Tensor(out)
Z
zhangkaihuo 已提交
461 462 463
  infer_meta :
    func : CreateLikeInferMeta
    param : [x, dtype]
464
  kernel :
Z
zhangkaihuo 已提交
465 466
    func : full_like_coo{sparse_coo -> sparse_coo},
           full_like_csr{sparse_csr -> sparse_csr}
467 468 469
    layout : x
    data_type : dtype

470
- op: fused_attention
471 472
  args : (Tensor query, Tensor key, Tensor value, Tensor sparse_mask, Tensor key_padding_mask, Tensor attn_mask)
  output : Tensor(out), Tensor(softmax)
Z
zhangkaihuo 已提交
473 474
  infer_meta :
    func : sparse::FusedAttentionInferMeta
475 476 477
  kernel :
    func : fused_attention_csr{dense, dense, dense, sparse_csr, dense, dense -> dense, sparse_csr}
    layout : sparse_mask
478 479
    data_type: query
  optional : key_padding_mask, attn_mask
480 481 482
  intermediate : softmax
  backward: fused_attention_grad

483
- op: masked_matmul
484 485
  args : (Tensor x, Tensor y, Tensor mask)
  output : Tensor(out)
Z
zhangkaihuo 已提交
486 487 488
  infer_meta :
    func : MatmulInferMeta
    param : [x, y, false, false]
489
  kernel :
490
    func : masked_matmul_csr{dense, dense, sparse_csr -> sparse_csr}
491 492 493
    layout : x
  backward: masked_matmul_grad

494
- op: matmul
495 496
  args : (Tensor x, Tensor y)
  output : Tensor(out)
Z
zhangkaihuo 已提交
497 498 499
  infer_meta :
    func : MatmulInferMeta
    param: [x, y, false, false]
500
  kernel :
501 502 503 504
    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}
505 506 507
    layout : x
  backward: matmul_grad

508
- op: maxpool
Z
zhangkaihuo 已提交
509
  args : (Tensor x, int[] kernel_sizes, int[] paddings, int[] dilations, int[] strides)
510
  output : Tensor(out), Tensor(rulebook), Tensor(counter)
Z
zhangkaihuo 已提交
511 512
  infer_meta :
    func : sparse::Pool3dInferMeta
Z
zhangkaihuo 已提交
513
  kernel :
514
    func : maxpool_coo{sparse_coo -> sparse_coo, dense, dense}
Z
zhangkaihuo 已提交
515
    layout : x
516
  intermediate : rulebook, counter
517
  backward : maxpool_grad
518

519
- op: mv
520 521
  args : (Tensor x, Tensor vec)
  output : Tensor(out)
Z
zhangkaihuo 已提交
522 523
  infer_meta :
    func : MvInferMeta
524 525 526 527 528
  kernel :
    func : mv_coo{sparse_coo, dense -> dense},
           mv_csr{sparse_csr, dense -> dense}
    layout : x
  backward: mv_grad