Merged
Ascend 910B 芯片支持加载 cann-hcomm-compat.tar.gz #2889
pantongAdd on Jun 16
Ascend 910B 芯片支持加载 cann-hcomm-compat.tar.gz #2889
Merged
pantongAdd on Jun 16
Total: 3 files changed+37-12
@@ -93,7 +93,7 @@ namespace tsd {
93 93 
94 constexpr uint32_t TSD_SUPPORT_COMMON_SINK_PKG_CONFIG = 8U;94 constexpr uint32_t TSD_SUPPORT_COMMON_SINK_PKG_CONFIG = 8U;
95 95 
96- constexpr uint32_t TSD_SUPPORT_CANN_TSCH_COMPAT = 9U;96+ constexpr uint32_t TSD_SUPPORT_CANN_HCOMM_COMPAT_910B = 9U;
97 97 
98 constexpr uint32_t MAX_DEVNUM_PER_OS = 64U; // 当前单OS上芯片最大数是64个98 constexpr uint32_t MAX_DEVNUM_PER_OS = 64U; // 当前单OS上芯片最大数是64个
99 99 
@@ -65,7 +65,7 @@ const std::map<std::string, std::vector<tsd::ChipType_t>> PKG_CHIP_SUPPORT_MAP =
65 {"aicpu_hccl.tar.gz", {tsd::CHIP_ASCEND_910B, tsd::CHIP_ASCEND_950, tsd::CHIP_CLOUD_V5, tsd::CHIP_ASCEND_350}},65 {"aicpu_hccl.tar.gz", {tsd::CHIP_ASCEND_910B, tsd::CHIP_ASCEND_950, tsd::CHIP_CLOUD_V5, tsd::CHIP_ASCEND_350}},
66 {"mc2_server.tar.gz", {tsd::CHIP_ASCEND_950, tsd::CHIP_ASCEND_350}},66 {"mc2_server.tar.gz", {tsd::CHIP_ASCEND_950, tsd::CHIP_ASCEND_350}},
67 {"aicpu_hcomm.tar.gz", {tsd::CHIP_DC, tsd::CHIP_ASCEND_910B, tsd::CHIP_ASCEND_950, tsd::CHIP_ASCEND_350, tsd::CHIP_CLOUD_V5}},67 {"aicpu_hcomm.tar.gz", {tsd::CHIP_DC, tsd::CHIP_ASCEND_910B, tsd::CHIP_ASCEND_950, tsd::CHIP_ASCEND_350, tsd::CHIP_CLOUD_V5}},
68- {"cann-hcomm-compat.tar.gz", {tsd::CHIP_ASCEND_950, tsd::CHIP_ASCEND_350, tsd::CHIP_CLOUD_V5}},68+ {"cann-hcomm-compat.tar.gz", {tsd::CHIP_ASCEND_910B, tsd::CHIP_ASCEND_950, tsd::CHIP_ASCEND_350, tsd::CHIP_CLOUD_V5}},
69 {HCCD_PKG_NAME, {tsd::CHIP_ASCEND_910B}},69 {HCCD_PKG_NAME, {tsd::CHIP_ASCEND_910B}},
70 {"cann-tsch-compat.tar.gz", {}},70 {"cann-tsch-compat.tar.gz", {}},
71 {UDF_PKG_NAME, {tsd::CHIP_ASCEND_910B}},71 {UDF_PKG_NAME, {tsd::CHIP_ASCEND_910B}},
@@ -2306,8 +2306,10 @@ TSD_StatusT ProcessModeManager::LoadSinglePackageToDevice(const std::string &pkg
2306 TSD_RUN_INFO("current package:%s does not need to load to device:%u", pkgPureName.c_str(), logicDeviceId_);2306 TSD_RUN_INFO("current package:%s does not need to load to device:%u", pkgPureName.c_str(), logicDeviceId_);
2307 return TSD_OK;2307 return TSD_OK;
2308 }2308 }
2309- if ((pkgPureName == "cann-tsch-compat.tar.gz") && (!IsSupportCommonInterface(TSD_SUPPORT_CANN_TSCH_COMPAT))) {2309+ const uint32_t currentChipType = GetPlatInfoChipType();
2310- TSD_RUN_INFO("device does not support cann-tsch-compat package, skip load to device:%u", logicDeviceId_);2310+ if ((pkgPureName == "cann-hcomm-compat.tar.gz") && (currentChipType == tsd::CHIP_ASCEND_910B) &&
2311+ (!IsSupportCommonInterface(TSD_SUPPORT_CANN_HCOMM_COMPAT_910B))) {
2312+ TSD_RUN_INFO("device does not support cann-hcomm-compat package, skip load to device:%u", logicDeviceId_);
2311 return TSD_OK;2313 return TSD_OK;
2312 }2314 }
2313 if (pkgConInst->GetPkgHostAndDeviceDstPath(pkgPureName, orgFile, dstFile, procSign_.tgid) != TSD_OK) {2315 if (pkgConInst->GetPkgHostAndDeviceDstPath(pkgPureName, orgFile, dstFile, procSign_.tgid) != TSD_OK) {
@@ -2876,38 +2876,61 @@ TEST_F(ProcessManagerTest, LoadPackageToDeviceByConfig_Success)
2876 EXPECT_EQ(processModeManager.LoadPackageToDeviceByConfig(), TSD_OK);2876 EXPECT_EQ(processModeManager.LoadPackageToDeviceByConfig(), TSD_OK);
2877}2877}
2878 2878 
2879-TEST_F(ProcessManagerTest, LoadSinglePackageToDevice_TschCompat_NotSupported_Skip)2879+TEST_F(ProcessManagerTest, LoadSinglePackageToDevice_HcommCompat_910B_NotSupported_Skip)
2880{2880{
2881+ // 910B 芯片 + device 不支持 TSD_SUPPORT_CANN_HCOMM_COMPAT_910B 能力位时,
2882+ // cann-hcomm-compat.tar.gz 应被跳过加载,返回 TSD_OK,且不会进入下发流程。
2881 ProcessModeManager processModeManager(deviceId, 0);2883 ProcessModeManager processModeManager(deviceId, 0);
2882 PackConfDetail detail = {};2884 PackConfDetail detail = {};
2883 detail.loadAsPerSocFlag = true;2885 detail.loadAsPerSocFlag = true;
2886+ MOCKER_CPP(&ProcessModeManager::GetPlatInfoChipType)
2887+ .stubs().will(returnValue(static_cast<uint32_t>(tsd::CHIP_ASCEND_910B)));
2884 MOCKER_CPP(&ProcessModeManager::IsSupportCommonInterface).stubs().will(returnValue(false));2888 MOCKER_CPP(&ProcessModeManager::IsSupportCommonInterface).stubs().will(returnValue(false));
2885 MOCKER_CPP(&PackageProcessConfig::GetPkgHostAndDeviceDstPath).stubs().will(returnValue(TSD_OK));2889 MOCKER_CPP(&PackageProcessConfig::GetPkgHostAndDeviceDstPath).stubs().will(returnValue(TSD_OK));
2886 MOCKER_CPP(&ProcessModeManager::CompareAndSendCommonSinkPkg)2890 MOCKER_CPP(&ProcessModeManager::CompareAndSendCommonSinkPkg)
2887 .expects(mockcpp::never()).will(returnValue(TSD_OK));2891 .expects(mockcpp::never()).will(returnValue(TSD_OK));
2888- EXPECT_EQ(processModeManager.LoadSinglePackageToDevice("cann-tsch-compat.tar.gz", detail, 0, ""), TSD_OK);2892+ EXPECT_EQ(processModeManager.LoadSinglePackageToDevice("cann-hcomm-compat.tar.gz", detail, 0, ""), TSD_OK);
2889}2893}
2890 2894 
2891-TEST_F(ProcessManagerTest, LoadSinglePackageToDevice_TschCompat_Supported_PassesGate)2895+TEST_F(ProcessManagerTest, LoadSinglePackageToDevice_HcommCompat_910B_Supported_PassesGate)
2892{2896{
2893- // 当 IsSupportCommonInterface 返回 true 时,不在 TSCH_COMPAT 门控处提前返回,2897+ // 910B 芯片 + device 支持该能力位时,不在门控处提前返回,而是继续后续流程;
2894- // 而是继续后续流程;此处用 GetPkgHostAndDeviceDstPath 返回错误来观测是否“穿过门控”。2898+ // 此处用 GetPkgHostAndDeviceDstPath 返回错误来观测是否“穿过门控”。
2895 ProcessModeManager processModeManager(deviceId, 0);2899 ProcessModeManager processModeManager(deviceId, 0);
2896 PackConfDetail detail = {};2900 PackConfDetail detail = {};
2897 detail.loadAsPerSocFlag = true;2901 detail.loadAsPerSocFlag = true;
2902+ MOCKER_CPP(&ProcessModeManager::GetPlatInfoChipType)
2903+ .stubs().will(returnValue(static_cast<uint32_t>(tsd::CHIP_ASCEND_910B)));
2898 MOCKER_CPP(&ProcessModeManager::IsSupportCommonInterface).stubs().will(returnValue(true));2904 MOCKER_CPP(&ProcessModeManager::IsSupportCommonInterface).stubs().will(returnValue(true));
2899 MOCKER_CPP(&PackageProcessConfig::GetPkgHostAndDeviceDstPath)2905 MOCKER_CPP(&PackageProcessConfig::GetPkgHostAndDeviceDstPath)
2900 .stubs().will(returnValue(static_cast<uint32_t>(TSD_INTERNAL_ERROR)));2906 .stubs().will(returnValue(static_cast<uint32_t>(TSD_INTERNAL_ERROR)));
2901- EXPECT_EQ(processModeManager.LoadSinglePackageToDevice("cann-tsch-compat.tar.gz", detail, 0, ""),2907+ EXPECT_EQ(processModeManager.LoadSinglePackageToDevice("cann-hcomm-compat.tar.gz", detail, 0, ""),
2902 TSD_INTERNAL_ERROR);2908 TSD_INTERNAL_ERROR);
2903}2909}
2904 2910 
2905-TEST_F(ProcessManagerTest, LoadSinglePackageToDevice_OtherPkg_NotGatedByTschCompatBit)2911+TEST_F(ProcessManagerTest, LoadSinglePackageToDevice_HcommCompat_NonChip910B_NotGated)
2906{2912{
2907- // 即使 TSD_SUPPORT_CANN_TSCH_COMPAT 视为不支持,其他包也不应被该位拦截。2913+ // 非 910B 芯片时不受该能力位门控,即使 device 不支持也应穿过门控继续后续流程。
2908 ProcessModeManager processModeManager(deviceId, 0);2914 ProcessModeManager processModeManager(deviceId, 0);
2909 PackConfDetail detail = {};2915 PackConfDetail detail = {};
2910 detail.loadAsPerSocFlag = true;2916 detail.loadAsPerSocFlag = true;
2917+ MOCKER_CPP(&ProcessModeManager::GetPlatInfoChipType)
2918+ .stubs().will(returnValue(static_cast<uint32_t>(tsd::CHIP_ASCEND_950)));
2919+ MOCKER_CPP(&ProcessModeManager::IsSupportCommonInterface).stubs().will(returnValue(false));
2920+ MOCKER_CPP(&PackageProcessConfig::GetPkgHostAndDeviceDstPath)
2921+ .stubs().will(returnValue(static_cast<uint32_t>(TSD_INTERNAL_ERROR)));
2922+ EXPECT_EQ(processModeManager.LoadSinglePackageToDevice("cann-hcomm-compat.tar.gz", detail, 0, ""),
2923+ TSD_INTERNAL_ERROR);
2924+}
2925+ 
2926+TEST_F(ProcessManagerTest, LoadSinglePackageToDevice_OtherPkg_NotGatedByHcommCompatBit)
2927+{
2928+ // 非 cann-hcomm-compat.tar.gz 的包不受该能力位门控,即使在 910B 且 device 不支持也应穿过门控。
2929+ ProcessModeManager processModeManager(deviceId, 0);
2930+ PackConfDetail detail = {};
2931+ detail.loadAsPerSocFlag = true;
2932+ MOCKER_CPP(&ProcessModeManager::GetPlatInfoChipType)
2933+ .stubs().will(returnValue(static_cast<uint32_t>(tsd::CHIP_ASCEND_910B)));
2911 MOCKER_CPP(&ProcessModeManager::IsSupportCommonInterface).stubs().will(returnValue(false));2934 MOCKER_CPP(&ProcessModeManager::IsSupportCommonInterface).stubs().will(returnValue(false));
2912 MOCKER_CPP(&PackageProcessConfig::GetPkgHostAndDeviceDstPath)2935 MOCKER_CPP(&PackageProcessConfig::GetPkgHostAndDeviceDstPath)
2913 .stubs().will(returnValue(static_cast<uint32_t>(TSD_INTERNAL_ERROR)));2936 .stubs().will(returnValue(static_cast<uint32_t>(TSD_INTERNAL_ERROR)));