# -------------------------------------------------------------------------
#  This file is part of the MindStudio project.
# Copyright (c) 2025 Huawei Technologies Co.,Ltd.
#
# MindStudio is licensed under Mulan PSL v2.
# You can use this software according to the terms and conditions of the Mulan PSL v2.
# You may obtain a copy of Mulan PSL v2 at:
#
#          http://license.coscl.org.cn/MulanPSL2
#
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# -------------------------------------------------------------------------

# List of ops that register hooks


ops:
  - adaptive_avg_pool1d
  - adaptive_avg_pool2d
  - adaptive_avg_pool3d
  - adaptive_max_pool1d
  - adaptive_max_pool2d
  - avg_pool1d
  - avg_pool2d
  - avg_pool3d
  - batch_norm
  - bias_add
  - ctc_greedy_decoder
  - conv1d
  - conv2d
  - conv3d
  - deformable_conv2d
  - dense
  - dropout
  - dropout1d
  - dropout2d
  - dropout3d
  - flatten
  - fold
  - fractional_max_pool3d
  - lp_pool1d
  - lp_pool2d
  - lrn
  - max_pool2d
  - max_pool3d
  - max_unpool1d
  - max_unpool2d
  - max_unpool3d
  - unfold
  - binary_cross_entropy
  - binary_cross_entropy_with_logits
  - cosine_embedding_loss
  - cross_entropy
  - ctc_loss
  - gaussian_nll_loss
  - hinge_embedding_loss
  - huber_loss
  - kl_div
  - l1_loss
  - margin_ranking_loss
  - mse_loss
  - multi_margin_loss
  - multilabel_margin_loss
  - multilabel_soft_margin_loss
  - nll_loss
  - smooth_l1_loss
  - triplet_margin_loss
  - elu
  - fast_gelu
  - gelu
  - glu
  - gumbel_softmax
  - hardshrink
  - hardsigmoid
  - hardswish
  - hardtanh
  - leaky_relu
  - log_softmax
  - logsigmoid
  - mish
  - prelu
  - relu
  - relu6
  - celu
  - rrelu
  - rms_norm
  - selu
  - sigmoid
  - silu
  - softmax
  - softmin
  - softshrink
  - softsign
  - tanh
  - threshold
  - cdist
  - dist
  - pdist
  - choice_with_mask
  - random_categorical
  - log_uniform_candidate_sampler
  - uniform_candidate_sampler
  - affine_grid
  - bounding_box_decode
  - bounding_box_encode
  - col2im
  - check_valid
  - crop_and_resize
  - grid_sample
  - interpolate
  - iou
  - pad
  - padding
  - pixel_shuffle
  - pixel_unshuffle
  - upsample
  - abs
  - absolute
  - accumulate_n
  - acos
  - arccos
  - acosh
  - add
  - addcdiv
  - addcmul
  - addmv
  - addn
  - angle
  - arccosh
  - arcsin
  - arcsinh
  - arctan
  - arctanh
  - arctan2
  - asin
  - asinh
  - atan
  - atan2
  - atanh
  - atleast_1d
  - atleast_2d
  - atleast_3d
  - bessel_i0
  - bessel_i0e
  - bessel_i1
  - bessel_i1e
  - bessel_j0
  - bessel_j1
  - bessel_k0
  - bessel_k0e
  - bessel_k1
  - bessel_k1e
  - bessel_y0
  - bessel_y1
  - bitwise_and
  - bitwise_left_shift
  - bitwise_or
  - bitwise_right_shift
  - bitwise_xor
  - ceil
  - clamp
  - clip
  - combinations
  - copysign
  - cos
  - cosh
  - cosine_similarity
  - cov
  - diag_embed
  - diff
  - deg2rad
  - digamma
  - div
  - divide
  - erf
  - erfc
  - erfinv
  - exp
  - exp2
  - expm1
  - floor
  - floor_div
  - floor_mod
  - float_power
  - fmod
  - frac
  - flash_attention_score
  - gcd
  - hypot
  - igamma
  - igammac
  - imag
  - i0
  - inv
  - invert
  - lcm
  - ldexp
  - lerp
  - log
  - log2
  - log10
  - log1p
  - logaddexp
  - logaddexp2
  - logical_and
  - logical_not
  - logical_or
  - logical_xor
  - logit
  - mul
  - multiply
  - mvlgamma
  - neg
  - negative
  - nextafter
  - polar
  - polygamma
  - positive
  - pow
  - rad2deg
  - ravel
  - real
  - reciprocal
  - remainder
  - rot90
  - round
  - rsqrt
  - sgn
  - sign
  - signbit
  - sin
  - sinc
  - sinh
  - sqrt
  - square
  - sub
  - subtract
  - t
  - tan
  - tanhshrink
  - trapz
  - tril_indices
  - triu_indices
  - true_divide
  - trunc
  - truncate_div
  - truncate_mod
  - xdivy
  - xlogy
  - zeta
  - all
  - amax
  - amin
  - aminmax
  - any
  - argmax
  - argmin
  - cummax
  - cummin
  - cumprod
  - cumsum
  - fmax
  - histc
  - logsumexp
  - max
  - mean
  - median
  - min
  - norm
  - prod
  - std
  - std_mean
  - var
  - var_mean
  - argsort
  - approximate_equal
  - equal
  - ge
  - greater
  - greater_equal
  - gt
  - intopk
  - isclose
  - isfinite
  - isinf
  - isnan
  - isneginf
  - isposinf
  - isreal
  - is_complex
  - le
  - less
  - less_equal
  - lt
  - maximum
  - minimum
  - msort
  - ne
  - not_equal
  - searchsorted
  - topk
  - bmm
  - addbmm
  - addmm
  - baddbmm
  - addr
  - adjoint
  - cholesky
  - cholesky_solve
  - batch_dot
  - dot
  - eig
  - inner
  - inverse
  - geqrf
  - ger
  - kron
  - lu_solve
  - lu_unpack
  - matmul
  - matrix_solve
  - matrix_band_part
  - matrix_diag
  - matrix_diag_part
  - matrix_set_diag
  - mm
  - mv
  - outer
  - orgqr
  - ormqr
  - pinv
  - svd
  - tensor_dot
  - logdet
  - slogdet
  - qr
  - trace
  - bartlett_window
  - blackman_window
  - hamming_window
  - hann_window
  - kaiser_window
  - eye
  - fill
  - full
  - full_like
  - linspace
  - logspace
  - one_hot
  - range
  - heaviside
  - bernoulli
  - gamma
  - laplace
  - multinomial
  - multinomial_with_replacement
  - rand
  - rand_like
  - randint
  - randint_like
  - randn
  - randn_like
  - random_gamma
  - random_poisson
  - randperm
  - standard_laplace
  - standard_normal
  - uniform
  - argwhere
  - batch_to_space_nd
  - bincount
  - block_diag
  - broadcast_to
  - cat
  - channel_shuffle
  - chunk
  - column_stack
  - concat
  - conj
  - count_nonzero
  - deepcopy
  - diag
  - diagflat
  - diagonal
  - dyn_shape
  - dsplit
  - dstack
  - einsum
  - expand
  - expand_dims
  - flip
  - fliplr
  - flipud
  - gather_d
  - gather_elements
  - gather_nd
  - hsplit
  - hstack
  - index_add
  - index_fill
  - index_select
  - inplace_add
  - inplace_index_add
  - inplace_sub
  - inplace_update
  - masked_fill
  - masked_select
  - meshgrid
  - moveaxis
  - movedim
  - narrow
  - nan_to_num
  - nansum
  - normal
  - nonzero
  - population_count
  - rank
  - repeat_elements
  - repeat_interleave
  - reshape
  - reverse
  - reverse_sequence
  - roll
  - scatter
  - scatter_nd
  - select
  - sequence_mask
  - shuffle
  - size
  - slice
  - sort
  - space_to_batch_nd
  - sparse_segment_mean
  - split
  - squeeze
  - stack
  - strided_slice
  - sum
  - swapaxes
  - swapdims
  - tensor_scatter_add
  - tensor_scatter_div
  - tensor_scatter_max
  - tensor_scatter_min
  - tensor_scatter_mul
  - tensor_scatter_sub
  - tensor_scatter_elements
  - tensor_split
  - tile
  - tril
  - triu
  - transpose
  - unbind
  - unique
  - unique_consecutive
  - unique_with_pad
  - unsorted_segment_max
  - unsorted_segment_min
  - unsorted_segment_prod
  - unsorted_segment_sum
  - unsqueeze
  - unstack
  - view_as_real
  - vsplit
  - vstack
  - where
  - cross
  - renorm
  - is_tensor
  - scalar_cast
  - scalar_to_tensor
  - tuple_to_array
  - clip_by_global_norm
  - clip_by_value
  - assign
  - assign_add
  - assign_sub
  - scatter_add
  - scatter_div
  - scatter_max
  - scatter_min
  - scatter_mul
  - scatter_nd_add
  - scatter_nd_div
  - scatter_nd_max
  - scatter_nd_min
  - scatter_nd_mul
  - scatter_nd_sub
  - scatter_update
  - derivative
  - jet
  - row_stack
  - gather
  - arange
  - cond
  - slice_scatter
  - clip_by_norm
  - eps
  - layer_norm
  - cast
  - numel
  - permute
  - select_scatter
  - group_norm
  - eq
  - embedding
  - ones_like
  - zeros
  - nanmean
  - shape
  - zeros_like
  - ones
  - diagonal_scatter
  - vander
  - is_nonzero
  - rotary_position_embedding
  - auto_generate.quant_matmul

