[GPU] fix issue of optimized out reorder during event sync (#20223)
* fix confliction * remove debug code * fix unit test failure * update condition of reorder check * apply the condition for only opt out reorder user
This commit is contained in:
parent
f617c2c38c
commit
2f067337f1
@ -685,6 +685,7 @@ void primitive_inst::do_runtime_skip_reorder() {
|
|||||||
GPU_DEBUG_TRACE_DETAIL << "[do runtime skip reorder] update shape for user " << u->id() << std::endl;
|
GPU_DEBUG_TRACE_DETAIL << "[do runtime skip reorder] update shape for user " << u->id() << std::endl;
|
||||||
u->update_shape();
|
u->update_shape();
|
||||||
u->update_shape_done_by_other = true;
|
u->update_shape_done_by_other = true;
|
||||||
|
|
||||||
if (u->_impl_params->get_input_layout() == u->_impl_params->get_output_layout()) {
|
if (u->_impl_params->get_input_layout() == u->_impl_params->get_output_layout()) {
|
||||||
std::function<void(std::vector<std::shared_ptr<primitive_inst>>)> update_memory_dependencies;
|
std::function<void(std::vector<std::shared_ptr<primitive_inst>>)> update_memory_dependencies;
|
||||||
update_memory_dependencies = [&](std::vector<std::shared_ptr<primitive_inst>> users) {
|
update_memory_dependencies = [&](std::vector<std::shared_ptr<primitive_inst>> users) {
|
||||||
@ -699,6 +700,10 @@ void primitive_inst::do_runtime_skip_reorder() {
|
|||||||
update_memory_dependencies(u->get_user_insts());
|
update_memory_dependencies(u->get_user_insts());
|
||||||
|
|
||||||
u->set_can_be_optimized(true);
|
u->set_can_be_optimized(true);
|
||||||
|
// Opt out reorder which has _needs_completion_event = true causes syncronization failed in dGPU.
|
||||||
|
if (_needs_completion_event == false && u->_needs_completion_event == true) {
|
||||||
|
_needs_completion_event = true;
|
||||||
|
}
|
||||||
GPU_DEBUG_TRACE_DETAIL << "[do runtime skip reorder] set user " << u->id() << " as can_be_optimized" << std::endl;
|
GPU_DEBUG_TRACE_DETAIL << "[do runtime skip reorder] set user " << u->id() << " as can_be_optimized" << std::endl;
|
||||||
} else {
|
} else {
|
||||||
GPU_DEBUG_TRACE_DETAIL << "[do runtime skip reorder] user " << u->id() << " cannot be optimized" << std::endl;
|
GPU_DEBUG_TRACE_DETAIL << "[do runtime skip reorder] user " << u->id() << " cannot be optimized" << std::endl;
|
||||||
|
Loading…
Reference in New Issue
Block a user