Operators
operation
-
struct migraphx::internal::operation
The operation interface represents an action an instruction will perform. All operation classes must be CopyConstructible.
Public Functions
-
std::string name() const
A unique name identifying the operation.
-
void finalize(context &ctx)
An optional method that can be used to finalize the operator before running.
-
shape compute_shape(const std::vector<shape> &input) const
This is used to compute the resulting shape from an operation. If an operation cannot be run with input shapes, then it should throw an exception.
-
argument compute(context &ctx, const shape &output, const std::vector<argument> &input) const
This performs the operation’s computation.
This method can be optional when the operation is only used as a placeholder to be lowered later on.
- Parameters
ctx – This is the context created by the
targetduring compilation. Implementations can use the target’scontextclass rather than thecontextinterface class.output – This is the output shape. It is equivalent to running
compute_shapewith eachshapeof theargument.input – This is the
argumentresult from the previous instruction’s computation.
- Returns
Return an
argumentof the result computation. Theshapeofargumentshould be the same theoutputshape.
Friends
- friend friend std::ostream & operator<< (std::ostream &os, const operation &op)
An optional stream operator to print the operation. When this is not implemented, it will just print the operation’s name.
-
std::string name() const
operators
-
namespace migraphx::internal::op
Enums
Functions
-
std::ostream &operator<<(std::ostream &os, rnn_direction v)
-
struct abs : public migraphx::internal::op::unary<abs>
- #include <migraphx/op/abs.hpp>
Public Functions
-
inline auto apply() const
-
inline auto apply() const
-
struct acos : public migraphx::internal::op::unary<acos>
- #include <migraphx/op/acos.hpp>
Public Functions
-
inline auto apply() const
-
inline auto apply() const
-
struct acosh : public migraphx::internal::op::unary<acosh>
- #include <migraphx/op/acosh.hpp>
Public Functions
-
inline auto apply() const
-
inline auto apply() const
-
struct argmax
- #include <migraphx/op/argmax.hpp>
Public Functions
-
inline value attributes() const
-
inline std::string name() const
Public Members
-
int64_t axis = 0
-
inline value attributes() const
-
struct argmin
- #include <migraphx/op/argmin.hpp>
Public Functions
-
inline value attributes() const
-
inline std::string name() const
Public Members
-
int64_t axis = 0
-
inline value attributes() const
-
struct as_shape
- #include <migraphx/op/as_shape.hpp>
-
struct asin : public migraphx::internal::op::unary<asin>
- #include <migraphx/op/asin.hpp>
Public Functions
-
inline auto apply() const
-
inline auto apply() const
-
struct asinh : public migraphx::internal::op::unary<asinh>
- #include <migraphx/op/asinh.hpp>
Public Functions
-
inline auto apply() const
-
inline auto apply() const
-
struct atan : public migraphx::internal::op::unary<atan>
- #include <migraphx/op/atan.hpp>
Public Functions
-
inline auto apply() const
-
inline auto apply() const
-
struct atanh : public migraphx::internal::op::unary<atanh>
- #include <migraphx/op/atanh.hpp>
Public Functions
-
inline auto apply() const
-
inline auto apply() const
-
struct batch_norm_inference
- #include <migraphx/op/batch_norm_inference.hpp>
Public Functions
-
inline std::string name() const
-
inline std::string name() const
-
template<class Derived>
struct binary : public migraphx::internal::op::op_name<Derived> - #include <migraphx/op/binary.hpp>
-
struct broadcast
- #include <migraphx/op/broadcast.hpp>
The broadcast operator performs the numpy-style broadcasting of an axis of a given tensor. This is achieved primarily by setting the stride of the broadcasted axis to zero. Linear indicies are computed from multi-indicies by computing the inner product on the multi-index with the strides. For example, if we have a tensor A(2,3) it has lengths of (2,3) and strides of (3,1). If we want to compute the linear offset that corresponds to the element on the 2nd row (i = 1) and 3rd column (j = 2), we compute the following inner product (1,2) dot (3, 1) = 1*3 + 2*1 = 5. It is obvious from there that we can negate the effects of a given axis by setting the stride of that axis to zero.
-
struct capture
- #include <migraphx/op/capture.hpp>
Public Functions
-
inline std::string name() const
Public Members
-
std::size_t ins_index
-
inline std::string name() const
-
struct ceil : public migraphx::internal::op::unary<ceil>
- #include <migraphx/op/ceil.hpp>
Public Functions
-
inline auto apply() const
-
inline auto apply() const
-
struct clip
- #include <migraphx/op/clip.hpp>
-
struct concat
- #include <migraphx/op/concat.hpp>
Public Functions
-
inline value attributes() const
-
inline std::string name() const
Public Members
-
int64_t axis = 0
-
inline value attributes() const
-
struct contiguous
- #include <migraphx/op/contiguous.hpp>
The contiguous operator takes a non-standard input tensor and returns the same tensor but in standard form. For example, if input tensor A which has lens = (4,5) is first transposed, i.e. lens = (5,4), this tensor’s data layout remained the same during the transpose operation; only it’s shape lengths and strides were changed. This leaves the tensor in a non-standard form. The contiguous operator copies the underlying data such that resulting tensor is returned to a standard form.
-
struct convolution
- #include <migraphx/op/convolution.hpp>
Public Functions
-
inline std::string name() const
-
inline void check_attribute_size() const
-
inline value attributes() const
-
inline size_t kdims() const
-
inline std::string name() const
-
struct cos : public migraphx::internal::op::unary<cos>
- #include <migraphx/op/cos.hpp>
Public Functions
-
inline auto apply() const
-
inline auto apply() const
-
struct cosh : public migraphx::internal::op::unary<cosh>
- #include <migraphx/op/cosh.hpp>
Public Functions
-
inline auto apply() const
-
inline auto apply() const
-
struct deconvolution
- #include <migraphx/op/deconvolution.hpp>
Public Functions
-
inline std::string name() const
-
inline void check_attribute_size() const
-
inline size_t kdims() const
-
inline std::string name() const
-
struct dequantizelinear
- #include <migraphx/op/dequantizelinear.hpp>
-
struct dot
- #include <migraphx/op/dot.hpp>
-
struct elu
- #include <migraphx/op/elu.hpp>
Public Functions
-
inline std::string name() const
Public Members
-
float alpha = 1
-
inline std::string name() const
-
struct erf : public migraphx::internal::op::unary<erf>
- #include <migraphx/op/erf.hpp>
Public Functions
-
inline auto apply() const
-
inline auto apply() const
-
struct exp : public migraphx::internal::op::unary<exp>
- #include <migraphx/op/exp.hpp>
Public Functions
-
inline auto apply() const
-
inline auto apply() const
-
struct flatten
- #include <migraphx/op/flatten.hpp>
Public Functions
-
inline value attributes() const
-
inline std::string name() const
-
inline lifetime get_lifetime() const
Public Members
-
int64_t axis = 1
-
inline value attributes() const
-
struct floor : public migraphx::internal::op::unary<floor>
- #include <migraphx/op/floor.hpp>
Public Functions
-
inline auto apply() const
-
inline auto apply() const
-
struct get_tuple_elem
- #include <migraphx/op/get_tuple_elem.hpp>
Public Functions
-
inline std::string name() const
Public Members
-
std::size_t index = 0
-
inline std::string name() const
-
struct gru
- #include <migraphx/op/gru.hpp>
Public Functions
-
inline std::string name() const
Public Members
-
rnn_direction direction = rnn_direction::forward
-
float clip = 0.0f
-
int linear_before_reset = 0
-
inline std::string name() const
-
struct highest
- #include <migraphx/op/reduce_op.hpp>
-
struct identity
- #include <migraphx/op/identity.hpp>
-
struct im2col
- #include <migraphx/op/im2col.hpp>
-
struct leaky_relu
- #include <migraphx/op/leaky_relu.hpp>
Public Functions
-
inline std::string name() const
Public Members
-
float alpha = 0.01
-
inline std::string name() const
-
struct load
- #include <migraphx/op/load.hpp>
Friends
- inline friend friend std::ostream & operator<< (std::ostream &os, const load &op)
-
struct log : public migraphx::internal::op::unary<log>
- #include <migraphx/op/log.hpp>
Public Functions
-
inline auto apply() const
-
inline auto apply() const
-
struct logical_and : public migraphx::internal::op::binary<logical_and>
- #include <migraphx/op/logical_and.hpp>
-
struct logical_or : public migraphx::internal::op::binary<logical_or>
- #include <migraphx/op/logical_or.hpp>
-
struct logical_xor : public migraphx::internal::op::binary<logical_xor>
- #include <migraphx/op/logical_xor.hpp>
-
struct logsoftmax
- #include <migraphx/op/logsoftmax.hpp>
Public Functions
-
inline value attributes() const
-
inline std::string name() const
-
inline auto output() const
Public Members
-
int64_t axis = 1
-
inline value attributes() const
-
struct loop
- #include <migraphx/op/loop.hpp>
Public Functions
-
inline std::string name() const
Public Members
-
int64_t max_iterations = 10
-
struct ref_loop
- #include <migraphx/op/loop.hpp>
Public Functions
-
inline void append(const std::vector<argument> &iter_state, const std::vector<argument> &concatenated_outputs, int iter) const
-
inline std::unordered_map<std::string, int> get_output_params(const module&) const
Public Members
-
int64_t max_iterations = 0
-
inline void append(const std::vector<argument> &iter_state, const std::vector<argument> &concatenated_outputs, int iter) const
-
inline std::string name() const
-
struct lowest
- #include <migraphx/op/reduce_op.hpp>
-
struct lstm
- #include <migraphx/op/lstm.hpp>
Public Functions
-
inline std::string name() const
Public Members
-
rnn_direction direction = rnn_direction::forward
-
float clip = 0.0f
-
int input_forget = 0
-
inline std::string name() const
-
struct multibroadcast
- #include <migraphx/op/multibroadcast.hpp>
Public Members
-
std::vector<std::size_t> output_lens
-
std::vector<std::size_t> output_lens
-
struct multinomial
- #include <migraphx/op/multinomial.hpp>
Public Functions
-
inline std::string name() const
-
inline std::string name() const
-
struct nonmaxsuppression
- #include <migraphx/op/nonmaxsuppression.hpp>
Public Functions
-
inline std::string name() const
Public Members
-
bool center_point_box = false
-
inline std::string name() const
-
struct nonzero
- #include <migraphx/op/nonzero.hpp>
-
struct one
- #include <migraphx/op/reduce_op.hpp>
-
template<class Derived>
struct op_name - #include <migraphx/op/name.hpp>
Create name from class.
Subclassed by migraphx::internal::op::binary< Derived >, migraphx::internal::op::prefix_scan_op< Derived >, migraphx::internal::op::reduce_op< Derived >, migraphx::internal::op::unary< Derived >
Public Functions
-
inline std::string name() const
-
inline std::string name() const
-
struct outline
- #include <migraphx/op/outline.hpp>
Public Functions
-
inline std::string name() const
-
inline std::string name() const
-
struct pad
- #include <migraphx/op/pad.hpp>
Public Types
-
struct pointwise
- #include <migraphx/op/pointwise.hpp>
Public Functions
-
inline std::string name() const
-
inline std::string name() const
-
struct pooling
- #include <migraphx/op/pooling.hpp>
Public Functions
-
inline std::string name() const
-
inline void check_attribute_size() const
-
inline value attributes() const
-
inline size_t kdims() const
-
inline std::string name() const
-
struct pow : public migraphx::internal::op::binary<pow>
- #include <migraphx/op/pow.hpp>
Public Functions
-
inline auto apply() const
-
inline auto apply() const
-
template<class Derived>
struct prefix_scan_op : public migraphx::internal::op::op_name<Derived> - #include <migraphx/op/prefix_scan_op.hpp>
-
struct prefix_scan_sum : public migraphx::internal::op::prefix_scan_op<prefix_scan_sum>
- #include <migraphx/op/prefix_scan_sum.hpp>
-
struct quant_convolution
- #include <migraphx/op/quant_convolution.hpp>
Public Functions
-
inline value attributes() const
-
inline std::string name() const
-
inline void check_attribute_size() const
-
inline size_t kdims() const
-
inline value attributes() const
-
struct quant_dot
- #include <migraphx/op/quant_dot.hpp>
-
struct quantizelinear
- #include <migraphx/op/quantizelinear.hpp>
-
struct reduce_max : public migraphx::internal::op::reduce_op<reduce_max>
- #include <migraphx/op/reduce_max.hpp>
-
struct reduce_mean : public migraphx::internal::op::reduce_op<reduce_mean>
- #include <migraphx/op/reduce_mean.hpp>
-
struct reduce_min : public migraphx::internal::op::reduce_op<reduce_min>
- #include <migraphx/op/reduce_min.hpp>
-
template<class Derived>
struct reduce_op : public migraphx::internal::op::op_name<Derived> - #include <migraphx/op/reduce_op.hpp>
Public Functions
-
inline value attributes() const
-
inline std::vector<int64_t> tune_axes(std::size_t n_dim) const
-
template<class T>
inline void tune_dims(const std::vector<int64_t> &tuned_axes, const std::vector<T> &in_lens, std::vector<T> &out_lens) const
-
template<class T>
inline void reduce(tensor_view<T> &input, shape &batch_shape, std::vector<int64_t> &tuned_axes, std::vector<std::size_t> &out_idx, tensor_view<T> &output) const
-
inline auto init() const
-
inline auto input() const
-
inline reduce_op()
-
inline reduce_op(std::vector<int64_t> ax)
Public Members
-
std::vector<std::int64_t> axes = {}
-
inline value attributes() const
-
struct reduce_prod : public migraphx::internal::op::reduce_op<reduce_prod>
- #include <migraphx/op/reduce_prod.hpp>
-
struct reduce_sum : public migraphx::internal::op::reduce_op<reduce_sum>
- #include <migraphx/op/reduce_sum.hpp>
-
struct reshape
- #include <migraphx/op/reshape.hpp>
Public Functions
-
inline value attributes() const
-
inline std::string name() const
-
inline lifetime get_lifetime() const
Public Members
-
std::vector<int64_t> dims
-
inline value attributes() const
-
struct reverse
- #include <migraphx/op/reverse.hpp>
Public Members
-
std::vector<int64_t> axes
-
std::vector<int64_t> axes
-
struct rnn_last_cell_output
- #include <migraphx/op/rnn_last_cell_output.hpp>
-
struct rnn_last_hs_output
- #include <migraphx/op/rnn_last_hs_output.hpp>
-
struct rnn_var_sl_last_output
- #include <migraphx/op/rnn_var_sl_last_output.hpp>
Public Functions
-
inline std::string name() const
Public Members
-
rnn_direction direction = rnn_direction::forward
-
inline std::string name() const
-
struct rnn_var_sl_shift_output
- #include <migraphx/op/rnn_variable_seq_lens.hpp>
Public Functions
-
inline std::string name() const
Public Members
-
std::string output_name =
"hidden_states"
-
rnn_direction direction = rnn_direction::forward
-
inline std::string name() const
-
struct rnn_var_sl_shift_sequence
- #include <migraphx/op/rnn_variable_seq_lens.hpp>
-
struct roialign
- #include <migraphx/op/roialign.hpp>
Public Functions
-
inline std::string name() const
-
inline auto calc_pos_weight(const std::array<std::size_t, 2> &dims, const shape &comp_s, const std::array<float, 2> &roi_start, const std::array<float, 2> &bin_size, const std::array<std::size_t, 2> &bin_grid_size) const
-
template<class T, class Op>
inline std::tuple<double, int64_t> calc_pooling(const T &data, const std::array<std::size_t, 2> &bin_grid_size, const std::vector<pos_weight> &pos_weights, int64_t index, Op op) const
Public Members
-
std::string coord_trans_mode =
"half_pixel"
-
std::string mode =
"avg"
-
int64_t output_height = 1
-
int64_t output_width = 1
-
int64_t sampling_ratio = 0
-
float spatial_scale = 1.0f
-
struct avg_pool
- #include <migraphx/op/roialign.hpp>
-
struct max_pool
- #include <migraphx/op/roialign.hpp>
-
struct pos_weight
- #include <migraphx/op/roialign.hpp>
-
inline std::string name() const
-
struct round : public migraphx::internal::op::unary<round>
- #include <migraphx/op/round.hpp>
Public Functions
-
inline auto apply() const
-
inline auto apply() const
-
struct rsqrt : public migraphx::internal::op::unary<rsqrt>
- #include <migraphx/op/rsqrt.hpp>
Public Functions
-
inline auto apply() const
-
inline auto apply() const
-
struct scalar
- #include <migraphx/op/scalar.hpp>
Public Members
-
std::vector<std::size_t> scalar_bcast_lens
-
std::vector<std::size_t> scalar_bcast_lens
-
struct sin : public migraphx::internal::op::unary<sin>
- #include <migraphx/op/sin.hpp>
Public Functions
-
inline auto apply() const
-
inline auto apply() const
-
struct sinh : public migraphx::internal::op::unary<sinh>
- #include <migraphx/op/sinh.hpp>
Public Functions
-
inline auto apply() const
-
inline auto apply() const
-
struct slice
- #include <migraphx/op/slice.hpp>
-
struct softmax
- #include <migraphx/op/softmax.hpp>
Public Functions
-
inline value attributes() const
-
inline std::string name() const
-
inline auto output() const
Public Members
-
int64_t axis = 1
-
inline value attributes() const
-
struct sqrt : public migraphx::internal::op::unary<sqrt>
- #include <migraphx/op/sqrt.hpp>
Public Functions
-
inline auto apply() const
-
inline auto apply() const
-
struct squeeze
- #include <migraphx/op/squeeze.hpp>
Public Functions
-
inline value attributes() const
-
inline std::string name() const
-
inline lifetime get_lifetime() const
Public Members
-
std::vector<int64_t> axes
-
inline value attributes() const
-
struct step
- #include <migraphx/op/step.hpp>
-
struct tan : public migraphx::internal::op::unary<tan>
- #include <migraphx/op/tan.hpp>
Public Functions
-
inline auto apply() const
-
inline auto apply() const
-
struct tanh : public migraphx::internal::op::unary<tanh>
- #include <migraphx/op/tanh.hpp>
Public Functions
-
inline auto apply() const
-
inline auto apply() const
-
struct topk
- #include <migraphx/op/topk.hpp>
-
template<class Derived>
struct unary : public migraphx::internal::op::op_name<Derived> - #include <migraphx/op/unary.hpp>
-
struct unary_not : public migraphx::internal::op::unary<unary_not>
- #include <migraphx/op/unary_not.hpp>
-
struct undefined
- #include <migraphx/op/undefined.hpp>
-
struct unknown
- #include <migraphx/op/unknown.hpp>
Public Functions
-
inline std::string name() const
Public Members
-
std::string op
Friends
- inline friend friend std::ostream & operator<< (std::ostream &os, const unknown &x)
-
inline std::string name() const
-
struct unsqueeze
- #include <migraphx/op/unsqueeze.hpp>
Public Functions
-
inline value attributes() const
-
inline std::string name() const
-
inline lifetime get_lifetime() const
Public Members
-
std::vector<int64_t> axes
-
inline value attributes() const
-
struct where
- #include <migraphx/op/where.hpp>
-
struct zero
- #include <migraphx/op/reduce_op.hpp>
-
std::ostream &operator<<(std::ostream &os, rnn_direction v)