tensor:
  - __abs__
  - __add__
  - __and__
  - __bool__
  - __eq__
  - __ge__
  - __gt__
  - __iadd__
  - __ifloordiv__
  - __imatmul__
  - __imod__
  - __imul__
  - __isub__
  - __le__
  - __lt__
  - __matmul__
  - __mod__
  - __mul__
  - __ne__
  - __neg__
  - __or__
  - __pow__
  - __radd__
  - __rmatmul__
  - __rmod__
  - __rmul__
  - __rpow__
  - __rsub__
  - __sub__
  - __truediv__
  - __xor__
  - abs
  - absolute
  - acos
  - acosh
  - add
  - add_
  - addbmm
  - addcdiv
  - addcmul
  - addmm
  - addmv
  - addr
  - all
  - amax
  - amin
  - angle
  - any
  - arccos
  - arccosh
  - arcsin
  - arcsinh
  - arctan
  - arctanh
  - argmax
  - argmin
  - argsort
  - asin
  - asinh
  - atan
  - atan2
  - atanh
  - baddbmm
  - bernoulli
  - bfloat16
  - bincount
  - bitwise_and
  - bitwise_or
  - bitwise_xor
  - bmm
  - bool
  - bool astype
  - broadcast_to
  - byte
  - ceil
  - cholesky
  - cholesky_solve
  - clamp
  - clip
  - conj
  - copy
  - copysign
  - cos
  - cosh
  - cross
  - cummax
  - cummin
  - cumprod
  - cumsum
  - deg2rad
  - diag
  - diagflat
  - diagonal
  - diff
  - digamma
  - div
  - div_
  - divide
  - double
  - equal
  - erf
  - erfc
  - erfinv
  - exp
  - expand_as
  - expm1
  - flatten
  - flip
  - fliplr
  - flipud
  - float
  - float_power
  - floor
  - fmod
  - frac
  - from_numpy
  - gather_elements
  - ge
  - geqrf
  - ger
  - greater
  - greater_equal
  - gt
  - half
  - hardshrink
  - heaviside
  - histc
  - hypot
  - i0
  - igamma
  - igammac
  - imag
  - index_add
  - index_fill
  - index_put
  - index_select
  - inner
  - int
  - inverse
  - is_complex
  - is_signed
  - isclose
  - isfinite
  - isinf
  - isnan
  - isneginf
  - isposinf
  - isreal
  - lcm
  - ldexp
  - le
  - lerp
  - less
  - less_equal
  - log
  - log10
  - log1p
  - log2
  - logaddexp
  - logaddexp2
  - logdet
  - logical_and
  - logical_not
  - logical_or
  - logical_xor
  - logit
  - logsumexp
  - long
  - lt
  - masked_fill
  - masked_scatter
  - masked_select
  - matmul
  - max
  - maximum
  - mean
  - median
  - min
  - minimum
  - moveaxis
  - movedim
  - msort
  - multinomial
  - multiply
  - mvlgamma
  - nan_to_num
  - nansum
  - narrow
  - ne
  - neg
  - negative
  - nelement
  - new_ones
  - new_zeros
  - nextafter
  - nonzero
  - norm
  - not_equal
  - ormqr
  - permute
  - pow
  - prod
  - qr
  - rad2deg
  - ravel
  - real
  - reciprocal
  - remainder
  - renorm
  - repeat_interleave
  - reshape
  - reshape
  - resize
  - rot90
  - round
  - rsqrt
  - scatter
  - sgn
  - short
  - sigmoid
  - sign
  - signbit
  - sin
  - sinc
  - sinh
  - slogdet
  - sort
  - split
  - sqrt
  - square
  - squeeze
  - std
  - sub
  - sub_
  - subtract
  - sum
  - sum_to_size
  - svd
  - swapaxes
  - swapdims
  - t
  - take
  - tan
  - tanh
  - tensor_split
  - tile
  - to
  - topk
  - trace
  - transpose
  - tril
  - true_divide
  - trunc
  - unbind
  - unique_consecutive
  - unsqueeze
  - var
  - view
  - where
  - xlogy

