v001 → v002 설계 근거¶
pccx v001은 구현 직전 단계까지 도달하였으나 최종적으로 실장되지 않고
docs/archive/experimental_v001/로 이관되었다. 본 문서에서는 발생한
아키텍처적 결함과 v002가 이를 어떻게 해소했는지를 다룬다.
1. v001 핵심 결함 및 v002 의 해결책¶
아래 다이어그램은 v001에서 발견된 각각의 아키텍처적 결함이 v002의 어떤 설계 결정으로 이어졌는지 시각적으로 보여준다.
flowchart LR
subgraph v001 ["v001 결함"]
F1[코어 역할 분담 모호]
F2[불필요한 버스 다수]
F3[L2 / Global Cache 역할 중복]
F4[HP 포트 배치 비효율]
F5[시스톨릭 어레이 미최적화]
end
subgraph v002 ["v002 해결책"]
R1[3 코어 체제 확립]
R2[버스 단순화]
R3[L2 중앙 집중화]
R4[HP 포트 분산]
R5[듀얼 채널 비트 패킹]
end
F1 -->|경계 불분명| R1
F2 -->|라우팅 혼잡| R2
F3 -->|데이터 중복| R3
F4 -->|가중치 공급 병목| R4
F5 -->|1 DSP = 1 MAC| R5
style v001 fill:#f5edd5,stroke:#dbe1ea,stroke-width:2px,color:#000
style v002 fill:#dae7f4,stroke:#dbe1ea,stroke-width:2px,color:#000
3 코어 체제 확립: GEMV, GEMM, SFU로 코어를 명확히 분리하고, 각 코어의 접근 패턴에 맞게 L2 캐시와 버퍼를 연결하여 역할 중복을 제거.
버스 단순화: 모든 데이터를 WEIGHT BUS와 ACTIVATION BUS 두 축으로 통일하고 물리적으로 직교 배치하여 라우팅 충돌 방지.
L2 중앙 집중화: Global Cache 역할을 L2에 흡수하고 플로어플랜 중앙에 배치하여 상·하 슬라이스가 대칭적으로 접근.
HP 포트 분산: HP2와 HP3 두 포트를 독립 슬라이스에 할당하여 가중치 공급 병목 해소.
듀얼 채널 비트 패킹: 1 DSP = 2 MAC 구조를 채택하여 시스톨릭 어레이 전체가 클럭 당 2,048개의 연산을 수행하도록 최적화.
3. 속도 향상 분석 — 3.125 배¶
v001 대비 v002의 이론 성능 향상은 다음 세 요소의 결합으로 설명된다.
개선 항목 |
배수 |
근거 |
|---|---|---|
내부 클럭 향상 |
× 400 / 250 = 1.6 |
외부 AXI 250 MHz → 내부 코어 400 MHz 로 분리. |
HP 포트 2 개화 |
(이미 400 MHz 도메인에서 소비) |
4 개 HP 포트 중 2 개 (HP2 / HP3) 를 상·하 슬라이스에 독립 할당, 가중치 공급 대역폭 2 배. |
비트 패킹 |
× 2 |
1 DSP = 2 MAC 동시 수행. |
이 세 요소를 곱하여 1.6 × 2 × (가중치 공급 병목 해소) ≈ 3.125 배의 유효 처리량 향상을 도출한다.
3.1 부하 관점의 유도¶
v001 의 경우: 250 MHz × 1 HP × 1 MAC/DSP = 250 단위 처리량. v002 의 경우: 400 MHz × 2 MAC/DSP, 그리고 HP 포트가 250 MHz × (HP2+HP3) 로 쌓이는 버퍼 위에서 400 MHz 로 소비 → 내부 소비율 기준 800 단위.
즉, 외부 포트의 대역폭은 변하지 않으나 데이터를 버퍼에 누적한 후 내부에서 고속으로 소비하며 한 사이클에 두 번의 MAC 연산을 수행함으로써 시스톨릭 어레이의 유효 처리량이 3.125배로 향상된다.
3.2 매 클럭 내부 Throughput 의 구성¶
flowchart LR
subgraph ext[외부 250 MHz 도메인]
HP2[AXI HP2] --> BUF[Weight Buffer<br/>CDC FIFO]
HP3[AXI HP3] --> BUF
end
subgraph core[내부 400 MHz 도메인]
BUF -->|broadcast| SA[Systolic Array<br/>32×32 · 1 DSP = 2 MAC<br/>cascade break @ 16 행]
SA --> ACC[Result Accumulator<br/>819 GMAC/s peak]
end
32 × 32 단일 격자가 1,024 PE × 2 MAC = 2,048 MAC/clk 을 수행하고, 400 MHz로 동작하여 819 GMAC/s의 이론 최고 성능(Peak)이 산출된다.
4. 새로운 트레이드오프¶
성능 향상에 대한 트레이드오프로 v002는 다음과 같은 제약을 갖는다.
제약 |
설명 |
|---|---|
가중치 정밀도 제한 |
W4 초과 시 guard bits 부족으로 |
K-split 필요 |
K > 4,096 인 레이어는 드라이버 계층에서 타일 분할. |
부호 복원 후처리 |
PE 당 1-bit adder + 23-bit 분리 로직이 추가되지만 throughput 영향 없음. |
CDC 복잡도 |
250 MHz ↔ 400 MHz async FIFO 설계 및 검증 비용. |
5. 아카이브 된 v001 과의 요약 비교¶
항목 |
v001 (Archived) |
v002 |
|---|---|---|
설계 편중 |
GEMM 중심 (프리필 최적화) |
GEMM · GEMV · SFU 3 코어 체제 |
L2 캐시 위치 |
외곽 |
중심 배치, 양측 대칭 인터커넥트 |
Global Cache |
별도 블록 |
L2 에 통합 |
양자화 |
W4A16 (BF16 activation) |
W4A8 (INT8 activation) |
HP 포트 |
단일 SA 에 1 개 |
HP2 / HP3 분산 (상·하 슬라이스) |
DSP 활용 |
1 DSP = 1 MAC |
1 DSP = 2 MAC |
이론 피크 (400 MHz) |
~320 GMAC/s |
819 GMAC/s (×2.56 실측 기대) |
더 보기
v001 상세: 아카이브: v001 실험적 아키텍처
비트 패킹 상세: DSP48E2 W4A8 비트 패킹과 부호 복원
KV 캐시 전략: KV 캐시 최적화 전략