sparse_ops.yaml 9.3 KB
Newer Older
1
- op : abs
2 3 4 5 6 7 8 9
  args : (Tensor x)
  output : Tensor(out)
  kernel :
    func : abs_coo{sparse_coo -> sparse_coo},
           abs_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : abs_grad

10
- op : acos
11 12 13 14 15 16 17 18
  args : (Tensor x)
  output : Tensor(out)
  kernel :
    func : acos_coo{sparse_coo -> sparse_coo},
           acos_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : acos_grad

19
- op : acosh
20 21 22 23 24 25 26 27
  args : (Tensor x)
  output : Tensor(out)
  kernel :
    func : acosh_coo{sparse_coo -> sparse_coo},
           acosh_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : acosh_grad

28
- op : add
29 30 31
  args : (Tensor x, Tensor y)
  output : Tensor(out)
  kernel :
32 33
    func : add_coo_coo{sparse_coo, sparse_coo -> sparse_coo},
           add_csr_csr{sparse_csr, sparse_csr -> sparse_csr}
34 35 36
    layout : x
  backward : add_grad

37
- op : asin
38 39 40 41 42 43 44 45
  args : (Tensor x)
  output : Tensor(out)
  kernel :
    func : asin_coo{sparse_coo -> sparse_coo},
           asin_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : asin_grad

46
- op : asinh
47 48 49 50 51 52 53 54
  args : (Tensor x)
  output : Tensor(out)
  kernel :
    func : asinh_coo{sparse_coo -> sparse_coo},
           asinh_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : asinh_grad

55
- op : atan
56 57 58 59 60 61 62 63
  args : (Tensor x)
  output : Tensor(out)
  kernel :
    func : atan_coo{sparse_coo -> sparse_coo},
           atan_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : atan_grad

64
- op : atanh
65 66 67 68 69 70 71 72
  args : (Tensor x)
  output : Tensor(out)
  kernel :
    func : atanh_coo{sparse_coo -> sparse_coo},
           atanh_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : atanh_grad

73
- op : cast
74 75 76 77 78 79 80 81 82
  args : (Tensor x, DataType index_dtype=DataType::UNDEFINED, DataType value_dtype=DataType::UNDEFINED)
  output : Tensor(out)
  kernel :
    func : cast_coo{sparse_coo -> sparse_coo},
           cast_csr{sparse_csr -> sparse_csr}
    layout : x
    data_type : x
  backward : cast_grad

83
- op : conv3d
84
  args : (Tensor x, Tensor kernel, int[] paddings, int[] dilations, int[] strides, int groups, bool subm, str key)
85
  output : Tensor(out), Tensor(rulebook), Tensor(counter)
86
  kernel :
87
    func : conv3d_coo{sparse_coo, dense -> sparse_coo, dense, dense}
88
    layout : x
89 90
  intermediate: rulebook, counter
  backward : conv3d_coo_grad
91

92
- op : divide
93 94 95
  args : (Tensor x, Tensor y)
  output : Tensor(out)
  kernel :
96 97
    func : divide_coo_coo{sparse_coo, sparse_coo -> sparse_coo},
           divide_csr_csr{sparse_csr, sparse_csr -> sparse_csr}
98 99 100
    layout : x
  backward : divide_grad

101
- op : divide_scalar
102 103 104 105 106 107 108
  args : (Tensor x, float scalar)
  output : Tensor(out)
  kernel :
    func : divide_coo_scalar{sparse_coo -> sparse_coo},
           divide_csr_scalar{sparse_csr -> sparse_csr}
  backward : divide_scalar_grad

109
- op : expm1
110 111 112 113 114 115 116 117
  args : (Tensor x)
  output : Tensor(out)
  kernel :
    func : expm1_coo{sparse_coo -> sparse_coo},
           expm1_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : expm1_grad

118
- op : leaky_relu
119 120 121 122 123 124 125 126
  args : (Tensor x, float alpha)
  output : Tensor(out)
  kernel :
    func : leaky_relu_coo{sparse_coo -> sparse_coo},
           leaky_relu_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : leaky_relu_grad