mint.ops:
  - abs
  - absolute_import
  - add
  - add_ex
  - all
  - any
  - any_ex
  - argmax
  - avg_pool2d
  - baddbmm
  - baddbmm_ex
  - batch_norm
  - binary_cross_entropy_with_logits
  - bitwise_and
  - bitwise_or
  - bitwise_xor
  - bmm
  - broadcast_to
  - cat
  - cat_ex
  - ceil
  - chunk
  - clamp
  - conv2d
  - conv_transpose2d
  - cos
  - cross
  - cummax
  - cummin
  - cumsum
  - div
  - divide
  - dropout
  - embedding
  - eq
  - erf
  - erfinv
  - exp
  - flatten
  - flip
  - flip_ex
  - fold
  - full
  - functional
  - gather
  - gelu
  - greater
  - grid_sample
  - group_norm
  - gt
  - index_select
  - interpolate
  - isclose
  - isfinite
  - layer_norm
  - le
  - leaky_relu
  - less
  - less_equal
  - linear
  - linspace
  - log
  - logical_and
  - logical_not
  - logical_or
  - lt
  - masked_select
  - matmul
  - max
  - max_pool2d
  - maximum
  - mean
  - mean_ex
  - min
  - minimum
  - mul
  - ne
  - neg
  - negative
  - nn
  - nonzero
  - normal
  - one_hot
  - ones
  - ones_ex
  - ones_like
  - pad
  - permute
  - permute_ex
  - pow
  - prod
  - reciprocal
  - relu
  - remainder
  - repeat_interleave
  - rsqrt
  - scatter
  - scatter_add
  - searchsorted
  - sigmoid
  - silu
  - sin
  - softmax
  - softplus
  - sort
  - split
  - sqrt
  - sqrt_ex
  - square
  - stack
  - sub
  - sub_ex
  - sum
  - tanh
  - tile
  - topk
  - tril
  - triu
  - unfold
  - unique
  - where
  - xlogy
  - zeros
  - zeros_ex
  - zeros_like
  - inverse
  - select
  - item
  - unsqueeze
  - median
  - floor
  - histc
  - special
  - arctan2
  - sign
  - concat
  - atanh
  - greater_equal
  - eye
  - fix
  - argmin
  - asinh
  - atan
  - nan_to_num
  - tan
  - round
  - cosh
  - norm
  - roll
  - log1p
  - reshape
  - arccos
  - outer
  - arcsin
  - rand_like
  - acosh
  - multinomial
  - logical_xor
  - acos
  - linalg
  - sinc
  - arcsinh
  - asin
  - narrow
  - arctanh
  - trace
  - erfc
  - bernoulli
  - expm1
  - logaddexp
  - sinh
  - arccosh
  - atan2
  - rand
  - arange
  - trunc
  - arctan
  - swapaxes
  - transpose

