已合并
fix int32 #5525
liuyun_nj创建于 6月1日
fix int32 #5525
已合并
liuyun_nj创建于 6月1日
7 个文件变更+8-8
@@ -90,7 +90,7 @@ public:
90 {90 {
91 LocalTensor<float> rstdLocal = outQueueRstd.AllocTensor<float>();91 LocalTensor<float> rstdLocal = outQueueRstd.AllocTensor<float>();
92 for (uint32_t i_i = 0; i_i < calc_row_num; i_i++) {92 for (uint32_t i_i = 0; i_i < calc_row_num; i_i++) {
93- uint32_t gm_bias = (i_o * this->rowFactor + i_i) * this->numCol;93+ uint64_t gm_bias = (static_cast<uint64_t>(i_o) * static_cast<uint64_t>(this->rowFactor) + static_cast<uint64_t>(i_i)) * static_cast<uint64_t>(this->numCol);
94 CopyIn(gm_bias);94 CopyIn(gm_bias);
95 Compute(i_i, gammaLocal, rstdLocal);95 Compute(i_i, gammaLocal, rstdLocal);
96 CopyOutY(gm_bias);96 CopyOutY(gm_bias);
@@ -104,7 +104,7 @@ public:
104 104 
105 __aicore__ inline void MainCompute(uint32_t i_o, uint32_t calc_row_num, LocalTensor<T>& gammaLocal)105 __aicore__ inline void MainCompute(uint32_t i_o, uint32_t calc_row_num, LocalTensor<T>& gammaLocal)
106 {106 {
107- uint32_t gm_bias = i_o * rowFactor * numCol;107+ uint64_t gm_bias = static_cast<uint64_t>(i_o) * static_cast<uint64_t>(rowFactor) * static_cast<uint64_t>(numCol);
108 uint32_t elementNum = calc_row_num * numColAlign;108 uint32_t elementNum = calc_row_num * numColAlign;
109 CopyInX(gm_bias, calc_row_num);109 CopyInX(gm_bias, calc_row_num);
110 LocalTensor<T> xLocal = ComputeX(elementNum);110 LocalTensor<T> xLocal = ComputeX(elementNum);
@@ -95,7 +95,7 @@ public:
95 95 
96 __aicore__ inline void SubProcessHalf(uint32_t i_o, uint32_t calc_row_num, LocalTensor<T>& gammaLocal)96 __aicore__ inline void SubProcessHalf(uint32_t i_o, uint32_t calc_row_num, LocalTensor<T>& gammaLocal)
97 {97 {
98- uint32_t gm_bias = i_o * rowFactor * numCol;98+ uint64_t gm_bias = static_cast<uint64_t>(i_o) * static_cast<uint64_t>(rowFactor) * static_cast<uint64_t>(numCol);
99 CopyInX(gm_bias, calc_row_num);99 CopyInX(gm_bias, calc_row_num);
100 LocalTensor<T> xLocal = ComputeX(calc_row_num);100 LocalTensor<T> xLocal = ComputeX(calc_row_num);
101 if constexpr (MODE == ADD_RMS_NORM_MODE || MODE == PRE_RMS_NORM_MODE) {101 if constexpr (MODE == ADD_RMS_NORM_MODE || MODE == PRE_RMS_NORM_MODE) {
@@ -83,7 +83,7 @@ public:
83 __aicore__ inline void SubProcess(uint32_t i_o, uint32_t calc_row_num)83 __aicore__ inline void SubProcess(uint32_t i_o, uint32_t calc_row_num)
84 {84 {
85 for (uint32_t i_i = 0; i_i < calc_row_num; i_i++) {85 for (uint32_t i_i = 0; i_i < calc_row_num; i_i++) {
86- uint32_t gm_bias = (i_o * rowFactor + i_i) * numCol;86+ uint32_t gm_bias = (static_cast<uint64_t>(i_o) * static_cast<uint64_t>(rowFactor) + static_cast<uint64_t>(i_i)) * static_cast<uint64_t>(numCol);
87 CopyIn(gm_bias);87 CopyIn(gm_bias);
88 if constexpr (is_same<T, half>::value) {88 if constexpr (is_same<T, half>::value) {
89 Computefp16(i_o, i_i, gm_bias);89 Computefp16(i_o, i_i, gm_bias);
@@ -94,7 +94,7 @@ public:
94 94 
95 __aicore__ inline void SubProcess(uint32_t i_o, uint32_t calc_row_num, LocalTensor<T>& gammaLocal)95 __aicore__ inline void SubProcess(uint32_t i_o, uint32_t calc_row_num, LocalTensor<T>& gammaLocal)
96 {96 {
97- uint32_t gm_bias = i_o * rowFactor * numCol;97+ uint64_t gm_bias = static_cast<uint64_t>(i_o) * static_cast<uint64_t>(rowFactor) * static_cast<uint64_t>(numCol);
98 CopyInX(gm_bias, calc_row_num);98 CopyInX(gm_bias, calc_row_num);
99 LocalTensor<T> xLocal = ComputeX(calc_row_num);99 LocalTensor<T> xLocal = ComputeX(calc_row_num);
100 CopyOutX(gm_bias, calc_row_num);100 CopyOutX(gm_bias, calc_row_num);
@@ -63,7 +63,7 @@ public:
63 63 
64 LocalTensor<T> gammaLocal = weightBuf01.template Get<T>();64 LocalTensor<T> gammaLocal = weightBuf01.template Get<T>();
65 65 
66- int32_t gmOffset = 0;66+ uint64_t gmOffset = 0;
67 int32_t gmOffsetScale = 0;67 int32_t gmOffsetScale = 0;
68 int32_t elementCount = this->numLastDimAligned * this->rowStep;68 int32_t elementCount = this->numLastDimAligned * this->rowStep;
69 69 
@@ -97,8 +97,8 @@ public:
97 97 
98 __aicore__ inline void DoMainCompute(uint32_t i_o, uint32_t calcRowNum, LocalTensor<float>& gammaLocal)98 __aicore__ inline void DoMainCompute(uint32_t i_o, uint32_t calcRowNum, LocalTensor<float>& gammaLocal)
99 {99 {
100- uint32_t gmBias = i_o * rowFactor * numCol;100+ uint64_t gmBias = static_cast<uint64_t>(i_o) * static_cast<uint64_t>(rowFactor) * static_cast<uint64_t>(numCol);
101- uint32_t elementNum = calcRowNum * numColAlign;101+ uint64_t elementNum = static_cast<uint64_t>(calcRowNum) * static_cast<uint64_t>(numColAlign);
102 CopyIn(gmBias, calcRowNum);102 CopyIn(gmBias, calcRowNum);
103 if (isNorm == 1) {103 if (isNorm == 1) {
104 ComputeSingleRow(i_o, calcRowNum, gammaLocal, gmBias);104 ComputeSingleRow(i_o, calcRowNum, gammaLocal, gmBias);