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 단위.

\[\frac{800}{250} \;=\; \mathbf{3.125\,\times}\]

즉, 외부 포트의 대역폭은 변하지 않으나 데이터를 버퍼에 누적한 후 내부에서 고속으로 소비하며 한 사이클에 두 번의 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 부족으로 N_max 급감. W5/W6 이 필요하면 별도 모드 설계 필요.

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 실측 기대)