normalize_ops.cpp 946 Bytes
Newer Older
Shucai Xiao's avatar
Shucai Xiao committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <unordered_set>
#include <migraphx/normalize_attributes.hpp>
#include <migraphx/normalize_ops.hpp>
#include <migraphx/iterator_for.hpp>
#include <migraphx/ranges.hpp>
#include <migraphx/auto_any_cast.hpp>
#include <migraphx/value.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/instruction.hpp>
#include <migraphx/instruction_ref.hpp>

namespace migraphx {
inline namespace MIGRAPHX_INLINE_NS {

void normalize_ops::apply(module& m) const
{
    for(auto ins : iterator_for(m))
    {
        auto inputs = ins->inputs();
        if(inputs.empty())
            continue;

        auto lens                    = inputs[0]->get_shape().lens();
        migraphx::operation tuned_op = ins->get_operator();
        if(normalize_attributes(tuned_op, lens))
        {
            m.replace_instruction(ins, tuned_op, inputs);
28
            ins->set_normalized();
Shucai Xiao's avatar
Shucai Xiao committed
29
30
31
32
33
34
        }
    }
}

} // namespace MIGRAPHX_INLINE_NS
} // namespace migraphx