diff --git a/lite/backends/arm/math/packed_sgemm.cc b/lite/backends/arm/math/packed_sgemm.cc old mode 100644 new mode 100755 diff --git a/lite/core/device_info.cc b/lite/core/device_info.cc index cd135f85b3b55641ae1996b2d3b933e1da7870dc..0cf13ab6996df09f76d32e9482455a87d53a5e15 100644 --- a/lite/core/device_info.cc +++ b/lite/core/device_info.cc @@ -176,6 +176,9 @@ void get_cpu_arch(std::vector* archs, const int cpu_num) { case 0xd0a: arch_type = kA75; break; + case 0xd0d: + arch_type = kA77; + break; case 0xd40: arch_type = kA76; break; @@ -637,6 +640,20 @@ void DeviceInfo::SetArchInfo(int argc, ...) { bool DeviceInfo::SetCPUInfoByName() { /* Snapdragon */ + if (dev_name_.find("KONA") != std::string::npos) { // 865 + core_num_ = 8; + core_ids_ = {0, 1, 2, 3, 4, 5, 6, 7}; + big_core_ids_ = {4, 5, 6, 7}; + little_core_ids_ = {0, 1, 2, 3}; + cluster_ids_ = {1, 1, 1, 1, 0, 0, 0, 0}; + SetArchInfo(2, kA77, kA55); + SetCacheInfo(0, 2, 192 * 1024, 256 * 1024); + SetCacheInfo(1, 2, 768 * 1024, 512 * 1024); + SetCacheInfo(2, 1, 4 * 1024 * 1024); + SetFP16Info(1, 1); + SetDotInfo(2, 1, 1); + return true; + } if (dev_name_.find("SM8150") != std::string::npos) { // 855 core_num_ = 8; core_ids_ = {0, 1, 2, 3, 4, 5, 6, 7}; diff --git a/lite/core/device_info.h b/lite/core/device_info.h index 53d22ef90e44c9a8230df0e0cb2667e519405a71..bc82245c8d47379901f6454aecedea5842ce1973 100644 --- a/lite/core/device_info.h +++ b/lite/core/device_info.h @@ -40,6 +40,8 @@ typedef enum { kA73 = 73, kA75 = 75, kA76 = 76, + kA77 = 77, + kA78 = 78, kARMArch_UNKOWN = -1 } ARMArch;