Commit 6c7065c3 authored by Paul's avatar Paul
Browse files

Dont schedule in wait

parent d416bfe4
......@@ -264,10 +264,9 @@ void schedule::apply(program& p) const
if(not si.has_stream(ins))
continue;
auto stream = si.get_stream(ins);
model.schedule_instruction(p, ins, stream);
if(si.is_merge_point(ins, stream))
model.wait(p, ins, stream, si.wait_for(ins));
else
model.schedule_instruction(p, ins, stream);
}
// Add memory conflicts
......
......@@ -20,7 +20,7 @@ struct schedule_model
void schedule_instruction(program& p, instruction_ref ins, std::size_t n) const;
void wait(program& p,
instruction_ref ins,
std::size_t wait_on,
std::size_t,
const std::vector<std::size_t>& wait_for) const;
std::size_t weight(const operation& op) const;
};
......
......@@ -51,6 +51,7 @@ struct wait_event
return i == ctx.get_current_device().stream_id();
}));
(void)ctx;
assert(not wait_for.empty());
event = create_event();
}
};
......@@ -91,10 +92,9 @@ void schedule_model::schedule_instruction(program& p, instruction_ref ins, std::
}
void schedule_model::wait(program& p,
instruction_ref ins,
std::size_t wait_on,
std::size_t,
const std::vector<std::size_t>& wait_for) const
{
this->schedule_instruction(p, ins, wait_on);
p.insert_instruction(ins, wait_event{wait_for});
}
......
......@@ -62,6 +62,7 @@ struct wait_event
const migraphx::shape&,
const std::vector<migraphx::argument>&) const
{
assert(not wait_for.empty());
return {};
}
};
......@@ -79,10 +80,9 @@ struct schedule_model_test
}
void wait(migraphx::program& p,
migraphx::instruction_ref ins,
std::size_t wait_on,
std::size_t,
const std::vector<std::size_t>& wait_for) const
{
(*ins2stream)[ins] = wait_on;
p.insert_instruction(ins, wait_event{wait_for});
}
std::size_t weight(const migraphx::operation& op) const
......
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