Optimize memcpy operation in Eigh #42853
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 types
Performance optimization
PR changes
OPs
Describe
优化目标:
Eigh
计算的核心计算依赖for
循环,循环中每次计算的状态值都需要HtoD的拷贝,优化后将拷贝的次数压缩为1次,降低HtoD的拷贝开销.效果:
Eigh
中巨大的开销都是由cusolver
调用带来的,根据上图统计(测试频次为1000,每次会循环调用256次cusolver),每个cusolver
会产生6种内置计算kernel开销,3种DtoH拷贝,3种HtoD拷贝。当前的写法会导致每次cusolver
调用后额外再产生一个DtoH的拷贝开销,经过本PR优化调整后消除.