已合并
修复dav_3510下SSBUF通信场景用户Workspace地址偏移 #5264
zhangyujia77创建于 8月21日
修复dav_3510下SSBUF通信场景用户Workspace地址偏移 #5264
已合并
共 4 个文件变更+35-0
| @@ -55,8 +55,12 @@ __aicore__ inline GM_ADDR GetUserWorkspace(GM_ADDR workspace) | |||
| 55 | return workspace; | 55 | return workspace; |
| 56 | 56 | ||
| 57 | (void)(workspace); | 57 | (void)(workspace); |
| 58 | + | ||
| 59 | + return GetSysWorkSpacePtr(); | ||
| 60 | + | ||
| 58 | return GetSysWorkSpacePtr() + RESERVED_WORKSPACE; | 61 | return GetSysWorkSpacePtr() + RESERVED_WORKSPACE; |
| 59 | 62 | ||
| 63 | + | ||
| 60 | } | 64 | } |
| 61 | 65 | ||
| 62 | __aicore__ inline int64_t GetStoreAtomicConfigImpl() { return get_st_atomic_cfg(); } | 66 | __aicore__ inline int64_t GetStoreAtomicConfigImpl() { return get_st_atomic_cfg(); } |
| @@ -6016,6 +6016,29 @@ Contents of section | |||
| 6016 | compile_info, | 6016 | compile_info, |
| 6017 | ) | 6017 | ) |
| 6018 | self.assertNotEqual(result, "") | 6018 | self.assertNotEqual(result, "") |
| 6019 | + self.assertIn( | ||
| 6020 | + " GM_ADDR usrWorkspace = AscendC::GetUserWorkspace(workspace);\n", | ||
| 6021 | + result, | ||
| 6022 | + ) | ||
| 6023 | + with mock.patch.object( | ||
| 6024 | + CommonUtility, "is_support_workspace_offset", return_value=True | ||
| 6025 | + ): | ||
| 6026 | + result = _gen_set_workspace_codes( | ||
| 6027 | + is_mix, | ||
| 6028 | + is_single_and_using_hard_sync, | ||
| 6029 | + op_info, | ||
| 6030 | + tiling_info, | ||
| 6031 | + compile_options, | ||
| 6032 | + compile_info, | ||
| 6033 | + ) | ||
| 6034 | + self.assertIn( | ||
| 6035 | + "#if ENABLE_CV_COMM_VIA_SSBUF != 0 && __MIX_CORE_AIC_RATION__ != 1\n" | ||
| 6036 | + " GM_ADDR usrWorkspace = workspace;\n" | ||
| 6037 | + "#else\n" | ||
| 6038 | + " GM_ADDR usrWorkspace = workspace + AscendC::RESERVED_WORKSPACE;\n" | ||
| 6039 | + "#endif\n", | ||
| 6040 | + result, | ||
| 6041 | + ) | ||
| 6019 | with buildcfg.build_config() as cfg: | 6042 | with buildcfg.build_config() as cfg: |
| 6020 | cfg.current()["tir.op_debug_config"] = ["oom"] | 6043 | cfg.current()["tir.op_debug_config"] = ["oom"] |
| 6021 | result = _gen_set_workspace_codes( | 6044 | result = _gen_set_workspace_codes( |
| @@ -652,7 +652,11 @@ def _gen_set_workspace_codes( | |||
| 652 | source += " GM_ADDR usrWorkspace = AscendC::GetUserWorkspace(workspace);\n" | 652 | source += " GM_ADDR usrWorkspace = AscendC::GetUserWorkspace(workspace);\n" |
| 653 | else: | 653 | else: |
| 654 | source += ( | 654 | source += ( |
| 655 | + "#if ENABLE_CV_COMM_VIA_SSBUF != 0 && __MIX_CORE_AIC_RATION__ != 1\n" | ||
| 656 | + " GM_ADDR usrWorkspace = workspace;\n" | ||
| 657 | + "#else\n" | ||
| 655 | " GM_ADDR usrWorkspace = workspace + AscendC::RESERVED_WORKSPACE;\n" | 658 | " GM_ADDR usrWorkspace = workspace + AscendC::RESERVED_WORKSPACE;\n" |
| 659 | + "#endif\n" | ||
| 656 | ) | 660 | ) |
| 657 | if "oom" in get_current_build_config("tir.op_debug_config"): | 661 | if "oom" in get_current_build_config("tir.op_debug_config"): |
| 658 | source = add_op_param_to_workspace( | 662 | source = add_op_param_to_workspace( |
| @@ -619,7 +619,11 @@ def _gen_set_workspace_codes( | |||
| 619 | source += " GM_ADDR usrWorkspace = AscendC::GetUserWorkspace(workspace);\n" | 619 | source += " GM_ADDR usrWorkspace = AscendC::GetUserWorkspace(workspace);\n" |
| 620 | else: | 620 | else: |
| 621 | source += ( | 621 | source += ( |
| 622 | + "#if ENABLE_CV_COMM_VIA_SSBUF != 0 && __MIX_CORE_AIC_RATION__ != 1\n" | ||
| 623 | + " GM_ADDR usrWorkspace = workspace;\n" | ||
| 624 | + "#else\n" | ||
| 622 | " GM_ADDR usrWorkspace = workspace + AscendC::RESERVED_WORKSPACE;\n" | 625 | " GM_ADDR usrWorkspace = workspace + AscendC::RESERVED_WORKSPACE;\n" |
| 626 | + "#endif\n" | ||
| 623 | ) | 627 | ) |
| 624 | if "oom" in get_current_build_config("tir.op_debug_config"): | 628 | if "oom" in get_current_build_config("tir.op_debug_config"): |
| 625 | source = add_op_param_to_workspace( | 629 | source = add_op_param_to_workspace( |