45 const std::vector<migraphx::shape>& inputs)
const {
46 migraphx::check_shapes{inputs, *
this}.standard();
51 auto out_dims = plugin->getOutputDimensions(0,
nullptr, 0);
53 return migraphx::shape{
54 migraphx::shape::float_type,
55 {std::size_t(out_dims.d[0]), std::size_t(out_dims.d[1]),
56 std::size_t(out_dims.d[2]), std::size_t(out_dims.d[3])}};
60 migraphx::context& gctx,
61 const migraphx::shape&,
62 const std::vector<migraphx::argument>& args)
const {
63 CHECK_GE(
static_cast<int>(args.size()), 3);
64 bool no_trans = args.size() < 4;
66 auto bottom_data = args[0];
67 auto bottom_rois = args[1];
68 auto bottom_trans = no_trans ? migraphx::argument{} : args[2];
69 auto top_data = no_trans ? args[2] : args[3];
71 std::vector<const void*> inputs_data{
72 bottom_data.data(), bottom_rois.data(),
73 no_trans ? nullptr : bottom_trans.data()};
75 std::vector<void*> outputs_data{top_data.data()};
77 auto& ctx = migraphx::any_cast<migraphx::gpu::context>(gctx);
80 plugin->enqueue(
batch_size, inputs_data.data(), outputs_data.data(),
81 nullptr , ctx.get_stream().get());