You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello, currently in armv7a platform test case f16-vcmul-test, some test functions may crash with Signal 7 error, but I am not sure if it is a bug. Please help me.
TEST(F16_VCMUL__NEONFP16ARITH_U8, batch_lt_8)
TEST(F16_VCMUL__NEONFP16ARITH_U8, batch_gt_8)
TEST(F16_VCMUL__NEONFP16ARITH_U8, inplace_a)
TEST(F16_VCMUL__NEONFP16ARITH_U8, inplace_b)
TEST(F16_VCMUL__NEONFP16ARITH_U8, inplace_a_and_b)
TEST(F16_VCMUL__NEONFP16ARITH_U16, batch_lt_16)
TEST(F16_VCMUL__NEONFP16ARITH_U16, batch_gt_16)
TEST(F16_VCMUL__NEONFP16ARITH_U16, inplace_a)
TEST(F16_VCMUL__NEONFP16ARITH_U16, inplace_b)
TEST(F16_VCMUL__NEONFP16ARITH_U16, inplace_a_and_b)
TEST(F16_VCMUL__NEONFP16ARITH_U32, batch_lt_32)
TEST(F16_VCMUL__NEONFP16ARITH_U32, batch_gt_32)
TEST(F16_VCMUL__NEONFP16ARITH_U32, inplace_a)
TEST(F16_VCMUL__NEONFP16ARITH_U32, inplace_b)
TEST(F16_VCMUL__NEONFP16ARITH_U32, inplace_a_and_b)
Log analysis: In the source code of xnnpack, the void xnn_f16_vcmul_ukernel_neonfp16Arith_u8 function requires a 4-byte aligned address (memory address should be a multiple of 4) when converting the (uint16_t *) type address to (uint32_t *) type. Otherwise, there may be memory address misaligned access issues, leading to a crash and immediate exit with a Signal 7 error.
Hello, currently in armv7a platform test case f16-vcmul-test, some test functions may crash with Signal 7 error, but I am not sure if it is a bug. Please help me.
TEST(F16_VCMUL__NEONFP16ARITH_U8, batch_lt_8)
TEST(F16_VCMUL__NEONFP16ARITH_U8, batch_gt_8)
TEST(F16_VCMUL__NEONFP16ARITH_U8, inplace_a)
TEST(F16_VCMUL__NEONFP16ARITH_U8, inplace_b)
TEST(F16_VCMUL__NEONFP16ARITH_U8, inplace_a_and_b)
TEST(F16_VCMUL__NEONFP16ARITH_U16, batch_lt_16)
TEST(F16_VCMUL__NEONFP16ARITH_U16, batch_gt_16)
TEST(F16_VCMUL__NEONFP16ARITH_U16, inplace_a)
TEST(F16_VCMUL__NEONFP16ARITH_U16, inplace_b)
TEST(F16_VCMUL__NEONFP16ARITH_U16, inplace_a_and_b)
TEST(F16_VCMUL__NEONFP16ARITH_U32, batch_lt_32)
TEST(F16_VCMUL__NEONFP16ARITH_U32, batch_gt_32)
TEST(F16_VCMUL__NEONFP16ARITH_U32, inplace_a)
TEST(F16_VCMUL__NEONFP16ARITH_U32, inplace_b)
TEST(F16_VCMUL__NEONFP16ARITH_U32, inplace_a_and_b)
Log analysis: In the source code of xnnpack, the void xnn_f16_vcmul_ukernel_neonfp16Arith_u8 function requires a 4-byte aligned address (memory address should be a multiple of 4) when converting the (uint16_t *) type address to (uint32_t *) type. Otherwise, there may be memory address misaligned access issues, leading to a crash and immediate exit with a Signal 7 error.
1、Related source file path:
XNNPACK/src/f16-vcmul/gen/f16-vcmul-neonfp16arith-u8.c
XNNPACK/src/f16-vcmul/gen/f16-vcmul-neonfp16arith-u16.c
XNNPACK/src/f16-vcmul/gen/f16-vcmul-neonfp16arith-u32.c
2、Declaration of failed function:
void xnn_f16_vcmul_ukernel__neonfp16arith_u8(
size_t batch,
const void* input_a,
const void* input_b,
void* output,
const union xnn_f16_default_params params[restrict XNN_MIN_ELEMENTS(1)]) XNN_OOB_READS
void xnn_f16_vcmul_ukernel__neonfp16arith_u16(
size_t batch,
const void* input_a,
const void* input_b,
void* output,
const union xnn_f16_default_params params[restrict XNN_MIN_ELEMENTS(1)]) XNN_OOB_READS
void xnn_f16_vcmul_ukernel__neonfp16arith_u32(
size_t batch,
const void* input_a,
const void* input_b,
void* output,
const union xnn_f16_default_params params[restrict XNN_MIN_ELEMENTS(1)]) XNN_OOB_READS
3、Call logic for failed functions:
// Call optimized micro-kernel.
vcmul(batch_size() * sizeof(uint16_t), a_data, b_data, y.data(), init_params != nullptr ? ¶ms : nullptr);
// Call optimized micro-kernel.
vcmul(batch_size() * sizeof(float), a_data, b_data, y.data(), init_params != nullptr ? ¶ms : nullptr);
The text was updated successfully, but these errors were encountered: