已合并
as_strided/dynamic_partition/mem_set/unpack modify codecheck #3280
as_strided/dynamic_partition/mem_set/unpack modify codecheck #3280
已合并
csz创建于 6月11日
6 个文件变更+47-36
Mconversion/as_strided/op_host/arch35/as_strided_dualcut_tiling_arch35.h+4-9
@@ -26,13 +26,8 @@ constexpr int64_t BLOCK_BYTES = 32;
26 26 
27struct AxisInf {27struct AxisInf {
28 AxisInf(int64_t dim_, int64_t stride_, int64_t idx_, gert::TilingContext* context)28 AxisInf(int64_t dim_, int64_t stride_, int64_t idx_, gert::TilingContext* context)
29+ : context_(context), dim(dim_), stride(stride_), idx(idx_), code(1 << idx_), conter(0)
29 {30 {
30- context_ = context;
31- this->dim = dim_;
32- this->stride = stride_;
33- this->idx = idx_;
34- this->code = 1 << idx_;
35- this->conter = 0;
36 }31 }
37 32 
38 void PrintDebug()33 void PrintDebug()
@@ -310,10 +305,10 @@ void DualCutAxisSeeker::GenTilingData()
310 }305 }
311 // update cut outer axis306 // update cut outer axis
312 for (int i = 0; i < this->cutAxisNums; i++) {307 for (int i = 0; i < this->cutAxisNums; i++) {
313- uint32_t idx = this->gmAxis[this->outerAxisNums - 1 - i].idx;308+ uint32_t idx = this->gmAxis[static_cast<size_t>(this->outerAxisNums - 1 - i)].idx;
314 for (auto tmpAxis : this->ubAxis) {309 for (auto tmpAxis : this->ubAxis) {
315 if (tmpAxis.idx == idx) {310 if (tmpAxis.idx == idx) {
316- this->gmOutStride[this->outerAxisNums - 1 - i] *= tmpAxis.dim;311+ this->gmOutStride[static_cast<size_t>(this->outerAxisNums - 1 - i)] *= tmpAxis.dim;
317 break;312 break;
318 }313 }
319 }314 }
@@ -358,7 +353,7 @@ bool DualCutAxisSeeker::FindDualCutAxis(int ubSize, int bufferNum)
358 }353 }
359 for (int findLoops = SHAPE_ARRAY_LEN; findLoops >= 0; findLoops--) {354 for (int findLoops = SHAPE_ARRAY_LEN; findLoops >= 0; findLoops--) {
360 int64_t remainUB = this->ComputeRemainUB(ubNum, ubAxisSet);355 int64_t remainUB = this->ComputeRemainUB(ubNum, ubAxisSet);
361- ubBound = std::floor(std::sqrt(remainUB));356+ ubBound = static_cast<int>(std::floor(std::sqrt(remainUB)));
362 if (ubBound <= 0) {357 if (ubBound <= 0) {
363 OP_LOGI(context_, "ubBound is invalid.");358 OP_LOGI(context_, "ubBound is invalid.");
364 break;359 break;
Mconversion/as_strided/op_host/arch35/as_strided_tiling_arch35.cpp+22-5
@@ -65,6 +65,7 @@ constexpr int64_t LAST_STRIDE_THRESHOLD = 64;
65constexpr uint16_t MAX_UINT16 = 65535;65constexpr uint16_t MAX_UINT16 = 65535;
66constexpr uint16_t GATHER_AXES_LIMIT = 3;66constexpr uint16_t GATHER_AXES_LIMIT = 3;
67constexpr uint16_t GATHER_UB_SIZE_LOWER_LIMIT = 2048;67constexpr uint16_t GATHER_UB_SIZE_LOWER_LIMIT = 2048;
68+constexpr size_t WORKSPACE_SIZE_8MB = 8 * 1024 * 1024;
68 69 
69std::map<ge::DataType, uint32_t> tilingTypeKeyMap = {70std::map<ge::DataType, uint32_t> tilingTypeKeyMap = {
70 {ge::DT_INT64, INPUT_DTYPE_B64}, {ge::DT_UINT64, INPUT_DTYPE_B64}, {ge::DT_COMPLEX64, INPUT_DTYPE_B64},71 {ge::DT_INT64, INPUT_DTYPE_B64}, {ge::DT_UINT64, INPUT_DTYPE_B64}, {ge::DT_COMPLEX64, INPUT_DTYPE_B64},
@@ -481,13 +482,21 @@ inline static uint32_t CalcblockNum(const gert::TilingContext* context, uint64_t
481inline static void SetAllStridesZeroTilingParam(const gert::TilingContext* context, gert::Shape outSize,482inline static void SetAllStridesZeroTilingParam(const gert::TilingContext* context, gert::Shape outSize,
482 AsStridedTilingParam& tilingParam)483 AsStridedTilingParam& tilingParam)
483{484{
484- uint64_t totalOutElement = outSize.GetShapeSize();485+ int64_t shapeSize = outSize.GetShapeSize();
486+ OP_CHECK_IF(
487+ (shapeSize <= 0),
488+ OP_LOGE_FOR_INVALID_SHAPESIZE_WITH_REASON(context->GetNodeName(), "size",
489+ std::to_string(shapeSize).c_str(),
490+ "The shape size of this parameter must be greater than 0."),
491+ return);
492+ uint64_t totalOutElement = static_cast<uint64_t>(shapeSize);
zhanw_coding
zhanw_codingzhanw_coding6月11日

要判断一下是否<0,是则打印错误日志退出,>=0 再转成 uint64_t

likedislike
 csz
csz
6月11日 评论:
485 tilingParam.blockNum = CalcblockNum(context, totalOutElement, tilingParam);493 tilingParam.blockNum = CalcblockNum(context, totalOutElement, tilingParam);
486 tilingParam.mainBlockFactor = static_cast<int64_t>(Ops::Base::CeilDiv(totalOutElement,494 tilingParam.mainBlockFactor = static_cast<int64_t>(Ops::Base::CeilDiv(totalOutElement,
487 static_cast<uint64_t>(tilingParam.blockNum)));495 static_cast<uint64_t>(tilingParam.blockNum)));
488 tilingParam.blockNum = static_cast<uint32_t>(Ops::Base::CeilDiv(totalOutElement,496 tilingParam.blockNum = static_cast<uint32_t>(Ops::Base::CeilDiv(totalOutElement,
489 static_cast<uint64_t>(tilingParam.mainBlockFactor)));497 static_cast<uint64_t>(tilingParam.mainBlockFactor)));
490- tilingParam.tailBlockFactor = totalOutElement - (tilingParam.blockNum - 1) * tilingParam.mainBlockFactor;498+ tilingParam.tailBlockFactor = static_cast<int64_t>(totalOutElement) -
499+ static_cast<int64_t>(tilingParam.blockNum - 1) * tilingParam.mainBlockFactor;
491}500}
492 501 
493inline static void SetSimtTilingParam(const gert::TilingContext* context, gert::Shape outSize, gert::Shape outStride,502inline static void SetSimtTilingParam(const gert::TilingContext* context, gert::Shape outSize, gert::Shape outStride,
@@ -501,7 +510,8 @@ inline static void SetSimtTilingParam(const gert::TilingContext* context, gert::
501 static_cast<uint64_t>(tilingParam.blockNum)));510 static_cast<uint64_t>(tilingParam.blockNum)));
502 tilingParam.blockNum = static_cast<uint32_t>(Ops::Base::CeilDiv(totalOutElement,511 tilingParam.blockNum = static_cast<uint32_t>(Ops::Base::CeilDiv(totalOutElement,
503 static_cast<uint64_t>(tilingParam.mainBlockFactor)));512 static_cast<uint64_t>(tilingParam.mainBlockFactor)));
504- tilingParam.tailBlockFactor = totalOutElement - (tilingParam.blockNum - 1) * tilingParam.mainBlockFactor;513+ tilingParam.tailBlockFactor = static_cast<int64_t>(totalOutElement) -
514+ static_cast<int64_t>(tilingParam.blockNum - 1) * tilingParam.mainBlockFactor;
505 for (uint32_t i = 0; i < tilingParam.outDimNum; i++) {515 for (uint32_t i = 0; i < tilingParam.outDimNum; i++) {
506 tilingParam.sizeArr[i] = outSize[i];516 tilingParam.sizeArr[i] = outSize[i];
507 tilingParam.strideArr[i] = outStride[i];517 tilingParam.strideArr[i] = outStride[i];
@@ -733,7 +743,14 @@ inline static void CalcTilingUb(const gert::TilingContext* context, gert::Shape
733inline static void ComputeUbGatherParam(const gert::TilingContext* context, gert::Shape outSize, gert::Shape outStride,743inline static void ComputeUbGatherParam(const gert::TilingContext* context, gert::Shape outSize, gert::Shape outStride,
734 AsStridedTilingParam& tilingParam, AsStridedUbGatherParam& ubGatherParam)744 AsStridedTilingParam& tilingParam, AsStridedUbGatherParam& ubGatherParam)
735{745{
736- uint64_t totalOutElement = outSize.GetShapeSize();746+ int64_t shapeSize = outSize.GetShapeSize();
747+ OP_CHECK_IF(
748+ (shapeSize <= 0),
749+ OP_LOGE_FOR_INVALID_SHAPESIZE_WITH_REASON(context->GetNodeName(), "size",
750+ std::to_string(shapeSize).c_str(),
751+ "The shape size of this parameter must be greater than 0."),
752+ return);
753+ uint64_t totalOutElement = static_cast<uint64_t>(shapeSize);
737 ubGatherParam.blockNum = CalcblockNum(context, totalOutElement, tilingParam);754 ubGatherParam.blockNum = CalcblockNum(context, totalOutElement, tilingParam);
738 ubGatherParam.blockNumMin = ubGatherParam.blockNum;755 ubGatherParam.blockNumMin = ubGatherParam.blockNum;
739 ubGatherParam.outDimNum = outSize.GetDimNum();756 ubGatherParam.outDimNum = outSize.GetDimNum();
@@ -1250,7 +1267,7 @@ ge::graphStatus AsStridedTilingClass::HandleEmptyTensor()
1250 context_->SetTilingKey(EMPTY_TENSOR_KEY);1267 context_->SetTilingKey(EMPTY_TENSOR_KEY);
1251 emptyTilingData_ = context_->GetTilingData<AsStridedEmptyTilingData>();1268 emptyTilingData_ = context_->GetTilingData<AsStridedEmptyTilingData>();
1252 size_t* currentWorkspace = context_->GetWorkspaceSizes(1);1269 size_t* currentWorkspace = context_->GetWorkspaceSizes(1);
1253- currentWorkspace[0] = 8 * 1024 * 1024;1270+ currentWorkspace[0] = WORKSPACE_SIZE_8MB;
1254 OP_LOGD(context_, "Output is an empty tensor.");1271 OP_LOGD(context_, "Output is an empty tensor.");
1255 return ge::GRAPH_SUCCESS;1272 return ge::GRAPH_SUCCESS;
1256}1273}
Mconversion/dynamic_partition/op_host/arch35/dynamic_partition_tiling.cpp+1-1
@@ -343,7 +343,7 @@ ge::graphStatus DynamicPartitionTiling::WriteTilingData()
343 343 
344ge::graphStatus DynamicPartitionTiling::DoTiling()344ge::graphStatus DynamicPartitionTiling::DoTiling()
345{345{
346- compileInfo_ = reinterpret_cast<const DynamicPartitionCompileInfo*>(context_->GetCompileInfo());346+ compileInfo_ = context_->GetCompileInfo<DynamicPartitionCompileInfo>();
347 OP_CHECK_NULL_WITH_CONTEXT(context_, compileInfo_);347 OP_CHECK_NULL_WITH_CONTEXT(context_, compileInfo_);
348 348 
349 OP_CHECK_IF(GetInputShapeAndType() != ge::GRAPH_SUCCESS,349 OP_CHECK_IF(GetInputShapeAndType() != ge::GRAPH_SUCCESS,
Mconversion/mem_set/op_host/arch35/mem_set_tiling_arch35.cpp+3-3
@@ -148,7 +148,7 @@ ge::graphStatus MemSetTilingClass::GetPlatformInfo()
148{148{
149 auto platformInfo = context_->GetPlatformInfo();149 auto platformInfo = context_->GetPlatformInfo();
150 if (isDynamic_ || platformInfo == nullptr) {150 if (isDynamic_ || platformInfo == nullptr) {
151- auto compileInfoPtr = reinterpret_cast<const MemSetCompileInfoArch35*>(context_->GetCompileInfo());151+ auto compileInfoPtr = context_->GetCompileInfo<MemSetCompileInfoArch35>();
152 OP_CHECK_NULL_WITH_CONTEXT(context_, compileInfoPtr);152 OP_CHECK_NULL_WITH_CONTEXT(context_, compileInfoPtr);
153 aicoreParams_.numBlocks = compileInfoPtr->coreNum;153 aicoreParams_.numBlocks = compileInfoPtr->coreNum;
154 aicoreParams_.ubSize = compileInfoPtr->ubSize;154 aicoreParams_.ubSize = compileInfoPtr->ubSize;
@@ -224,7 +224,7 @@ ge::graphStatus MemSetTilingClass::SetShapeAttrsInfo(bool isGE)
224 intValue_[i] = valueIntPtr->GetData()[i];224 intValue_[i] = valueIntPtr->GetData()[i];
225 }225 }
226 if (isDynamic_) {226 if (isDynamic_) {
227- auto memSetContext = reinterpret_cast<ops::AtomicCleanTilingContext*>(context_);227+ auto memSetContext = static_cast<ops::AtomicCleanTilingContext*>(context_);
228 sizes_[i] = memSetContext->GetCleanOutputSize(i);228 sizes_[i] = memSetContext->GetCleanOutputSize(i);
229 } else {229 } else {
230 sizes_[i] = sizesPtr->GetData()[i];230 sizes_[i] = sizesPtr->GetData()[i];
@@ -294,7 +294,7 @@ ge::graphStatus Tiling4MemSetArch35(gert::TilingContext* context)
294{294{
295 OP_LOGI("MemSet tilingData", "Start tiling for MemSet.");295 OP_LOGI("MemSet tilingData", "Start tiling for MemSet.");
296 const MemSetCompileInfoArch35* compileInfo =296 const MemSetCompileInfoArch35* compileInfo =
297- reinterpret_cast<const MemSetCompileInfoArch35*>(context->GetCompileInfo());297+ context->GetCompileInfo<MemSetCompileInfoArch35>();
298 OP_CHECK_NULL_WITH_CONTEXT(context, compileInfo);298 OP_CHECK_NULL_WITH_CONTEXT(context, compileInfo);
299 OP_LOGD(context->GetNodeName(), "runing regbase soc version tiling func");299 OP_LOGD(context->GetNodeName(), "runing regbase soc version tiling func");
300 class MemSetTilingClass tiling(context);300 class MemSetTilingClass tiling(context);
Mconversion/mem_set/op_host/arch35/mem_set_tiling_arch35.h+15-15
@@ -64,21 +64,21 @@ private:
64 template <uint16_t Count>64 template <uint16_t Count>
65 void CheckTilingData(MemSetTilingData<Count>* tilingDataPostAtr);65 void CheckTilingData(MemSetTilingData<Count>* tilingDataPostAtr);
66 66 
67-private:67+private:
68- void* tilingDataPostAtr_;68+ void* tilingDataPostAtr_ = nullptr;
69- std::vector<int64_t> perCoreSizes_;69+ std::vector<int64_t> perCoreSizes_;
70- std::vector<int64_t> lastCoreSizes_;70+ std::vector<int64_t> lastCoreSizes_;
71- std::vector<int64_t> intValue_;71+ std::vector<int64_t> intValue_;
72- std::vector<float> floatValue_;72+ std::vector<float> floatValue_;
73- std::vector<int16_t> listType_;73+ std::vector<int16_t> listType_;
74- std::vector<int16_t> useCore_;74+ std::vector<int16_t> useCore_;
75- std::vector<int64_t> sizes_;75+ std::vector<int64_t> sizes_;
76- uint16_t cacheLineSize_;76+ uint16_t cacheLineSize_ = 0;
77- uint16_t needCore_;77+ uint16_t needCore_ = 0;
78- int halfUbSize_;78+ int halfUbSize_ = 0;
79- uint16_t inputCount_;79+ uint16_t inputCount_ = 0;
80- uint16_t TilingKey_;80+ uint16_t TilingKey_ = 0;
81- bool isDynamic_ = false;81+ bool isDynamic_ = false;
82};82};
83 83 
84} // namespace optiling84} // namespace optiling
Mconversion/unpack/examples/test_geir_unpack.cpp+2-3
@@ -36,6 +36,7 @@
36 36 
37#define FAILED -137#define FAILED -1
38#define SUCCESS 038#define SUCCESS 0
39+constexpr double DEFAULT_TEST_VALUE = 2.0;
39 40 
40using namespace ge;41using namespace ge;
41using std::map;42using std::map;
@@ -177,7 +178,7 @@ int CreateOppInGraph(
177 data_desc.SetFormat(ge::FORMAT_ND);178 data_desc.SetFormat(ge::FORMAT_ND);
178 179 
179 Tensor input_tensor;180 Tensor input_tensor;
180- ret = GenOnesData(input_shape, input_tensor, data_desc, inDtype, 2.0);181+ ret = GenOnesData(input_shape, input_tensor, data_desc, inDtype, DEFAULT_TEST_VALUE);
181 if (ret != SUCCESS) {182 if (ret != SUCCESS) {
182 printf("%s - ERROR - [XIR]: Generate input data failed\n", GetTime().c_str());183 printf("%s - ERROR - [XIR]: Generate input data failed\n", GetTime().c_str());
183 return FAILED;184 return FAILED;
@@ -210,8 +211,6 @@ bool InitEnv()
210 return true;211 return true;
211}212}
212 213 
213- 
214- 
215void ProcessInputData(std::vector<ge::Tensor>& input)214void ProcessInputData(std::vector<ge::Tensor>& input)
216{215{
217 int input_num = input.size();216 int input_num = input.size();