Skip to content

PyTorch DirectML Operator Roadmap

Xiang Zhang edited this page Apr 27, 2023 · 6 revisions

The table below lists PyTorch operators that either have a GPU kernel implemented or a default backend implementation that has been verified to work in our tests.

Please note that this is not a comprehensive list of all PyTorch operators, and many operators have a default implementation that might not be listed here and still work. If you would require support for an operator that is not on this list, please file an issue.

op_name supported_data_types
0 aten::abs [torch.float16, torch.float32, torch.float64, torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
1 aten::abs_ [torch.float16, torch.float32, torch.float64, torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
2 aten::acos [torch.float16, torch.float32, torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
3 aten::acos_ [torch.float16, torch.float32]
4 aten::acosh [torch.float16, torch.float32, torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
5 aten::acosh_ [torch.float16, torch.float32]
6 aten::_adaptive_avg_pool2d [torch.float16, torch.float32]
7 aten::adaptive_avg_pool2d [torch.float16, torch.float32]
8 aten::_adaptive_avg_pool2d_backward [torch.float16, torch.float32]
9 aten::add [torch.float16, torch.float32, torch.float64, torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
10 aten::add_ [torch.float16, torch.float32, torch.float64, torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
11 aten::addcdiv [torch.float16, torch.float32, torch.float64]
12 aten::addcdiv_ [torch.float16, torch.float32, torch.float64]
13 aten::addcmul [torch.float16, torch.float32, torch.float64, torch.int32, torch.int64, torch.int16, torch.int8]
14 aten::addcmul_ [torch.float16, torch.float32, torch.float64, torch.int32, torch.int64, torch.int16, torch.int8]
15 aten::addmm [torch.float16, torch.float32, torch.float64, torch.int32, torch.int64, torch.int16, torch.int8]
16 aten::alias [torch.float16, torch.float32, torch.float64, torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
17 aten::all [torch.float16, torch.float32, torch.float64, torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
18 aten::__and__ [torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
19 aten::any [torch.float16, torch.float32, torch.float64, torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
20 aten::arange [torch.float16, torch.float32, torch.float64, torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
21 aten::argmax [torch.float16, torch.float32, torch.float64, torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
22 aten::argmin [torch.float16, torch.float32, torch.float64, torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
23 aten::asin [torch.float16, torch.float32, torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
24 aten::asin_ [torch.float16, torch.float32]
25 aten::asinh [torch.float16, torch.float32, torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
26 aten::asinh_ [torch.float16, torch.float32]
27 aten::as_strided [torch.float16, torch.float32, torch.float64, torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
28 aten::as_strided_ [torch.float16, torch.float32, torch.float64, torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
29 aten::atan [torch.float16, torch.float32, torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
30 aten::atan_ [torch.float16, torch.float32]
31 aten::atan2 [torch.float16, torch.float32, torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
32 aten::atan2_ [torch.float16, torch.float32]
33 aten::atanh [torch.float16, torch.float32, torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
34 aten::atanh_ [torch.float16, torch.float32]
35 aten::avg_pool2d [torch.float16, torch.float32]
36 aten::avg_pool2d_backward [torch.float16, torch.float32]
37 aten::baddbmm [torch.float16, torch.float32, torch.float64, torch.int32, torch.int64, torch.int16, torch.int8]
38 aten::batch_norm [torch.float32]
39 aten::_batch_norm_impl_index [torch.float32]
40 aten::bernoulli_ [torch.float32, torch.float64, torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
41 aten::bernoulli [torch.float32, torch.float64, torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
42 aten::binary_cross_entropy_with_logits [torch.float32]
43 aten::bitwise_and [torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
44 aten::bitwise_and_ [torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]
45 aten::bitwise_not [torch.int32, torch.int64, torch.int16, torch.int8, torch.bool]