sparse_ops.yaml 9.3 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
- api : abs
  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

- api : acos
  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

- api : acosh
  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 29 30 31
- api : add
  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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
- api : asin
  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

- api : asinh
  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

- api : atan
  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

- api : atanh
  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

- api : cast
  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

Z
zhangkaihuo 已提交
83
- api : 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 93 94 95
- api : divide
  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 102 103 104 105 106 107 108
- api : divide_scalar
  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 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
- api : expm1
  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

- api : leaky_relu
  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 128 129 130 131 132 133 134 135
- api : log1p
  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 137 138 139
- api : multiply
  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 146 147 148 149 150 151 152 153
- api : pow
  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
- api : 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 164 165 166 167 168 169 170 171
- api : relu6
  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 173 174 175 176 177 178 179
- api : scale
  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
- api : 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 190 191 192 193 194 195 196 197
- api : sinh
  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 199 200 201 202 203 204 205
- api : softmax
  args : (Tensor x, int axis=-1)
  output : Tensor(out)
  kernel :
    func : softmax_csr{sparse_csr -> sparse_csr}
    layout : x
  backward : softmax_grad

206 207 208 209 210 211 212 213 214
- api : sparse_coo_tensor
  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
- api : 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 225 226 227 228 229 230 231 232
- api : square
  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 234 235 236
- api : subtract
  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 243 244 245 246 247 248 249 250
- api : tan
  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
- api : 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
- api : 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
- api : 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
- api : 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 284 285 286
- api : values
  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 293 294 295 296 297 298 299 300 301 302
- api: addmm
  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

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

310 311 312 313 314 315 316 317 318
- api: full_like
  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 320 321 322 323 324
- api: fused_attention
  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 331 332 333
- api: masked_matmul
  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 338 339 340 341
    layout : x
  backward: masked_matmul_grad

- api: matmul
  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

Z
zhangkaihuo 已提交
349 350
- api: maxpool
  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 359 360 361 362 363 364 365

- api: mv
  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