sparse_ops.yaml 11.7 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 : cast
91 92
  args : (Tensor x, DataType index_dtype=DataType::UNDEFINED, DataType value_dtype=DataType::UNDEFINED)
  output : Tensor(out)
Z
zhangkaihuo 已提交
93 94 95
  infer_meta :
    func : CastInferMeta
    param: [x, value_dtype]
96 97 98 99 100 101 102
  kernel :
    func : cast_coo{sparse_coo -> sparse_coo},
           cast_csr{sparse_csr -> sparse_csr}
    layout : x
    data_type : x
  backward : cast_grad

103
- op : conv3d
104
  args : (Tensor x, Tensor kernel, int[] paddings, int[] dilations, int[] strides, int groups, bool subm, str key)
105
  output : Tensor(out), Tensor(rulebook), Tensor(counter)
Z
zhangkaihuo 已提交
106 107
  infer_meta :
    func : sparse::Conv3dInferMeta
108
  kernel :
109
    func : conv3d_coo{sparse_coo, dense -> sparse_coo, dense, dense}
110
    layout : x
111 112
  intermediate: rulebook, counter
  backward : conv3d_coo_grad
113

114
- op : divide
115 116
  args : (Tensor x, Tensor y)
  output : Tensor(out)
Z
zhangkaihuo 已提交
117
  infer_meta :
Z
zhangkaihuo 已提交
118
    func : ElementwiseInferMeta
119
  kernel :
120 121
    func : divide_coo_coo{sparse_coo, sparse_coo -> sparse_coo},
           divide_csr_csr{sparse_csr, sparse_csr -> sparse_csr}
122 123 124
    layout : x
  backward : divide_grad

125
- op : divide_scalar
126 127
  args : (Tensor x, float scalar)
  output : Tensor(out)
Z
zhangkaihuo 已提交
128 129 130
  infer_meta :
    func : UnchangedInferMeta
    param : [x]
131 132 133 134 135
  kernel :
    func : divide_coo_scalar{sparse_coo -> sparse_coo},
           divide_csr_scalar{sparse_csr -> sparse_csr}
  backward : divide_scalar_grad

136
- op : expm1
137 138
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
139 140
  infer_meta :
    func : UnchangedInferMeta
141 142 143 144 145 146
  kernel :
    func : expm1_coo{sparse_coo -> sparse_coo},
           expm1_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : expm1_grad

147
- op : leaky_relu
148 149
  args : (Tensor x, float alpha)
  output : Tensor(out)
Z
zhangkaihuo 已提交
150 151 152
  infer_meta :
    func : UnchangedInferMeta
    param : [x]
153 154 155 156 157 158
  kernel :
    func : leaky_relu_coo{sparse_coo -> sparse_coo},
           leaky_relu_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : leaky_relu_grad

159
- op : log1p
160 161
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
162 163
  infer_meta :
    func : UnchangedInferMeta
164 165 166 167 168 169
  kernel :
    func : log1p_coo{sparse_coo -> sparse_coo},
           log1p_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : log1p_grad

170
- op : multiply
171 172
  args : (Tensor x, Tensor y)
  output : Tensor(out)
Z
zhangkaihuo 已提交
173 174
  infer_meta :
    func : ElementwiseInferMeta
175
  kernel :
176 177
    func : multiply_coo_coo{sparse_coo, sparse_coo -> sparse_coo},
           multiply_csr_csr{sparse_csr, sparse_csr -> sparse_csr}
178 179 180
    layout : x
  backward : multiply_grad

181
- op : pow
182 183
  args : (Tensor x, float factor)
  output : Tensor(out)
Z
zhangkaihuo 已提交
184 185 186
  infer_meta :
    func : UnchangedInferMeta
    param : [x]
187 188 189 190 191 192
  kernel :
    func : pow_coo{sparse_coo -> sparse_coo},
           pow_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : pow_grad

193
- op : relu
194
  args : (Tensor x)
195
  output : Tensor(out)
Z
zhangkaihuo 已提交
196 197
  infer_meta :
    func : UnchangedInferMeta
198
  kernel :
199 200
    func : relu_coo{sparse_coo -> sparse_coo},
           relu_csr{sparse_csr -> sparse_csr}
201
    layout : x
202
  backward : relu_grad
203

204
- op : relu6
205 206
  args : (Tensor x, float threshold)
  output : Tensor(out)
