diff --git a/src/plugins/intel_gpu/src/graph/program.cpp b/src/plugins/intel_gpu/src/graph/program.cpp index 5f6df98ff83063..4b0cc049013ada 100644 --- a/src/plugins/intel_gpu/src/graph/program.cpp +++ b/src/plugins/intel_gpu/src/graph/program.cpp @@ -517,7 +517,10 @@ void program::init_graph() { apply_opt_pass(); apply_opt_pass(); - + for (auto& node : processing_order) { + if (!node->is_type()) + node->get_output_layouts(); + } // Perform initial shape_of subgraphs markup apply_opt_pass(); } @@ -533,10 +536,6 @@ void program::pre_optimize_graph(bool is_internal) { processing_order.calculate_BFS_processing_order(); // this method makes sense only for OOOQ (out of order execution queue) bool output_size_handling_enabled = analyze_output_size_handling_need(); - for (auto& node : processing_order) { - if (!node->is_type()) - node->get_output_layouts(); - } bool optimize_data = _config.get_property(ov::intel_gpu::optimize_data); if (optimize_data) { diff --git a/src/plugins/intel_gpu/src/plugin/ops/loop.cpp b/src/plugins/intel_gpu/src/plugin/ops/loop.cpp index c5ae7bbdef56a8..bb11308064f7e7 100644 --- a/src/plugins/intel_gpu/src/plugin/ops/loop.cpp +++ b/src/plugins/intel_gpu/src/plugin/ops/loop.cpp @@ -30,8 +30,14 @@ namespace intel_gpu { template static DATA_TYPE CreateScalarData(ProgramBuilder &p, const cldnn::primitive_id& id, ov::Shape& shape, cldnn::data_types dtype, int64_t num, int64_t rank) { auto mem = p.get_engine().allocate_memory({ shape, dtype, cldnn::format::get_default_format(rank) }); - cldnn::mem_lock ptr{mem, p.get_engine().get_service_stream()}; - *ptr.begin() = num; + if (dtype == cldnn::data_types::i32) { + cldnn::mem_lock ptr{mem, p.get_engine().get_service_stream()}; + *ptr.begin() = static_cast(num); + } else { + cldnn::mem_lock ptr{mem, p.get_engine().get_service_stream()}; + *ptr.begin() = num; + } + return {id, mem}; } diff --git a/src/plugins/intel_gpu/tests/unit/passes/test_module_fusing_reorder.cpp b/src/plugins/intel_gpu/tests/unit/passes/test_module_fusing_reorder.cpp index 5e36ae2ea4bdc0..55521484685f67 100644 --- a/src/plugins/intel_gpu/tests/unit/passes/test_module_fusing_reorder.cpp +++ b/src/plugins/intel_gpu/tests/unit/passes/test_module_fusing_reorder.cpp @@ -266,7 +266,7 @@ TEST_P(test_can_fuse_reorder_onednn, reorder_for_firstconv_onednn) layout conv_layout(p.input_data_type, p.output_format, p.out_shape, padding({0, }, 0)); layout reorder_layout(p.output_data_type, p.output_format, p.out_shape, padding({0, }, 0)); auto input = engine.allocate_memory({ p.input_data_type, p.input_format, p.in_shape }); - auto weights = engine.allocate_memory({ p.input_data_type, p.input_format, p.weight_shape }); + auto weights = engine.allocate_memory({ p.input_data_type, p.weights_format, p.weight_shape }); topology.add(input_layout("input", input->get_layout())); topology.add(data("weights", weights)); @@ -298,9 +298,9 @@ TEST_P(test_can_fuse_reorder_onednn, reorder_for_firstconv_onednn) INSTANTIATE_TEST_SUITE_P(testing_can_fuse_reorder_first_conv, test_can_fuse_reorder_onednn, ::testing::ValuesIn(std::vector{ reorder_test_param{format::bs_fs_yx_bsv8_fsv4, format::b_fs_yx_fsv32, data_types::f32, data_types::u8, {1, 3, 8, 8}, {1, 32, 8, 8}, {1, 3, 1, 1}, - tensor{1}, tensor{0}, data_types::u8, format::goiyx, true}, + tensor{1}, tensor{0}, data_types::u8, format::oiyx, true}, reorder_test_param{format::bs_fs_yx_bsv8_fsv2, format::b_fs_yx_fsv16, data_types::f32, data_types::f16, {1, 3, 8, 8}, {1, 32, 8, 8}, {1, 3, 1, 1}, - tensor{1}, tensor{0}, data_types::f16, format::goiyx, true}, + tensor{1}, tensor{0}, data_types::f16, format::oiyx, true}, })); class can_fuse_reorder : public ::testing::TestWithParam> {};