pytc.solver.xtc_ccsd._compute_medium_blocks_tiled

pytc.solver.xtc_ccsd._compute_medium_blocks_tiled(xtc_obj, jastrow_params, Loo, Lov_reshaped, L_vv_full, nocc, nvir, nmo, panel_blk, devices)[source]

Compute oovv/vvoo/ovov/ovvo/vovo via a single tiled multi-GPU pipeline.

Each block is sliced over one virtual dimension in chunks of panel_blk. All five blocks are represented as _TiledBlockSpec objects and passed to _run_tiled_block_pipeline, which interleaves their tiles in one _round_robin_pipeline call so GPUs stay occupied across block boundaries.

Panel layout and tile shape per block (ps = max(nocc, panel_blk)):

oovv (nocc,nocc,nvir,nvir) — tile dim-2 (vir): layout=”pr” → JIT (ps,nocc,ps,nvir) vvoo (nvir,nvir,nocc,nocc) — tile dim-0 (vir): layout=”pr” → JIT (ps,nvir,ps,nocc) ovov (nocc,nvir,nocc,nvir) — tile dim-1 (vir): layout=”qr” → JIT (nocc,ps,ps,nvir) ovvo (nocc,nvir,nvir,nocc) — tile dim-2 (vir): layout=”pr” → JIT (ps,nvir,ps,nocc) vovo (nvir,nocc,nvir,nocc) — tile dim-2 (vir): layout=”qr” → JIT (nvir,ps,ps,nocc)