#include "migraphx/common.hpp" #include "verify_program.hpp" #include #include #include struct gemm_multi_transpose : verify_program { migraphx::program create_program() const { migraphx::program p; auto* mm = p.get_main_module(); migraphx::shape m1_shape{migraphx::shape::float_type, {2, 2, 3}}; migraphx::shape m2_shape{migraphx::shape::float_type, {3, 2, 4}}; auto l1 = mm->add_parameter("1", m1_shape); auto l2 = mm->add_parameter("2", m2_shape); auto tl2 = mm->add_instruction(migraphx::make_op("transpose", {{"permutation", {1, 0, 2}}}), l2); float alpha = 1.0f; float beta = 1.0f; migraphx::add_dot_apply_alpha_beta(*mm, {l1, tl2}, alpha, beta); return p; } };