ADR-0027 rev7 (Megatron TP + worker-wait generalization) + ADR-0026 typo fix
ADR-0027 is a design-only change (no production code). Rev 7 closes design across 7 iterations of review. Key decisions: - D0 (worker-wait generalization): ctx.wait in worker context yields to main scheduler, which drains env.run. Solves ADR-0024 Phase B orphan bug (ring_default_ws strict xfail). Normative contracts on resume invariant, fast-path, main-context non-reentrance, barrier loop-until-empty, and scheduler non-progress as user contract. - D0.5 (host-read barrier): Tensor.numpy/data/__getitem__/__repr__/copy_ auto-drain pending before reading. Closed-set via explicit registry (T5.g). copy_ uses global-pending barrier with explicit over-serialization tradeoff. - D1 (torch.multiprocessing.spawn): real-PyTorch API-signature parity, cooperative greenlet scheduler internally. Explicit non-goal on process isolation / address space / failure isolation. Sibling cleanup via SystemExit + SpawnException(errors) wrapping root-cause ranks. - D4/D5 (TP layers): ColumnParallelLinear / RowParallelLinear use torch.launch(gemm_kernel) — no host-side torch.matmul. Yield-safety contract normatively required for all TP forward paths. - Supersedes ADR-0024 D7/D12/D13 as design (none landed). Source of truth declared normative. Test strategy: T1-T8 with numerical-correctness primary (not mean/ aggregate-only), orphan invariant direct assertion, host-read barrier closed-set via registry. Phase 2 acceptance = 524 passed + 0 xfail (ring_default_ws unblocked by D0). ADR-0026 typo fix: torch.cuda.set_device → torch.ahbm.set_device in DPPolicy docstring (ADR-0024 D10 convention). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -69,9 +69,9 @@ class DPPolicy:
|
|||||||
class DPPolicy:
|
class DPPolicy:
|
||||||
"""Intra-device (cube × PE) data-parallel policy.
|
"""Intra-device (cube × PE) data-parallel policy.
|
||||||
|
|
||||||
SIP-level placement is controlled by ``torch.cuda.set_device(rank)``
|
SIP-level placement is controlled by ``torch.ahbm.set_device(rank)``
|
||||||
(ADR-0024) and, for model-level TP, by Megatron-style parallel layers
|
(ADR-0024 D10) and, for model-level TP, by Megatron-style parallel
|
||||||
(ADR-0027). DPPolicy does not cross SIP boundaries.
|
layers (ADR-0027). DPPolicy does not cross SIP boundaries.
|
||||||
"""
|
"""
|
||||||
cube: Literal["replicate", "column_wise", "row_wise"] = "replicate"
|
cube: Literal["replicate", "column_wise", "row_wise"] = "replicate"
|
||||||
pe: Literal["replicate", "column_wise", "row_wise"] = "replicate"
|
pe: Literal["replicate", "column_wise", "row_wise"] = "replicate"
|
||||||
|
|||||||
+899
-132
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user