已合并
修复uss存在的功能问题 #6273
wushuai创建于 6月18日
修复uss存在的功能问题 #6273
已合并
共 3 个文件变更+2-9
| @@ -69,7 +69,6 @@ void UnsortedSegmentSumDetermTiling::SetTilingData() | |||
| 69 | tilingData_.set_normalCoreProcessNum(normalCoreProcessNum_); | 69 | tilingData_.set_normalCoreProcessNum(normalCoreProcessNum_); |
| 70 | tilingData_.set_tailCoreProcessNum(tailCoreProcessNum_); | 70 | tilingData_.set_tailCoreProcessNum(tailCoreProcessNum_); |
| 71 | tilingData_.set_usedCoreNum(usedCoreNum_); | 71 | tilingData_.set_usedCoreNum(usedCoreNum_); |
| 72 | - tilingData_.set_dequantCoreNum(dequantCoreNum_); | ||
| 73 | } | 72 | } |
| 74 | 73 | ||
| 75 | int64_t UnsortedSegmentSumDetermTiling::FindMaxRowsInUb() | 74 | int64_t UnsortedSegmentSumDetermTiling::FindMaxRowsInUb() |
| @@ -131,7 +130,6 @@ ge::graphStatus UnsortedSegmentSumDetermTiling::DoOpTiling() | |||
| 131 | usedCoreNum_ = Ops::Base::CeilDiv(inputOuterDim_, normalCoreProcessNum_); | 130 | usedCoreNum_ = Ops::Base::CeilDiv(inputOuterDim_, normalCoreProcessNum_); |
| 132 | tailCoreProcessNum_ = inputOuterDim_ - (usedCoreNum_ - 1) * normalCoreProcessNum_; | 131 | tailCoreProcessNum_ = inputOuterDim_ - (usedCoreNum_ - 1) * normalCoreProcessNum_; |
| 133 | } | 132 | } |
| 134 | - dequantCoreNum_ = static_cast<uint32_t>(totalCoreNum_); | ||
| 135 | uint64_t perCoreSortedIdBytes = (normalCoreProcessNum_ * idTypeBytes_ + 31) / 32 * 32; | 133 | uint64_t perCoreSortedIdBytes = (normalCoreProcessNum_ * idTypeBytes_ + 31) / 32 * 32; |
| 136 | uint64_t perCoreSortedIndexBytes = (normalCoreProcessNum_ * sizeof(uint32_t) + 31) / 32 * 32; | 134 | uint64_t perCoreSortedIndexBytes = (normalCoreProcessNum_ * sizeof(uint32_t) + 31) / 32 * 32; |
| 137 | usrWorkspaceSize_ = outputOuterDim_ * innerDim_ * sizeof(int32_t) * DOUBLE + outputOuterDim_ * sizeof(int64_t) + | 135 | usrWorkspaceSize_ = outputOuterDim_ * innerDim_ * sizeof(int32_t) * DOUBLE + outputOuterDim_ * sizeof(int64_t) + |
| @@ -145,7 +143,7 @@ ge::graphStatus UnsortedSegmentSumDetermTiling::DoOpTiling() | |||
| 145 | 143 | ||
| 146 | ge::graphStatus UnsortedSegmentSumDetermTiling::PostTiling() | 144 | ge::graphStatus UnsortedSegmentSumDetermTiling::PostTiling() |
| 147 | { | 145 | { |
| 148 | - context_->SetBlockDim(dequantCoreNum_); | 146 | + context_->SetBlockDim(static_cast<uint32_t>(totalCoreNum_)); |
| 149 | context_->SetScheduleMode(1); | 147 | context_->SetScheduleMode(1); |
| 150 | auto res = context_->SetLocalMemorySize(ubSize_); | 148 | auto res = context_->SetLocalMemorySize(ubSize_); |
| 151 | OP_CHECK_IF( | 149 | OP_CHECK_IF( |
| @@ -165,7 +163,6 @@ void UnsortedSegmentSumDetermTiling::DumpTilingInfo() | |||
| 165 | std::ostringstream info; | 163 | std::ostringstream info; |
| 166 | info << "tilingKey: " << GetTilingKey(); | 164 | info << "tilingKey: " << GetTilingKey(); |
| 167 | info << ", usedCoreNum: " << usedCoreNum_; | 165 | info << ", usedCoreNum: " << usedCoreNum_; |
| 168 | - info << ", dequantCoreNum: " << dequantCoreNum_; | ||
| 169 | info << ", inputOuterDim: " << tilingData_.get_inputOuterDim(); | 166 | info << ", inputOuterDim: " << tilingData_.get_inputOuterDim(); |
| 170 | info << ", outputOuterDim: " << tilingData_.get_outputOuterDim(); | 167 | info << ", outputOuterDim: " << tilingData_.get_outputOuterDim(); |
| 171 | info << ", innerDim: " << tilingData_.get_innerDim(); | 168 | info << ", innerDim: " << tilingData_.get_innerDim(); |
| @@ -29,7 +29,6 @@ TILING_DATA_FIELD_DEF(uint32_t, rowsNumInUB); | |||
| 29 | TILING_DATA_FIELD_DEF(uint32_t, normalCoreProcessNum); | 29 | TILING_DATA_FIELD_DEF(uint32_t, normalCoreProcessNum); |
| 30 | TILING_DATA_FIELD_DEF(uint32_t, tailCoreProcessNum); | 30 | TILING_DATA_FIELD_DEF(uint32_t, tailCoreProcessNum); |
| 31 | TILING_DATA_FIELD_DEF(uint32_t, usedCoreNum); | 31 | TILING_DATA_FIELD_DEF(uint32_t, usedCoreNum); |
| 32 | -TILING_DATA_FIELD_DEF(uint32_t, dequantCoreNum); | ||
| 33 | END_TILING_DATA_DEF; | 32 | END_TILING_DATA_DEF; |
| 34 | 33 | ||
| 35 | REGISTER_TILING_DATA_CLASS(UnsortedSegmentSum_3100, UnsortedSegmentSumDetermTilingData); | 34 | REGISTER_TILING_DATA_CLASS(UnsortedSegmentSum_3100, UnsortedSegmentSumDetermTilingData); |
| @@ -63,7 +62,6 @@ private: | |||
| 63 | uint32_t tailSampleNum_; | 62 | uint32_t tailSampleNum_; |
| 64 | uint32_t loopIncore_; | 63 | uint32_t loopIncore_; |
| 65 | uint32_t usedCoreNum_; | 64 | uint32_t usedCoreNum_; |
| 66 | - uint32_t dequantCoreNum_; | ||
| 67 | uint32_t row32BAlign_; | 65 | uint32_t row32BAlign_; |
| 68 | uint64_t normalCoreProcessNum_; | 66 | uint64_t normalCoreProcessNum_; |
| 69 | uint64_t tailCoreProcessNum_; | 67 | uint64_t tailCoreProcessNum_; |
| @@ -98,7 +98,6 @@ private: | |||
| 98 | uint32_t normalCoreProcessNum_{0}; | 98 | uint32_t normalCoreProcessNum_{0}; |
| 99 | uint32_t tailCoreProcessNum_{0}; | 99 | uint32_t tailCoreProcessNum_{0}; |
| 100 | uint32_t usedCoreNum_{1}; | 100 | uint32_t usedCoreNum_{1}; |
| 101 | - uint32_t dequantCoreNum_{1}; | ||
| 102 | uint64_t segmentNum_{1}; | 101 | uint64_t segmentNum_{1}; |
| 103 | uint32_t tmpBufferSize_{0}; | 102 | uint32_t tmpBufferSize_{0}; |
| 104 | uint64_t curCoreProcessNum_{0}; | 103 | uint64_t curCoreProcessNum_{0}; |
| @@ -179,7 +178,6 @@ __aicore__ inline void KernelUSSDeterministic<T, U>::Init(GM_ADDR x, GM_ADDR seg | |||
| 179 | normalCoreProcessNum_ = tilingData_.normalCoreProcessNum; | 178 | normalCoreProcessNum_ = tilingData_.normalCoreProcessNum; |
| 180 | tailCoreProcessNum_ = tilingData_.tailCoreProcessNum; | 179 | tailCoreProcessNum_ = tilingData_.tailCoreProcessNum; |
| 181 | usedCoreNum_ = tilingData_.usedCoreNum; | 180 | usedCoreNum_ = tilingData_.usedCoreNum; |
| 182 | - dequantCoreNum_ = tilingData_.dequantCoreNum; | ||
| 183 | tmpBufferSize_ = tilingData_.tmpBufferSize; | 181 | tmpBufferSize_ = tilingData_.tmpBufferSize; |
| 184 | rowsNumInUb_ = tilingData_.rowsNumInUB; | 182 | rowsNumInUb_ = tilingData_.rowsNumInUB; |
| 185 | segmentNum_ = tilingData_.outputOuterDim; | 183 | segmentNum_ = tilingData_.outputOuterDim; |
| @@ -407,7 +405,7 @@ __aicore__ inline void KernelUSSDeterministic<T, U>::ThirdUbProcess() | |||
| 407 | { | 405 | { |
| 408 | asc_vf_call<Dequantize<T,U>>(dim3(MAX_THREAD), (__gm__ float*)(workspaceMValue_.GetPhyAddr()), | 406 | asc_vf_call<Dequantize<T,U>>(dim3(MAX_THREAD), (__gm__ float*)(workspaceMValue_.GetPhyAddr()), |
| 409 | (__gm__ uint64_t*)(workspaceNValue_.GetPhyAddr()), (__gm__ int32_t*)(workspaceOutput_.GetPhyAddr()), | 407 | (__gm__ uint64_t*)(workspaceNValue_.GetPhyAddr()), (__gm__ int32_t*)(workspaceOutput_.GetPhyAddr()), |
| 410 | - (__gm__ T*)(yGm_.GetPhyAddr()), segmentNum_, innerDim_, blockId_, dequantCoreNum_); | 408 | + (__gm__ T*)(yGm_.GetPhyAddr()), segmentNum_, innerDim_, blockId_, GetBlockNum()); |
| 411 | } | 409 | } |
| 412 | 410 | ||
| 413 | } // namespace UnsortedSegmentSum | 411 | } // namespace UnsortedSegmentSum |
🟡 Medium Priority
在清理
dequantCoreNum相关代码时,diff 同时删除了DumpTilingInfo()中以下无关行:outputOuterDim字段仍然存在于 tiling data 定义中(TILING_DATA_FIELD_DEF(uint64_t, outputOuterDim);,见unsorted_segment_sum_deterministic_tiling.h第 25 行),并且在SetTilingData()中正常设置(第 65 行),在 kernel 的Init()中也正常使用(segmentNum_ = tilingData_.outputOuterDim;)。该字段与本次dequantCoreNum清理完全无关。在同一模块的所有其他 tiling 类(
simd_dyn_sort_tiling.cpp、deterministic_small_innerdim_tiling.cpp、simd_spilt_col_tiling.cpp、sort_simt_tiling.cpp、deterministic_big_innerdim_tiling.cpp、output_fullload_tiling.cpp、simt_tiling.cpp、simd_non_sort_tiling.cpp)中,DumpTilingInfo()均正常输出outputOuterDim,仅本文件被误删。失败模式:调试/问题定位时缺少关键 tiling 参数
outputOuterDim的日志,降低可观测性,增加排障难度。建议:在
info << ", inputOuterDim: " << ...之后、info << ", innerDim: " << ...之前,恢复outputOuterDim的日志输出行。