Z
zhangkaihuo 已提交
207 208 209
  infer_meta :
    func : UnchangedInferMeta
    param : [x]
210 211 212 213 214 215
  kernel :
    func : relu6_coo{sparse_coo -> sparse_coo},
           relu6_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : relu6_grad

216
- op : scale
217 218
  args : (Tensor x, float scale, float bias, bool bias_after_scale)
  output : Tensor(out)
Z
zhangkaihuo 已提交
219 220 221
  infer_meta :
    func : UnchangedInferMeta
    param : [x]
222 223 224 225 226
  kernel :
    func : scale_coo{sparse_coo -> sparse_coo},
           scale_csr{sparse_csr -> sparse_csr}
  backward : scale_grad

227
- op : sin
228
  args : (Tensor x)
229
  output : Tensor(out)
Z
zhangkaihuo 已提交
230 231
  infer_meta :
    func : UnchangedInferMeta
232
  kernel :
233 234
    func : sin_coo{sparse_coo -> sparse_coo},
           sin_csr{sparse_csr -> sparse_csr}
235
    layout : x
236
  backward : sin_grad
237

238
- op : sinh
239 240
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
241 242
  infer_meta :
    func : UnchangedInferMeta
243 244 245 246 247 248
  kernel :
    func : sinh_coo{sparse_coo -> sparse_coo},
           sinh_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : sinh_grad

249
- op : softmax
250 251
  args : (Tensor x, int axis=-1)
  output : Tensor(out)
Z
zhangkaihuo 已提交
252 253 254
  infer_meta :
    func : UnchangedInferMeta
    param : [x]
255 256 257 258 259
  kernel :
    func : softmax_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : softmax_grad

260
- op : sparse_coo_tensor
261 262
  args : (Tensor values, Tensor indices, IntArray dense_shape)
  output : Tensor(out)
Z
zhangkaihuo 已提交
263 264
  infer_meta :
    func : sparse::SparseCooTensorInferMeta
265 266 267 268 269 270
  kernel :
    func : sparse_coo_tensor{dense, dense -> sparse_coo}
    layout : values
    data_type : values
  backward : sparse_coo_tensor_grad

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

282
- op : square
283 284
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
285 286
  infer_meta :
    func : UnchangedInferMeta
287 288 289 290 291 292
  kernel :
    func : square_coo{sparse_coo -> sparse_coo},
           square_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : square_grad

293
- op : subtract
294 295
  args : (Tensor x, Tensor y)
  output : Tensor(out)
Z
zhangkaihuo 已提交
296 297
  infer_meta :
    func : ElementwiseInferMeta
298
  kernel :
299 300
    func : subtract_coo_coo{sparse_coo, sparse_coo -> sparse_coo},
           subtract_csr_csr{sparse_csr, sparse_csr -> sparse_csr}
301 302 303
    layout : x
  backward : subtract_grad

304
- op : tan
305 306
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
307 308
  infer_meta :
    func : UnchangedInferMeta
309 310 311 312 313 314
  kernel :
    func : tan_coo{sparse_coo -> sparse_coo},
           tan_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : tan_grad

315
- op : tanh
316
  args : (Tensor x)
317
  output : Tensor(out)
Z
zhangkaihuo 已提交
318 319
  infer_meta :
    func : UnchangedInferMeta
320
  kernel :
321 322
    func : tanh_coo{sparse_coo -> sparse_coo},
           tanh_csr{sparse_csr -> sparse_csr}
323
    layout : x
324
  backward : tanh_grad
325

326
- op : to_dense
327
  args : (Tensor x)
328
  output : Tensor(out)
Z
zhangkaihuo 已提交
329 330
  infer_meta :
    func : UnchangedInferMeta
331 332 333 334
  kernel :
    func : coo_to_dense {sparse_coo -> dense},
           csr_to_dense {sparse_csr -> dense}
  backward : to_dense_grad
335

336
- op : to_sparse_coo
337
  args : (Tensor x, int64_t sparse_dim)
338
  output : Tensor(out)
Z
zhangkaihuo 已提交
339 340 341
  infer_meta :
    func : UnchangedInferMeta
    param : [x]
342 343 344 345
  kernel :
    func : dense_to_coo { dense -> sparse_coo },
           csr_to_coo { sparse_csr -> sparse_coo}
  backward : to_sparse_coo_grad
346

347
- op : to_sparse_csr
348
  args : (Tensor x)
349
  output : Tensor(out)
