[XPU] fix dense tensor usage in adam #70856
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR Category
Custom Device
PR Types
Bug fixes
Description
接到用户反馈说
adam算子在某些情况下计算结果不正确,排查的时候受到了这个PR #70847 的启发,发现beta1_pow和beta2_pow放在CPU上的时候会出错,而在XPU上的时候就没事。排查发现是有一个临时变量的使用不当,原版生成了临时的
DenseTensor之后给它赋值然后取了指针,随后这个临时变量被销毁,进而设备上的指针失效,但是在原版的后续代码中仍然使用了它。本PR修复了此问题,调整了两个临时变量的位置,改变了它们的生命周期。
这个优化器的代码实现较久,不确定是否还有别的问题,本PR先把这处明显有问题的给修掉。