Commit 5a2b89fc authored by turneram's avatar turneram
Browse files

Only apply to bs>1; wip fuse dot add

parent ab236eec
...@@ -802,6 +802,9 @@ struct find_conv_dot_horiz_fusion ...@@ -802,6 +802,9 @@ struct find_conv_dot_horiz_fusion
int axis = 1; int axis = 1;
int concat_axis = 0; int concat_axis = 0;
if(name == "dot") if(name == "dot")
{
std::cout << ins->get_shape().lens().front() << std::endl;
if(ins->get_shape().lens().front() > 1)
{ {
axis = int(args.front()->get_shape().lens().size() - 1); axis = int(args.front()->get_shape().lens().size() - 1);
concat_axis = axis - 1; concat_axis = axis - 1;
...@@ -822,8 +825,15 @@ struct find_conv_dot_horiz_fusion ...@@ -822,8 +825,15 @@ struct find_conv_dot_horiz_fusion
input); input);
auto fused = m.insert_instruction(std::next(reshape), op, reshape, concat); auto fused = m.insert_instruction(std::next(reshape), op, reshape, concat);
int64_t offset = 0; int64_t offset = 0;
std::vector<instruction_ref> add_args;
instruction_ref next_ins;
for(auto arg : range(start, last)) for(auto arg : range(start, last))
{ {
auto aarg = std::next(std::next(arg));
while(aarg->name() != "add")
aarg = std::next(aarg);
aarg->debug_print();
add_args.push_back(aarg->inputs().front());
fused = m.insert_instruction( fused = m.insert_instruction(
std::next(fused), std::next(fused),
make_op("reshape", make_op("reshape",
...@@ -837,9 +847,16 @@ struct find_conv_dot_horiz_fusion ...@@ -837,9 +847,16 @@ struct find_conv_dot_horiz_fusion
fused); fused);
offset += len; offset += len;
} }
m.debug_print();
return; return;
} }
else
{
axis = int(args.front()->get_shape().lens().size() - 1);
concat_axis = axis;
}
}
for(auto arg : args) for(auto arg : args)
m.move_instructions(arg, input); m.move_instructions(arg, input);
......
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