@@ -292,6 +292,43 @@ TEST(fully_connected_gpu, no_biases_int8) {
292
292
ASSERT_EQ (-52 .0f , output_ptr[3 ]);
293
293
}
294
294
295
+ TEST (fully_connected_gpu, no_biases_fc_i32_reorder_f16) {
296
+ const int32_t input_f = 2 , input_b = 1 , // size of the whole input buffer
297
+ weight_b = 1 , weight_f = 2 ; // size of the whole weights buffer
298
+
299
+ auto & engine = get_test_engine ();
300
+
301
+ auto input_prim = engine.allocate_memory ({ data_types::i32, format::bfyx, { input_b, input_f, 1 , 1 } });
302
+ auto weights_prim = engine.allocate_memory ({ data_types::i32, format::bfyx, { weight_b, weight_f, 1 , 1 } });
303
+
304
+ set_values<int32_t >(input_prim, { 1 , 1 });
305
+ set_values<int32_t >(weights_prim, { 1 , 1 });
306
+
307
+ cldnn::topology topology{
308
+ input_layout (" input" , input_prim->get_layout ()),
309
+ data (" weights" , weights_prim),
310
+ fully_connected (" fc_prim" , input_info (" input" ), " weights" ),
311
+ reorder (" reorder_to_f16" , input_info (" fc_prim" ), { data_types::f16, format::bfyx, { input_b, weight_b, 1 , 1 } }),
312
+ activation (" output" , input_info (" reorder_to_f16" ), activation_func::floor )
313
+ };
314
+
315
+ ExecutionConfig config = get_test_default_config (engine);
316
+ config.set_property (ov::intel_gpu::optimize_data (true ));
317
+ config.set_property (ov::intel_gpu::allow_new_shape_infer (true ));
318
+
319
+ cldnn::network network (engine, topology, config);
320
+
321
+ network.set_input_data (" input" , input_prim);
322
+
323
+ auto outputs = network.execute ();
324
+ ASSERT_EQ (outputs.size (), size_t (1 ));
325
+ ASSERT_EQ (outputs.begin ()->first , " output" );
326
+
327
+ auto output_prim = outputs.begin ()->second .get_memory ();
328
+ cldnn::mem_lock<ov::float16> output_ptr (output_prim, get_test_stream ());
329
+ ASSERT_EQ (2 , output_ptr[0 ]);
330
+ }
331
+
295
332
TEST (fully_connected_gpu, xb_f32_batch_1) {
296
333
// Input : 3x1
297
334
// Output : 4x1
0 commit comments