已合并
Linspace 精度问题 #3080
sunchun创建于 6月2日
Linspace 精度问题 #3080
已合并
从已删除 :linspace合入到cann/ops-mathmaster
共 1 个文件变更+2-2
| @@ -162,7 +162,7 @@ __aicore__ inline void LinSpaceWithBigShape<T>::ComputeAndOut(const int64_t& loo | |||
| 162 | 162 | ||
| 163 | for (int64_t idx = 1; idx < loopNum; idx++) { | 163 | for (int64_t idx = 1; idx < loopNum; idx++) { |
| 164 | LocalTensor<T> outLocal = outQueue.AllocTensor<T>(); | 164 | LocalTensor<T> outLocal = outQueue.AllocTensor<T>(); |
| 165 | - if (idx == loopNum - 1) { | 165 | + if (idx == loopNum - 1 && loopTail > 0) { |
| 166 | Adds(outLocal, outLocalBase, T(m_tilingData.scalar * maxOutNum * idx), loopTail); | 166 | Adds(outLocal, outLocalBase, T(m_tilingData.scalar * maxOutNum * idx), loopTail); |
| 167 | outQueue.EnQue(outLocal); | 167 | outQueue.EnQue(outLocal); |
| 168 | CopyOut(gmOutOffset + idx * maxOutNum, loopTail); | 168 | CopyOut(gmOutOffset + idx * maxOutNum, loopTail); |
| @@ -203,7 +203,7 @@ __aicore__ inline void LinSpaceWithBigShape<T>::ComputeReverseAndOut(const int64 | |||
| 203 | 203 | ||
| 204 | for (int64_t idx = 1; idx < loopNum; idx++) { | 204 | for (int64_t idx = 1; idx < loopNum; idx++) { |
| 205 | LocalTensor<T> outLocal = outQueue.AllocTensor<T>(); | 205 | LocalTensor<T> outLocal = outQueue.AllocTensor<T>(); |
| 206 | - if (idx == loopNum - 1) { | 206 | + if (idx == loopNum - 1 && loopTail > 0) { |
| 207 | Adds( | 207 | Adds( |
| 208 | outLocal[maxOutNum - loopTail], outLocalBase[maxOutNum - loopTail], | 208 | outLocal[maxOutNum - loopTail], outLocalBase[maxOutNum - loopTail], |
| 209 | T(m_tilingData.scalar * maxOutNum * idx * reverseScalar), loopTail); | 209 | T(m_tilingData.scalar * maxOutNum * idx * reverseScalar), loopTail); |