@@ -316,6 +316,43 @@ TEST(fully_connected_gpu, no_biases_int8) {
316
316
ASSERT_EQ (-52 .0f , output_ptr[3 ]);
317
317
}
318
318
319
+ TEST (fully_connected_gpu, no_biases_fc_i32_reorder_f16) {
320
+ const int32_t input_f = 2 , input_b = 1 , // size of the whole input buffer
321
+ weight_b = 1 , weight_f = 2 ; // size of the whole weights buffer
322
+
323
+ auto & engine = get_test_engine ();
324
+
325
+ auto input_prim = engine.allocate_memory ({ data_types::i32, format::bfyx, { input_b, input_f, 1 , 1 } });
326
+ auto weights_prim = engine.allocate_memory ({ data_types::i32, format::bfyx, { weight_b, weight_f, 1 , 1 } });
327
+
328
+ set_values<int32_t >(input_prim, { 1 , 1 });
329
+ set_values<int32_t >(weights_prim, { 1 , 1 });
330
+
331
+ cldnn::topology topology{
332
+ input_layout (" input" , input_prim->get_layout ()),
333
+ data (" weights" , weights_prim),
334
+ fully_connected (" fc_prim" , input_info (" input" ), " weights" ),
335
+ reorder (" reorder_to_f16" , input_info (" fc_prim" ), { data_types::f16, format::bfyx, { input_b, weight_b, 1 , 1 } }),
336
+ activation (" output" , input_info (" reorder_to_f16" ), activation_func::floor )
337
+ };
338
+
339
+ ExecutionConfig config = get_test_default_config (engine);
340
+ config.set_property (ov::intel_gpu::optimize_data (true ));
341
+ config.set_property (ov::intel_gpu::allow_new_shape_infer (true ));
342
+
343
+ cldnn::network network (engine, topology, config);
344
+
345
+ network.set_input_data (" input" , input_prim);
346
+
347
+ auto outputs = network.execute ();
348
+ ASSERT_EQ (outputs.size (), size_t (1 ));
349
+ ASSERT_EQ (outputs.begin ()->first , " output" );
350
+
351
+ auto output_prim = outputs.begin ()->second .get_memory ();
352
+ cldnn::mem_lock<ov::float16> output_ptr (output_prim, get_test_stream ());
353
+ ASSERT_EQ (2 , output_ptr[0 ]);
354
+ }
355
+
319
356
TEST (fully_connected_gpu, xb_f32_batch_1) {
320
357
// Input : 3x1
321
358
// Output : 4x1
0 commit comments