mint.nn.functional:
  - absolute_import
  - avg_pool2d
  - batch_norm
  - batch_norm_ex
  - bce_with_logits
  - binary_cross_entropy_with_logits
  - conv_transpose2d
  - dense
  - dropout
  - embedding
  - fold
  - gelu
  - grid_sample
  - group_norm
  - interpolate
  - layer_norm
  - leaky_relu
  - linear
  - max_pool2d
  - max_pool2d_ex
  - normal
  - one_hot
  - one_hot_ext
  - pad
  - relu
  - relu_
  - sigmoid
  - silu
  - softmax
  - softmax_ex
  - softplus
  - tanh
  - unfold
  - mse_loss
  - adaptive_avg_pool1d
  - binary_cross_entropy
  - adaptive_avg_pool2d
  - hardsigmoid
  - selu
  - softshrink
  - prelu
  - logsigmoid
  - hardswish
  - mish
  - log_softmax
  - hardshrink
  - l1_loss
  - elu

communication.comm_func:
  - all_reduce
  - all_gather_into_tensor
  - reduce
  - reduce_scatter_tensor
  - all_to_all_single_with_output_shape
  - all_to_all_with_output_shape
  - batch_isend_irecv
  - broadcast
  - gather_into_tensor
  - scatter_tensor
  - send
  - recv
  - isend
  - irecv

mint.distributed:
  - send
  - recv
  - broadcast
  - all_reduce
  - reduce
  - all_gather
  - gather
  - isend
  - irecv
  - scatter
  - reduce_scatter
  - all_to_all_single
  - all_to_all
  - all_gather_into_tensor
  - reduce_scatter_tensor
  - batch_isend_irecv