127
- op : log1p
128 129 130 131 132 133 134 135
  args : (Tensor x)
  output : Tensor(out)
  kernel :
    func : log1p_coo{sparse_coo -> sparse_coo},
           log1p_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : log1p_grad

136
- op : multiply
137 138 139
  args : (Tensor x, Tensor y)
  output : Tensor(out)
  kernel :
140 141
    func : multiply_coo_coo{sparse_coo, sparse_coo -> sparse_coo},
           multiply_csr_csr{sparse_csr, sparse_csr -> sparse_csr}
142 143 144
    layout : x
  backward : multiply_grad

145
- op : pow
146 147 148 149 150 151 152 153
  args : (Tensor x, float factor)
  output : Tensor(out)
  kernel :
    func : pow_coo{sparse_coo -> sparse_coo},
           pow_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : pow_grad

154
- op : relu
155
  args : (Tensor x)
156
  output : Tensor(out)
157
  kernel :
158 159
    func : relu_coo{sparse_coo -> sparse_coo},
           relu_csr{sparse_csr -> sparse_csr}
160
    layout : x
161
  backward : relu_grad
162

163
- op : relu6
164 165 166 167 168 169 170 171
  args : (Tensor x, float threshold)
  output : Tensor(out)
  kernel :
    func : relu6_coo{sparse_coo -> sparse_coo},
           relu6_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : relu6_grad

172
- op : scale
173 174 175 176 177 178 179
  args : (Tensor x, float scale, float bias, bool bias_after_scale)
  output : Tensor(out)
  kernel :
    func : scale_coo{sparse_coo -> sparse_coo},
           scale_csr{sparse_csr -> sparse_csr}
  backward : scale_grad

180
- op : sin
181
  args : (Tensor x)
182
  output : Tensor(out)
183
  kernel :
184 185
    func : sin_coo{sparse_coo -> sparse_coo},
           sin_csr{sparse_csr -> sparse_csr}
186
    layout : x
187
  backward : sin_grad
188

189
- op : sinh
190 191 192 193 194 195 196 197
  args : (Tensor x)
  output : Tensor(out)
  kernel :
    func : sinh_coo{sparse_coo -> sparse_coo},
           sinh_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : sinh_grad

198
- op : softmax
199 200 201 202 203 204 205
  args : (Tensor x, int axis=-1)
  output : Tensor(out)
  kernel :
    func : softmax_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : softmax_grad

206
- op : sparse_coo_tensor
207 208 209 210 211 212 213 214
  args : (Tensor values, Tensor indices, IntArray dense_shape)
  output : Tensor(out)
  kernel :
    func : sparse_coo_tensor{dense, dense -> sparse_coo}
    layout : values
    data_type : values
  backward : sparse_coo_tensor_grad

215
- op : sqrt
216
  args : (Tensor x)
217
  output : Tensor(out)
218
  kernel :
219 220
    func : sqrt_coo{sparse_coo -> sparse_coo},
           sqrt_csr{sparse_csr -> sparse_csr}
221
    layout : x
222
  backward : sqrt_grad
223

224
- op : square
225 226 227 228 229 230 231 232
  args : (Tensor x)
  output : Tensor(out)
  kernel :
    func : square_coo{sparse_coo -> sparse_coo},
           square_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : square_grad

233
- op : subtract
234 235 236
  args : (Tensor x, Tensor y)
  output : Tensor(out)
  kernel :
237 238
    func : subtract_coo_coo{sparse_coo, sparse_coo -> sparse_coo},
           subtract_csr_csr{sparse_csr, sparse_csr -> sparse_csr}
239 240 241
    layout : x
  backward : subtract_grad

242
- op : tan
243 244 245 246 247 248 249 250
  args : (Tensor x)
  output : Tensor(out)
  kernel :
    func : tan_coo{sparse_coo -> sparse_coo},
           tan_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : tan_grad

251
- op : tanh
252
  args : (Tensor x)
253
  output : Tensor(out)
254
  kernel :