Z
zhangkaihuo 已提交
350 351
  infer_meta :
    func : UnchangedInferMeta
352 353 354
  kernel :
    func : dense_to_csr {dense -> sparse_csr},
           coo_to_csr {sparse_coo -> sparse_csr}
Z
zhangkaihuo 已提交
355

356
- op : values
357 358
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
359 360
  infer_meta :
    func : sparse::ValuesInferMeta
361
  kernel :
362 363
    func : values_coo{sparse_coo -> dense},
           values_csr{sparse_csr -> dense}
364 365 366
    layout : x
  backward : values_grad

367
- op: addmm
368 369
  args : (Tensor input, Tensor x, Tensor y, float alpha=1.0, float beta=1.0)
  output : Tensor(out)
Z
zhangkaihuo 已提交
370 371
  infer_meta :
    func : AddmmInferMeta
372 373 374 375 376 377 378 379
  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

380
- op: coalesce
Z
zhangkaihuo 已提交
381 382
  args : (Tensor x)
  output : Tensor(out)
Z
zhangkaihuo 已提交
383 384
  infer_meta :
    func : UnchangedInferMeta
Z
zhangkaihuo 已提交
385 386 387 388
  kernel :
    func: coalesce{sparse_coo -> sparse_coo}
    layout : x

389
- op: full_like
390 391
  args : (Tensor x, Scalar value, DataType dtype=DataType::UNDEFINED)
  output : Tensor(out)
Z
zhangkaihuo 已提交
392 393 394
  infer_meta :
    func : CreateLikeInferMeta
    param : [x, dtype]
395 396 397 398 399 400
  kernel :
    func : coo_full_like{sparse_coo -> sparse_coo},
           csr_full_like{sparse_csr -> sparse_csr}
    layout : x
    data_type : dtype

401
- op: fused_attention
402 403
  args : (Tensor query, Tensor key, Tensor value, Tensor sparse_mask, Tensor key_padding_mask, Tensor attn_mask)
  output : Tensor(out), Tensor(softmax)
Z
zhangkaihuo 已提交
404 405
  infer_meta :
    func : sparse::FusedAttentionInferMeta
406 407 408
  kernel :
    func : fused_attention_csr{dense, dense, dense, sparse_csr, dense, dense -> dense, sparse_csr}
    layout : sparse_mask
409 410
    data_type: query
  optional : key_padding_mask, attn_mask
411 412 413
  intermediate : softmax
  backward: fused_attention_grad

414
- op: masked_matmul
415 416
  args : (Tensor x, Tensor y, Tensor mask)
  output : Tensor(out)
Z
zhangkaihuo 已提交
417 418 419
  infer_meta :
    func : MatmulInferMeta
    param : [x, y, false, false]
420
  kernel :
421
    func : masked_matmul_csr{dense, dense, sparse_csr -> sparse_csr}
422 423 424
    layout : x
  backward: masked_matmul_grad

425
- op: matmul
426 427
  args : (Tensor x, Tensor y)
  output : Tensor(out)
Z
zhangkaihuo 已提交
428 429 430
  infer_meta :
    func : MatmulInferMeta
    param: [x, y, false, false]
431
  kernel :
432 433 434 435
    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}
436 437 438
    layout : x
  backward: matmul_grad

439
- op: maxpool
Z
zhangkaihuo 已提交
440
  args : (Tensor x, int[] kernel_sizes, int[] paddings, int[] dilations, int[] strides)
441
  output : Tensor(out), Tensor(rulebook), Tensor(counter)
Z
zhangkaihuo 已提交
442 443
  infer_meta :
    func : sparse::Pool3dInferMeta
Z
zhangkaihuo 已提交
444
  kernel :
445
    func : maxpool_coo{sparse_coo -> sparse_coo, dense, dense}
Z
zhangkaihuo 已提交
446
    layout : x
447
  intermediate : rulebook, counter
448
  backward : maxpool_grad
449

450
- op: mv
451 452
  args : (Tensor x, Tensor vec)
  output : Tensor(out)
Z
zhangkaihuo 已提交
453 454
  infer_meta :
    func : MvInferMeta
455 456 457 458 459
  kernel :
    func : mv_coo{sparse_coo, dense -> dense},
           mv_csr{sparse_csr, dense -> dense}
    layout : x
  backward: mv_grad
460 461 462 463 464 465 466 467 468 469 470 471

- 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