.. _neuron-cc-ops-pytorch: PyTorch Neuron (``torch-neuron``) Supported operators ===================================================== Current operator lists may be generated with these commands inside python: .. code:: python import torch.neuron print(*torch.neuron.get_supported_operations(), sep='\n') .. _pytorch-neuron-release-2130: PyTorch Neuron release [package version 1.*.*.2.9.1.0, SDK 2.13.0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Date: 08/28/2023 Added support for new operators: - ``aten::clamp_min`` - ``aten::clamp_max`` .. _pytorch-neuron-release-2900: PyTorch Neuron release [2.9.0.0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Date: 03/28/2023 Added support for new operators: - ``aten::tensordot`` - ``aten::adaptive_avg_pool1d`` - ``aten::prelu`` - ``aten::reflection_pad2d`` - ``aten::baddbmm`` - ``aten::repeat`` .. _pytorch-neuron-release-2500: PyTorch Neuron release [2.5.0.0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Date: 11/23/2022 Added support for new operators: - ``aten::threshold`` - ``aten::roll`` - ``aten::instance_norm`` - ``aten::amin`` - ``aten::amax`` - ``aten::new_empty`` - ``aten::new_ones`` - ``aten::tril`` - ``aten::triu`` - ``aten::zero_`` - ``aten::all`` - ``aten::broadcast_tensors`` - ``aten::broadcast_to`` - ``aten::logical_and`` - ``aten::logical_not`` - ``aten::logical_or`` - ``aten::logical_xor`` - ``aten::_convolution_mode`` Added **limited** support for new operators: - LSTM Operations. See: :ref:`torch_neuron_lstm_support` - ``aten::lstm`` - ``aten::_pack_padded_sequence`` - ``aten::_pad_packed_sequence`` - ``aten::norm``: Supported when ``p`` argument is one of (``1``, ``2``, ``inf``, ``-inf``, ``'fro'``) .. _pytorch-neuron-release-2200: PyTorch Neuron release [2.2.0.0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Date: 03/25/2022 Added support for new operators: - ``aten::max_pool2d_with_indices``: Fully supported (Was previously supported only when indices were unused). .. _pytorch-neuron-release-2170: PyTorch Neuron release [2.1.7.0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Date: 01/20/2022 Added support for new operators: * ``aten::bucketize`` * ``aten::any`` * ``aten::remainder`` * ``aten::clip`` * ``aten::repeat_interleave`` * ``aten::tensor_split`` * ``aten::split_with_sizes`` * ``aten::isnan`` * ``aten::embedding_renorm_`` * ``aten::dot`` * ``aten::mv`` * ``aten::hardsigmoid`` * ``aten::hardswish`` * ``aten::trunc`` * ``aten::one_hot``: Supported when ``num_classes`` is known at trace time. The dynamic version of this operation when ``num_classes = -1`` is not supported. * ``aten::adaptive_max_pool1d`` * ``aten::adaptive_max_pool2d`` .. _pytorch-neuron-release-205360: PyTorch Neuron Release [2.0.536.0] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - The following are operators with limited support on Neuron. Unlike fully supported operators, these operators are not returned when using :func:`torch_neuron.get_supported_operations`. See each operator description for conditional support: - ``aten::max_pool2d_with_indices`` - Supported when indices outputs are not used by a downstream operation. This allows the operation to be compiled to Neuron when it is equivalent to an ``aten::max_pool2d``. - ``aten::max_pool3d_with_indices`` - Supported when indices outputs are not used by a downstream operation. This allows the operation to be compiled to Neuron when it is equivalent to an ``aten::max_pool3d``. - ``aten::where`` - Supported when used as a conditional selection (3-argument variant). Unsupported when used to generate a dynamic list of indices (1-argument variant). See :func:`torch.where`. .. _pytorch-neuron-release-203180: PyTorch Neuron Release [2.0.318.0] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Added support for new operators: - ``aten::empty_like`` - ``aten::log`` - ``aten::type_as`` - ``aten::movedim`` - ``aten::einsum`` - ``aten::argmax`` - ``aten::min`` - ``aten::argmin`` - ``aten::abs`` - ``aten::cos`` - ``aten::sin`` - ``aten::linear`` - ``aten::pixel_shuffle`` - ``aten::group_norm`` - ``aten::_weight_norm`` .. _pytorch-neuron-release-15210: PyTorch Neuron Release [1.5.21.0] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ No change .. _pytorch-neuron-release-1570: PyTorch Neuron Release [1.5.7.0] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Added support for new operators: - ``aten::erf`` - ``prim::DictConstruct`` .. _pytorch-neuron-release-1410: PyTorch Neuron Release [1.4.1.0] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ No change .. _pytorch-neuron-release-1350: PyTorch Neuron Release [1.3.5.0] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Added support for new operators: - ``aten::numel`` - ``aten::ones_like`` - ``aten::reciprocal`` - ``aten::topk`` .. _pytorch-neuron-release-12160: PyTorch Neuron Release [1.2.16.0] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ No change .. _pytorch-neuron-release-12150: PyTorch Neuron Release [1.2.15.0] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ No change .. _pytorch-neuron-release-1230: PyTorch Neuron Release [1.2.3.0] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Added support for new operators: - ``aten::silu`` - ``aten::zeros_like`` .. _pytorch-neuron-release-1170: PyTorch Neuron Release [1.1.7.0] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Added support for new operators: - ``aten::_shape_as_tensor`` - ``aten::chunk`` - ``aten::empty`` - ``aten::masked_fill`` .. _pytorch-neuron-release-10240450: PyTorch Neuron Release [1.0.24045.0] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Added support for new operators: - ``aten::__and__`` - ``aten::bmm`` - ``aten::clone`` - ``aten::expand_as`` - ``aten::fill_`` - ``aten::floor_divide`` - ``aten::full`` - ``aten::hardtanh`` - ``aten::hardtanh_`` - ``aten::le`` - ``aten::leaky_relu`` - ``aten::lt`` - ``aten::mean`` - ``aten::ne`` - ``aten::softplus`` - ``aten::unbind`` - ``aten::upsample_bilinear2d`` .. _pytorch-neuron-release-10172000: PyTorch Neuron Release [1.0.1720.00] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Added support for new operators: - ``aten::constant_pad_nd`` - ``aten::meshgrid`` .. _pytorch-neuron-release-1015320: PyTorch Neuron Release [1.0.1532.0] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Added support for new operators: - ``aten::ones`` .. _pytorch-neuron-release-1015220: PyTorch Neuron Release [1.0.1522.0] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ No change .. _pytorch-neuron-release-1013860: PyTorch Neuron Release [1.0.1386.0] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Added support for new operators: - ``aten::ceil`` - ``aten::clamp`` - ``aten::eq`` - ``aten::exp`` - ``aten::expand_as`` - ``aten::flip`` - ``aten::full_like`` - ``aten::ge`` - ``aten::gt`` - ``aten::log2`` - ``aten::log_softmax`` - ``aten::max`` - ``aten::neg`` - ``aten::relu`` - ``aten::rsqrt`` - ``aten::scalarImplicit`` - ``aten::sqrt`` - ``aten::squeeze`` - ``aten::stack`` - ``aten::sub`` - ``aten::sum`` - ``aten::true_divide`` - ``aten::upsample_nearest2d`` - ``prim::Constant`` - ``prim::GetAttr`` - ``prim::ImplicitTensorToNum`` - ``prim::ListConstruct`` - ``prim::ListUnpack`` - ``prim::NumToTensor`` - ``prim::TupleConstruct`` - ``prim::TupleUnpack`` Please note, primitives are included in this list from this release. .. _pytorch-neuron-release-1011680: PyTorch Neuron Release [1.0.1168.0] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Added support for new operators: - ``aten::ScalarImplicit`` .. _pytorch-neuron-release-1010010: PyTorch Neuron Release [1.0.1001.0] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Added support for new operators: - ``aten::detach`` - ``aten::floor`` - ``aten::gelu`` - ``aten::pow`` - ``aten::sigmoid`` - ``aten::split`` Remove support for operators: - ``aten::embedding``: Does not meet **performance** criteria - ``aten::erf``: Error function does not meet **accuracy** criteria - ``aten::tf_dtype_from_torch``: Internal support function, not an operator .. _pytorch-neuron-release-108250: PyTorch Neuron Release [1.0.825.0] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ No change .. _pytorch-neuron-release-107630: PyTorch Neuron Release [1.0.763.0] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Added support for new operators: - ``aten::Int`` - ``aten::arange`` - ``aten::contiguous`` - ``aten::div`` - ``aten::embedding`` - ``aten::erf`` - ``aten::expand`` - ``aten::eye`` - ``aten::index_select`` - ``aten::layer_norm`` - ``aten::matmul`` - ``aten::mm`` - ``aten::permute`` - ``aten::reshape`` - ``aten::rsub`` - ``aten::select`` - ``aten::size`` - ``aten::slice`` - ``aten::softmax`` - ``aten::tf_dtype_from_torch`` - ``aten::to`` - ``aten::transpose`` - ``aten::unsqueeze`` - ``aten::view`` - ``aten::zeros`` Remove support for operators: - ``aten::tf_broadcastable_slice``: Internal support function, not an operator - ``aten::tf_padding``: Internal support function, not an operator These operators were already supported previously: - ``aten::_convolution`` - ``aten::adaptive_avg_pool2d`` - ``aten::add`` - ``aten::add_`` - ``aten::addmm`` - ``aten::avg_pool2d`` - ``aten::batch_norm`` - ``aten::cat`` - ``aten::dimension_value`` - ``aten::dropout`` - ``aten::flatten`` - ``aten::max_pool2d`` - ``aten::mul`` - ``aten::relu_`` - ``aten::t`` - ``aten::tanh`` - ``aten::values`` - ``prim::Constant`` - ``prim::GetAttr`` - ``prim::ListConstruct`` - ``prim::ListUnpack`` - ``prim::TupleConstruct`` - ``prim::TupleUnpack`` .. _pytorch-neuron-release-106720: PyTorch Neuron Release [1.0.672.0] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ No change .. _pytorch-neuron-release-105520: PyTorch Neuron Release [1.0.552.0] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Added support for new operators: - ``aten::_convolution`` - ``aten::adaptive_avg_pool2d`` - ``aten::add`` - ``aten::add_`` - ``aten::addmm`` - ``aten::avg_pool2d`` - ``aten::batch_norm`` - ``aten::cat`` - ``aten::dimension_value`` - ``aten::dropout`` - ``aten::flatten`` - ``aten::max_pool2d`` - ``aten::mul`` - ``aten::relu_`` - ``aten::t`` - ``aten::tanh`` - ``aten::tf_broadcastable_slice`` - ``aten::tf_padding`` - ``aten::values`` - ``prim::Constant`` - ``prim::GetAttr`` - ``prim::ListConstruct`` - ``prim::ListUnpack`` - ``prim::TupleConstruct`` - ``prim::TupleUnpack``