Commit 122ffe97 authored by Khalique Ahmed's avatar Khalique Ahmed
Browse files

debugging

parent 75bb9a6f
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE. * THE SOFTWARE.
*/ */
#include "migraphx/instruction_ref.hpp"
#include <migraphx/auto_contiguous.hpp> #include <migraphx/auto_contiguous.hpp>
#include <migraphx/program.hpp> #include <migraphx/program.hpp>
#include <migraphx/instruction.hpp> #include <migraphx/instruction.hpp>
...@@ -64,13 +65,24 @@ void auto_contiguous::apply(module& m) const ...@@ -64,13 +65,24 @@ void auto_contiguous::apply(module& m) const
// for last instruction that is NOT a return // for last instruction that is NOT a return
if(ins->outputs().empty() and ins != last) if(ins->outputs().empty() and ins != last)
continue; continue;
shape s = ins->get_shape(); if(ins->name() == "pooling" or ins->name() == "dot")
if((ins->name() == "pooling" or ins->name() == "dot") and not s.dynamic() and
not s.standard() and s.elements() != 0)
{ {
auto c = m.insert_instruction(std::next(ins), make_op("contiguous"), ins); // auto c = m.insert_instruction(ins, make_op("contiguous"), ins);
m.replace_instruction(ins, c); std::vector<instruction_ref> new_args;
for(auto args : ins->inputs())
{
new_args.push_back(m.insert_instruction(ins, make_op("contiguous"), args));
}
auto op = m.insert_instruction(ins, ins->get_operator(), new_args);
m.replace_instruction(ins, op);
} }
// shape s = ins->get_shape();
// if(not s.dynamic() and
// not s.standard() and s.elements() != 0)
// {
// auto c = m.insert_instruction(std::next(ins), make_op("contiguous"), ins);
// m.replace_instruction(ins, c);
// }
} }
} }
......
...@@ -143,8 +143,8 @@ void layout_nhwc::apply(module_pass_manager& mpm) const ...@@ -143,8 +143,8 @@ void layout_nhwc::apply(module_pass_manager& mpm) const
mpm.get_module().debug_print(); mpm.get_module().debug_print();
transform_convolutions(mpm.get_module(), this->skip_elim_contiguous); transform_convolutions(mpm.get_module(), this->skip_elim_contiguous);
mpm.run_pass(dead_code_elimination{}); mpm.run_pass(dead_code_elimination{});
if(not this->skip_elim_contiguous) // if(not this->skip_elim_contiguous)
mpm.run_pass(eliminate_contiguous{"contiguous"}); // mpm.run_pass(eliminate_contiguous{"contiguous"});
mpm.run_pass(dead_code_elimination{}); mpm.run_pass(dead_code_elimination{});
// remove_layout(mpm.get_module(), output_layouts); // remove_layout(mpm.get_module(), output_layouts);
// mpm.run_pass(dead_code_elimination{}); // mpm.run_pass(dead_code_elimination{});
......
...@@ -842,7 +842,7 @@ struct find_concat_pointwise ...@@ -842,7 +842,7 @@ struct find_concat_pointwise
void fuse_ops::apply(module& m) const void fuse_ops::apply(module& m) const
{ {
match::find_matches(m, find_contiguous_pointwise{}); // match::find_matches(m, find_contiguous_pointwise{});
run_passes(m, {dead_code_elimination{}}); run_passes(m, {dead_code_elimination{}});
match::find_matches(m, find_conv_pointwise{ctx}, find_conv_bias_relu{ctx}, find_conv_bias{ctx}); match::find_matches(m, find_conv_pointwise{ctx}, find_conv_bias_relu{ctx}, find_conv_bias{ctx});
run_passes(m, {dead_code_elimination{}}); run_passes(m, {dead_code_elimination{}});
...@@ -852,7 +852,7 @@ void fuse_ops::apply(module& m) const ...@@ -852,7 +852,7 @@ void fuse_ops::apply(module& m) const
find_gemm_pointwise{}, find_gemm_pointwise{},
find_contiguous_tranpose_gemm{}, find_contiguous_tranpose_gemm{},
find_commutative_broadcast{}); find_commutative_broadcast{});
match::find_matches(m, find_contiguous{}); // match::find_matches(m, find_contiguous{});
} }
} // namespace gpu } // namespace gpu
......
...@@ -133,6 +133,7 @@ std::vector<pass> target::get_passes(migraphx::context& gctx, const compile_opti ...@@ -133,6 +133,7 @@ std::vector<pass> target::get_passes(migraphx::context& gctx, const compile_opti
prefuse_ops{}, prefuse_ops{},
dead_code_elimination{}, dead_code_elimination{},
auto_contiguous{}, auto_contiguous{},
dead_code_elimination{},
optimize_module{}, optimize_module{},
fuse_pointwise{}, fuse_pointwise{},
dead_code_elimination{}, dead_code_elimination{},
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment