ADR: translate adr-ko/ to Korean, fix ADR-0013 slug, refine Status check
Follow-up to the bilingual-structure commit: docs/adr-ko/ now holds only Korean versions (24 files translated from English placeholders), ADR-0013 slug uses kebab-case in both folders, and the verify tool allows translated parenthetical commentary in the Status block. - Translate 24 English files in docs/adr-ko/ to Korean. The previous bilingual-structure commit had left these as English copies because their source content was already English; this commit fulfills the policy that docs/adr-ko/ contains only Korean. - Rename ADR-0013 in both adr/ and adr-ko/ from ver-verification_strategy.md to ver-verification-strategy.md (kebab-case consistency with other ADRs). - CLAUDE.md (ADR Translation Discipline): clarify that only the Status lifecycle keyword (Accepted / Proposed / Stub / Draft / Superseded by ADR-NNNN / Merged into ADR-NNNN) must match across EN and KO; parenthetical commentary and trailing list items may be translated. - tools/verify_adr_lang_pairs.py: replace byte-equal Status check with normalize_status_keyword() which strips parenthetical commentary and takes only the first non-empty line. - tests/test_verify_adr_lang_pairs.py: update existing test names, add coverage for translated parenthetical, translated trailing list, and Superseded-by-NNNN keyword equality. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# ADR-0002: Routing Distance, Ordering & Bypass Rules
|
||||
# ADR-0002: 라우팅 거리, 순서 및 우회 규칙
|
||||
|
||||
## Status
|
||||
Accepted
|
||||
@@ -7,96 +7,94 @@ Accepted
|
||||
2026-02-27
|
||||
|
||||
## Context
|
||||
The KernBench Graph Latency Simulator must compare kernel execution time
|
||||
across different architectures and topologies by computing end-to-end
|
||||
latency from graph traversal.
|
||||
KernBench Graph Latency Simulator는 서로 다른 아키텍처·토폴로지에 대한
|
||||
커널 실행 시간을 비교해야 하며, 그래프 순회로부터 end-to-end 레이턴시를
|
||||
계산하여 이를 달성한다.
|
||||
|
||||
To support meaningful comparison:
|
||||
- routing must be deterministic
|
||||
- latency must reflect actual interconnect structure
|
||||
- local vs remote traffic must be distinguishable
|
||||
- “bypass” optimizations must not undermine debuggability or correctness
|
||||
의미 있는 비교를 지원하려면:
|
||||
- 라우팅이 결정론적이어야 한다
|
||||
- 레이턴시가 실제 인터커넥트 구조를 반영해야 한다
|
||||
- 로컬과 리모트 트래픽이 구분 가능해야 한다
|
||||
- "우회(bypass)" 최적화가 디버깅 가능성이나 정확성을 훼손해서는 안 된다
|
||||
|
||||
The simulator also aims to avoid software-managed metadata and hidden
|
||||
shortcuts that obscure control paths.
|
||||
또한 시뮬레이터는 소프트웨어가 관리하는 메타데이터 및 제어 경로를
|
||||
가리는 숨겨진 지름길을 피하는 것을 목표로 한다.
|
||||
|
||||
## Decision
|
||||
|
||||
### D1. Distance is accumulated latency, not hop count
|
||||
- Routing “distance” is defined as the **sum of per-node and per-link latency**.
|
||||
- Hop count alone must not be used for ordering or path selection.
|
||||
- Size-aware serialization latency (bytes / BW) contributes to distance.
|
||||
### D1. 거리(distance)는 hop 수가 아니라 누적 레이턴시이다
|
||||
- 라우팅 "거리"는 **노드별·링크별 레이턴시의 합**으로 정의된다.
|
||||
- 순서 결정이나 경로 선택에 hop 수만을 사용해서는 안 된다.
|
||||
- 크기 인지(size-aware) 직렬화 레이턴시(bytes / BW)가 거리에 기여한다.
|
||||
|
||||
### D2. Routing order is derived from graph traversal
|
||||
- The chosen route is the path with minimum accumulated latency
|
||||
given the constructed graph and routing policy.
|
||||
- Deterministic ordering must be guaranteed for identical inputs
|
||||
(topology + policy + request).
|
||||
### D2. 라우팅 순서는 그래프 순회에서 유도된다
|
||||
- 선택된 경로는 구성된 그래프와 라우팅 정책 하에서
|
||||
누적 레이턴시가 최소인 경로이다.
|
||||
- 동일 입력(토폴로지 + 정책 + 요청)에 대해 결정론적 순서가 보장되어야 한다.
|
||||
|
||||
### D3. Bypass is explicit and graph-represented
|
||||
- All paths must be explicitly represented in the graph and subject to latency accumulation.
|
||||
- Example: PE_DMA connects to the NOC router mesh (ADR-0017 D7). All destinations
|
||||
(HBM, shared SRAM, inter-cube UCIe) are reached via explicit mesh hops.
|
||||
Local HBM access has minimal hops (switching overhead only); remote access
|
||||
traverses additional routers.
|
||||
- Implicit or “magic” bypass paths are disallowed.
|
||||
### D3. 우회는 명시적이며 그래프로 표현된다
|
||||
- 모든 경로는 그래프에 명시적으로 표현되며 레이턴시 누적의 대상이 되어야 한다.
|
||||
- 예: PE_DMA는 NOC 라우터 메시(ADR-0017 D7)에 연결된다. 모든 목적지
|
||||
(HBM, 공유 SRAM, 큐브 간 UCIe)는 명시적 메시 hop을 통해 도달한다.
|
||||
로컬 HBM 접근은 hop 수가 최소(스위칭 오버헤드만)이며, 리모트 접근은
|
||||
추가 라우터를 거친다.
|
||||
- 암묵적이거나 "마법 같은" 우회 경로는 금지된다.
|
||||
|
||||
### D4. No zero-latency end-to-end paths
|
||||
### D4. end-to-end 레이턴시가 0인 경로는 없다
|
||||
|
||||
- Every routed request must incur **end-to-end** latency > 0.
|
||||
- Individual fabric segments (e.g., NOC hops) MAY have distance_mm = 0
|
||||
when the fabric is distributed and distance is not meaningful at that granularity.
|
||||
This is allowed because other components on the same path (e.g., PE_DMA, SRAM,
|
||||
UCIe endpoints) contribute non-zero latency, ensuring the end-to-end invariant holds.
|
||||
- Fully zero-latency end-to-end paths are disallowed, except for explicit
|
||||
test-only stubs clearly marked as such.
|
||||
- 모든 라우팅 요청은 **end-to-end** 레이턴시가 > 0이어야 한다.
|
||||
- 개별 패브릭 세그먼트(예: NOC hop)는 패브릭이 분산되어 있고 해당 granularity에서
|
||||
거리가 의미가 없을 때 distance_mm = 0을 가질 수 있다.
|
||||
이는 같은 경로상의 다른 컴포넌트(예: PE_DMA, SRAM, UCIe 엔드포인트)가
|
||||
0이 아닌 레이턴시에 기여하여 end-to-end 불변성을 유지하므로 허용된다.
|
||||
- end-to-end가 완전히 0 레이턴시인 경로는 금지된다. 단, 명시적으로
|
||||
표시된 테스트 전용 stub만 예외이다.
|
||||
|
||||
### D5. Policy vs topology responsibility split
|
||||
- Topology builder:
|
||||
- defines nodes and links and their latency/BW parameters
|
||||
- Routing policy:
|
||||
- selects among available graph paths based on decoded domains
|
||||
- Routing policy must not assume missing links; missing connectivity
|
||||
is a topology construction error.
|
||||
### D5. 정책과 토폴로지의 책임 분리
|
||||
- 토폴로지 빌더:
|
||||
- 노드와 링크 및 그들의 레이턴시/BW 파라미터를 정의한다
|
||||
- 라우팅 정책:
|
||||
- 디코딩된 도메인을 바탕으로 사용 가능한 그래프 경로 중에서 선택한다
|
||||
- 라우팅 정책은 누락된 링크를 가정해서는 안 된다. 누락된 연결성은
|
||||
토폴로지 구성 오류이다.
|
||||
|
||||
### D6. No software-managed routing metadata
|
||||
- Routing decisions must not rely on per-request software-managed metadata
|
||||
that tracks distance, hop count, or ordering outside the graph model.
|
||||
- All distance/order computation is derived from traversal itself.
|
||||
### D6. 소프트웨어 관리 라우팅 메타데이터 금지
|
||||
- 라우팅 결정은 그래프 모델 외부에서 거리·hop 수·순서를 추적하는
|
||||
요청별 소프트웨어 관리 메타데이터에 의존해서는 안 된다.
|
||||
- 모든 거리·순서 계산은 순회 자체에서 유도된다.
|
||||
|
||||
## Alternatives Considered
|
||||
|
||||
1) **Hop-count based routing**
|
||||
- Rejected: ignores heterogeneous latency/BW and misrepresents
|
||||
architectural differences.
|
||||
1) **Hop 수 기반 라우팅**
|
||||
- 기각: 이질적인 레이턴시·BW를 무시하고 아키텍처 차이를 잘못 표현한다.
|
||||
|
||||
2) **Implicit local shortcuts**
|
||||
- Rejected: breaks debuggability and violates traversal-based latency.
|
||||
2) **암묵적 로컬 지름길**
|
||||
- 기각: 디버깅 가능성을 해치고 순회 기반 레이턴시 원칙을 위반한다.
|
||||
|
||||
3) **Software-managed distance metadata**
|
||||
- Rejected: increases control overhead and obscures routing semantics.
|
||||
3) **소프트웨어 관리 거리 메타데이터**
|
||||
- 기각: 제어 오버헤드를 증가시키고 라우팅 시맨틱을 모호하게 만든다.
|
||||
|
||||
## Consequences
|
||||
|
||||
### Positive
|
||||
- Clear, debuggable hop-by-hop traces (SPEC R2, R4).
|
||||
- Architecture comparisons reflect real interconnect structure.
|
||||
- Routing behavior is reproducible and deterministic.
|
||||
### 긍정적
|
||||
- 명확하고 디버깅 가능한 hop-by-hop 트레이스 (SPEC R2, R4).
|
||||
- 아키텍처 비교가 실제 인터커넥트 구조를 반영한다.
|
||||
- 라우팅 동작이 재현 가능하고 결정론적이다.
|
||||
|
||||
### Tradeoffs / Costs
|
||||
- Graph construction must be correct and complete.
|
||||
- Bypass modeling requires explicit graph representation,
|
||||
which slightly increases topology description complexity.
|
||||
### 트레이드오프 / 비용
|
||||
- 그래프 구성이 정확하고 완전해야 한다.
|
||||
- 우회 모델링이 명시적 그래프 표현을 요구하므로 토폴로지 기술이
|
||||
약간 더 복잡해진다.
|
||||
|
||||
## Implementation Notes (Non-normative)
|
||||
- Recommended responsibilities:
|
||||
- Graph builder: ensure all required paths exist.
|
||||
- Router: select next hop based on decoded domains and policy.
|
||||
- Tests should assert:
|
||||
- non-zero end-to-end latency
|
||||
- deterministic routing for identical inputs
|
||||
- bypass paths appear explicitly in emitted traces
|
||||
- 권장 책임 분담:
|
||||
- 그래프 빌더: 필요한 모든 경로가 존재함을 보장.
|
||||
- 라우터: 디코딩된 도메인과 정책을 바탕으로 다음 hop 선택.
|
||||
- 테스트가 검증해야 할 항목:
|
||||
- end-to-end 레이턴시 > 0
|
||||
- 동일 입력에 대한 결정론적 라우팅
|
||||
- 우회 경로가 출력 트레이스에 명시적으로 나타남
|
||||
|
||||
## Links
|
||||
- SPEC.md: R1 (routing), R2 (latency), R3 (topology), R5 (multi-domain comm)
|
||||
- ADR-0001: PhysAddr layout & decoding contract
|
||||
- SPEC.md: R1 (라우팅), R2 (레이턴시), R3 (토폴로지), R5 (다중 도메인 통신)
|
||||
- ADR-0001: PhysAddr 레이아웃 및 디코딩 계약
|
||||
|
||||
Reference in New Issue
Block a user