Repository navigation
Subspace-Iteration CTMRG - #422
Yue-Zhengyuan wants to merge 16 commits into
Conversation
|
I don't really have time to go over this in detail right now, but we should consider the difference between this approach and that of #263, and consider if they are related. Switching to a randomized SVD to compute the same projectors we already support could be a bit cleaner in terms of implementation, so it might be worth it to work this out a bit more before committing here. |
Introduce SubspaceIterationProjector with independent, independent_stabilized, alternating, and alternating_refined range updates, sharing reduced decompositions and projector construction. Recycle symmetry-resolved bases with optional rotation and freezing in simultaneous and sequential CTMRG. Preserve the optimized alternating contractions and differentiation through recycled sweeps, including fixed-point gradients with the incoming cache held fixed. Cover range updates, cache handling, symmetry sectors, sweep integration, and gradients with focused tests.
355557f to
d0c25c2
Compare
|
As I continue refining this PR, the essential difference between this and #263 is already outlined in documentation, which I temporarily put at @leburgel @kshyatt You can now take a look and provide suggestions. |
|
@Yue-Zhengyuan this PR is wastefully running tests on the GPU despite not actually testing GPU functionality, I'm pretty sure. Can you put a |
|
Sorry! Will do it soon (my agent still hasn't learned to respect the new test suite layout). |
|
I cancelled the GPU build in the meantime |
|
I've been going through the implementation, and also testing out the prototype directly for PEPS optimization. I still need some time to collect my findings and comments, I hope to get to that tomorrow. In short:
I'll post a more detailed review with some actual reproducers of these issues soon. |
Preserve SI projector caching while adopting upstream's differentiated global phase correction. Extend the cached boundary helper to AbstractCTMRGEnv for the new C4v environment.
|
Latest changes:
|
This PR adds one more CTMRG projector algorithm
SubspaceIterationProjector, introduced in https://arxiv.org/abs/2607.15158.The basic idea is that, after constructing the full-infinite environment
M, one use QR/LQ to obtain "rangefinder" tensorsX, Yto project it toY† M Xwhich lives in a much smaller "oversampling" space. This space is intentionally chosen to be still larger than the target environment space χ. It then greatly reduces the cost to do SVD, resulting in significant speed up especially on GPU.According to the paper, one can achieve over 100x speedup for D = 6, χ = 144 on GPU. So it appears to be quite a worthwhile addition.
The rangefinders
X,Ymay be reused during CTMRG iterations, thus a caching mechanism has to be introduced.