| @@ -72,6 +72,8 @@ TEST(ARM_RUNTIME, CPUINFO_SDM8150) { | |||||
| ASSERT_TRUE(cpuinfo_has_arm_neon_dot()); | ASSERT_TRUE(cpuinfo_has_arm_neon_dot()); | ||||
| ASSERT_FALSE(cpuinfo_has_arm_i8mm()); | |||||
| for (uint32_t i = 0; i < cpuinfo_get_processors_count(); i++) { | for (uint32_t i = 0; i < cpuinfo_get_processors_count(); i++) { | ||||
| ASSERT_EQ(cpuinfo_get_core(i), cpuinfo_get_processor(i)->core); | ASSERT_EQ(cpuinfo_get_core(i), cpuinfo_get_processor(i)->core); | ||||
| } | } | ||||
| @@ -148,6 +150,74 @@ TEST(ARM_RUNTIME, CPUINFO_SDM660) { | |||||
| } | } | ||||
| } | } | ||||
| TEST(ARM_RUNTIME, CPUINFO_TAISHAN) { | |||||
| ASSERT_TRUE(cpuinfo_initialize()); | |||||
| bool right_soc = | |||||
| cpuinfo_get_processors_count() == 96 && | |||||
| cpuinfo_get_processor(0)->core->uarch == cpuinfo_uarch_taishan_v110; | |||||
| if (right_soc) { | |||||
| ASSERT_TRUE(cpuinfo_get_processors()); | |||||
| ASSERT_TRUE(cpuinfo_has_arm_neon()); | |||||
| ASSERT_TRUE(cpuinfo_has_arm_neon_fp16()); | |||||
| ASSERT_TRUE(cpuinfo_has_arm_neon_fma()); | |||||
| ASSERT_TRUE(cpuinfo_has_arm_neon_dot()); | |||||
| ASSERT_FALSE(cpuinfo_has_arm_i8mm()); | |||||
| for (uint32_t i = 0; i < cpuinfo_get_processors_count(); i++) { | |||||
| ASSERT_EQ(cpuinfo_get_core(i), cpuinfo_get_processor(i)->core); | |||||
| } | |||||
| for (uint32_t i = 0; i < cpuinfo_get_cores_count(); i++) { | |||||
| ASSERT_EQ(cpuinfo_vendor_huawei, cpuinfo_get_core(i)->vendor); | |||||
| } | |||||
| } else { | |||||
| printf("detect soc: %s ,skip test.\n", cpuinfo_get_package(0)->name); | |||||
| } | |||||
| } | |||||
| TEST(ARM_RUNTIME, CPUINFO_SDM8GEN1) { | |||||
| ASSERT_TRUE(cpuinfo_initialize()); | |||||
| bool right_soc = | |||||
| cpuinfo_get_processors_count() == 8 && | |||||
| cpuinfo_get_processor(0)->core->uarch == cpuinfo_uarch_cortex_x2 && | |||||
| cpuinfo_get_processor(1)->core->uarch == cpuinfo_uarch_cortex_a710 && | |||||
| cpuinfo_get_processor(7)->core->uarch == cpuinfo_uarch_cortex_a510; | |||||
| if (right_soc) { | |||||
| ASSERT_TRUE(cpuinfo_get_processors()); | |||||
| ASSERT_TRUE(cpuinfo_has_arm_neon()); | |||||
| ASSERT_TRUE(cpuinfo_has_arm_neon_fp16()); | |||||
| ASSERT_TRUE(cpuinfo_has_arm_neon_fma()); | |||||
| ASSERT_TRUE(cpuinfo_has_arm_neon_dot()); | |||||
| ASSERT_FALSE(cpuinfo_has_arm_sve2()); | |||||
| ASSERT_TRUE(cpuinfo_has_arm_i8mm()); | |||||
| for (uint32_t i = 0; i < cpuinfo_get_processors_count(); i++) { | |||||
| ASSERT_EQ(cpuinfo_get_core(i), cpuinfo_get_processor(i)->core); | |||||
| } | |||||
| for (uint32_t i = 0; i < cpuinfo_get_cores_count(); i++) { | |||||
| ASSERT_EQ(cpuinfo_vendor_arm, cpuinfo_get_core(i)->vendor); | |||||
| } | |||||
| } else { | |||||
| printf("detect soc: %s ,skip test.\n", cpuinfo_get_package(0)->name); | |||||
| } | |||||
| } | |||||
| } // namespace test | } // namespace test | ||||
| } // namespace megdnn | } // namespace megdnn | ||||
| #endif | #endif | ||||