255 256
    func : tanh_coo{sparse_coo -> sparse_coo},
           tanh_csr{sparse_csr -> sparse_csr}
257
    layout : x
258
  backward : tanh_grad
259

260
- op : to_dense
261
  args : (Tensor x)
262
  output : Tensor(out)
263 264 265 266
  kernel :
    func : coo_to_dense {sparse_coo -> dense},
           csr_to_dense {sparse_csr -> dense}
  backward : to_dense_grad
267

268
- op : to_sparse_coo
269
  args : (Tensor x, int64_t sparse_dim)
270
  output : Tensor(out)
271 272 273 274
  kernel :
    func : dense_to_coo { dense -> sparse_coo },
           csr_to_coo { sparse_csr -> sparse_coo}
  backward : to_sparse_coo_grad
275

276
- op : to_sparse_csr
277
  args : (Tensor x)
278
  output : Tensor(out)
279 280 281
  kernel :
    func : dense_to_csr {dense -> sparse_csr},
           coo_to_csr {sparse_coo -> sparse_csr}
Z
zhangkaihuo 已提交
282

283
- op : values
284 285 286
  args : (Tensor x)
  output : Tensor(out)
  kernel :
287 288
    func : values_coo{sparse_coo -> dense},
           values_csr{sparse_csr -> dense}
289 290 291
    layout : x
  backward : values_grad

292
- op: addmm
293 294 295 296 297 298 299 300 301 302
  args : (Tensor input, Tensor x, Tensor y, float alpha=1.0, float beta=1.0)
  output : Tensor(out)
  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

303
- op: coalesce
Z
zhangkaihuo 已提交
304 305 306 307 308 309
  args : (Tensor x)
  output : Tensor(out)
  kernel :
    func: coalesce{sparse_coo -> sparse_coo}
    layout : x

310
- op: full_like
311 312 313 314 315 316 317 318
  args : (Tensor x, Scalar value, DataType dtype=DataType::UNDEFINED)
  output : Tensor(out)
  kernel :
    func : coo_full_like{sparse_coo -> sparse_coo},
           csr_full_like{sparse_csr -> sparse_csr}
    layout : x
    data_type : dtype

319
- op: fused_attention
320 321 322 323 324
  args : (Tensor query, Tensor key, Tensor value, Tensor sparse_mask, Tensor key_padding_mask, Tensor attn_mask)
  output : Tensor(out), Tensor(softmax)
  kernel :
    func : fused_attention_csr{dense, dense, dense, sparse_csr, dense, dense -> dense, sparse_csr}
    layout : sparse_mask
325 326
    data_type: query
  optional : key_padding_mask, attn_mask
327 328 329
  intermediate : softmax
  backward: fused_attention_grad

330
- op: masked_matmul
331 332 333
  args : (Tensor x, Tensor y, Tensor mask)
  output : Tensor(out)
  kernel :
334
    func : masked_matmul_csr{dense, dense, sparse_csr -> sparse_csr}
335 336 337
    layout : x
  backward: masked_matmul_grad

338
- op: matmul
339 340 341
  args : (Tensor x, Tensor y)
  output : Tensor(out)
  kernel :
342 343 344 345
    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}
346 347 348
    layout : x
  backward: matmul_grad

349
- op: maxpool
Z
zhangkaihuo 已提交
350
  args : (Tensor x, int[] kernel_sizes, int[] paddings, int[] dilations, int[] strides)
351
  output : Tensor(out), Tensor(rulebook), Tensor(counter)
Z
zhangkaihuo 已提交
352
  kernel :
353
    func : maxpool_coo{sparse_coo -> sparse_coo, dense, dense}
Z
zhangkaihuo 已提交
354
    layout : x
355
  intermediate : rulebook, counter
356
  backward : maxpool_grad
357

358
- op: mv
359 360 361 362 363 364 365
  args : (Tensor x, Tensor vec)
  output : Tensor(out)
  kernel :
    func : mv_coo{sparse_coo, dense -> dense},
           mv_csr{sparse_csr, dense -> dense}
    layout : x
  backward: mv_grad