pccx: 병렬 컴퓨트 코어 익스큐터¶
공지: 현재 활발히 개발 중이다 > pccx는 리소스 제약이 있는 엣지 환경에서 트랜스포머 기반 대규모 언어 모델(LLM) 가속을 위해 설계된 확장 가능하고 모듈화된 신경망 처리 장치(NPU) 아키텍처다.
1. 아키텍처 개요¶
pccx는 리소스 제약이 있는 엣지 환경에서 Transformer 기반 LLM 의 autoregressive 디코딩을 가속하기 위한 하드웨어-소프트웨어 공동 설계 프레임워크다. 합성 시점에 타겟 디바이스의 DSP·BRAM·URAM 예산에 맞춰 코어 아키텍처가 결정되며, 1 차 타겟은 Xilinx Kria KV260 SoM (Zynq UltraScale+ ZU5EV) 이다.
1.1 에코시스템 구조¶
이 프로젝트는 동일한 로직을 다른 디바이스로 재합성하거나 다른 호스트 스택에서 구동할 수 있도록 세 개의 레이어로 분리된다:
/architecture(로직 레이어) — 핵심 RTL(Register Transfer Level) 로직과 생성 파라미터를 포함한다.논리 데이터 파이프라인, 명령어 스케줄러 및 커스텀 64비트 ISA를 정의한다.
특정 하드웨어 벤더나 인터페이스 프로토콜에 종속되지 않는다.
/device(구현 레이어) — 특정 하드웨어 환경에 pccx 아키텍처를 매핑한다.가용 리소스 예산(예: DSP 슬라이스 수, 로컬 메모리 용량)에 따라 연산 코어의 수, 시스톨릭 어레이 규격, 메모리 포트 대역폭을 동적으로 조율한다.
/driver(소프트웨어 레이어) — C/C++ 기반의 하드웨어 추상화 계층(HAL)과 고수준 API를 제공한다.명령어 디스패치 및 메모리 매핑을 전담하며, 고차원 AI 모델 프레임워크와 pccx 하드웨어를 연결하는 브릿지 역할을 수행한다.
2. 주요 기술 기능¶
2.1 분리형 데이터플로우 & 커스텀 ISA¶
이 아키텍처는 행렬 및 벡터 연산에 최적화된 커스텀 64비트 ISA를 채택했다. 명령어 디코딩과 실행 단계를 분리하는 분리형(Decoupled) 데이터플로우 구조를 도입하여 디스패치 단계의 파이프라인 스톨(stall)을 줄인다.
2.2 W4A8 동적 정밀도 상향 (Dynamic Precision Promotion)¶
연산 효율성과 모델 정확도를 동시에 충족하기 위해 다음 기법을 적용한다:
연산: 병렬 2D 시스톨릭 어레이가 고밀도 INT4(가중치) × INT8(활성값) 행렬 곱을 수행한다.
상향: 비선형 함수(Softmax, RMSNorm, GeLU 등) 연산 시 수치적 정밀도를 잃지 않도록 복합 벡터 연산(CVO) 코어 내부에서 자동으로 데이터 포맷을 BF16 또는 FP32로 승격시켜 처리한다.
2.3 계층적 메모리 아키텍처¶
매트릭스 코어: 확장성을 지닌 어레이 크기를 바탕으로 GEMM 연산만을 전담한다.
벡터 코어: GEMV 및 Element-wise 연산을 효율적으로 분담하여 처리한다.
공용 인터커넥트: 중재 오버헤드 없이 각 코어와 로컬 캐시 간 동시 엑세스를 지원하는 유연한 데이터 버스 구조를 갖췄다.
3. 문서¶
상세한 기술 스펙은 pccx v002 아키텍처 문서를 참조한다:
명령어 세트 아키텍처 (ISA) — 64비트 커스텀 명령어 집합(ISA) 명세.
하드웨어 아키텍처 — 하드웨어 아키텍처 및 물리적 플로어플랜 설계.
소프트웨어 스택 — pccx 드라이버 및 SDK 가이드런스.
v001 레퍼런스 아키텍처는 아카이브: v001 실험적 아키텍처 에 보존되어 있다.
4. 라이선스¶
본 프로젝트는 Apache License 2.0 라이선스를 적용받는다. 개방형 하드웨어 파편화 방지와 생태계 보호를 지향하는 동시에, 특허 소송의 위험으로부터 아키텍처를 보호하여 학계 및 산업계 연구자들이 자유롭게 목적에 맞게 수정하고 사용할 수 있도록 한다.
5. 에코시스템¶
github.com/pccxai/pccx-FPGA-NPU-LLM-kv260
활성 상태의 v002 SystemVerilog 컴포넌트 — ISA 패키지, 제어 유닛, 연산 파이프라인 (GEMM / GEMV / CVO), 및 메모리 스토리지 계층 구성을 관장한다. 운영 타겟 하드웨어는 Xilinx Kria KV260 (Zynq UltraScale+ ZU5EV)이다.
본 문서 사이트의 모든 v002 RTL 참조 페이지는
GitHub 프로젝트의 최신 .sv 코드로 직접 라우팅된다.
github.com/pccxai/pccx — 본 문서 사이트를 빌드하기 위한 Sphinx 프로젝트.
hkimw.github.io/hkimw — 블로그, 다른 프로젝트, 소개.