Bug Fix in F32 eltwise Api with post ops(clip, swish, relu_scale).

Description
1. In the cases of clip, swish, and relu_scale, constants are currently
   loaded as float. However, they are of C type, so handling has been
   adjusted, for integer these constants are first loaded as integer
   and then converted to float.

Change-Id: I176b805b69679df42be5745b6306f75e23de274d
This commit is contained in:
Deepak Negi
2025-04-09 18:01:37 +05:30
committed by Nallani Bhaskar
parent b9998a1d7f
commit f76f37cc11
4 changed files with 264 additions and 48 deletions

View File

@@ -379,6 +379,14 @@ GEN_GET_MATRIX_MUL_POST_OP_VAL(float,f32obf16)
GEN_GET_MATRIX_MUL_POST_OP_VAL(float,f32os8)
GEN_GET_MATRIX_MUL_POST_OP_VAL(float,f32ou8)
GEN_CLIP_POST_OP_VAL_FLOAT(bf16of32)
GEN_CLIP_POST_OP_VAL_FLOAT(bf16obf16)
GEN_CLIP_POST_OP_VAL_FLOAT(f32of32)
GEN_CLIP_POST_OP_VAL_FLOAT(f32obf16)
GEN_CLIP_POST_OP_VAL_INT(f32os32)
GEN_CLIP_POST_OP_VAL_INT(f32os8)
GEN_CLIP_POST_OP_VAL_INT(f32ou8)
GEN_MAT_MUL_GET_OUTPUT_TYPE_VALUE(float,float)
GEN_MAT_MUL_GET_OUTPUT_TYPE_VALUE(int32_t,float)
GEN_MAT_MUL_GET_OUTPUT_TYPE_VALUE(int8_t,float)
@@ -521,17 +529,11 @@ void eltwise_ops_accuracy_check_driver_ ## LP_SFX \
CLIP ) /* CLIP*/ \
{ \
temp_accum = \
min \
( \
max \
( \
temp_accum, \
*( ( ACCUM_type* ) \
( post_op->eltwise + ele_i )->algo.alpha ) \
), \
*( ( ACCUM_type* ) \
( post_op->eltwise + ele_i )->algo.beta) \
); \
GEN_FUNC_NAME(get_clip_post_op_val_,LP_SFX) \
( temp_accum, \
( post_op->eltwise + ele_i )->algo.alpha, \
( post_op->eltwise + ele_i )->algo.beta \
); \
ele_i += 1; \
} \
else \

View File

@@ -412,6 +412,7 @@ static inline ACCUM_type get_bias_post_op_val_ ## BLAS_SFX \
return *( ( ACCUM_type* )post_op_bias_ptr + j ); \
} \
/* GELU TANH */
#define GEN_GELU_TANH_POSTOP_FLOAT(BLAS_SFX) \
static inline float GELU_TANH_post_op_ ## BLAS_SFX \
( \