pccx: 병렬 컴퓨트 코어 익스큐터

License Architecture Target Precision

공지: 현재 활발히 개발 중입니다 > pccx는 리소스 제약이 있는 엣지 디바이스에서 트랜스포머 기반 대규모 언어 모델(LLM)을 가속하도록 설계된 확장 가능하고 모듈화된 신경망 처리 장치(NPU) 아키텍처입니다.


1. 아키텍처 개요

pccx는 디바이스에 독립적인 하드웨어-소프트웨어 공동 설계 프레임워크입니다. 대상 디바이스의 특정 물리적 리소스 예산에 맞게 코어 아키텍처를 확장하여 엣지 하드웨어의 메모리 대역폭과 컴퓨트 병목 현상을 해결하는 데 집중합니다.

1.1 에코시스템 구조

이 프로젝트는 최대한의 이식성과 확장성을 보장하기 위해 세 개의 레이어로 엄격히 분리됩니다:

  • /architecture (로직 레이어) — 핵심 RTL(레지스터 전송 레벨) 로직과 생성 파라미터를 포함합니다.

    • 논리 파이프라인, 명령어 스케줄링, 커스텀 64비트 ISA 를 정의합니다.

    • 이 레이어는 특정 하드웨어 벤더나 인터페이스 프로토콜과 무관합니다.

  • /device (구현 레이어) — 특정 하드웨어 타겟에 pccx 아키텍처를 매핑합니다.

    • 사용 가능한 리소스 예산(예: DSP 수, 로컬 메모리 크기)에 따라 컴퓨트 코어 수, 시스톨릭 어레이 크기, 메모리 포트 너비를 조정합니다.

  • /driver (소프트웨어 레이어) — C/C++ 하드웨어 추상화 레이어(HAL)와 고수준 API를 제공합니다.

    • 명령어 디스패칭과 메모리 매핑을 관리하며, 고수준 AI 모델과 pccx 하드웨어 사이의 브릿지 역할을 합니다.


2. 주요 기술 기능

2.1 분리형 데이터플로우 & 커스텀 ISA

이 아키텍처는 행렬 및 벡터 연산에 최적화된 커스텀 64비트 ISA 를 활용합니다. 파이프라인 스톨을 제거하고 처리량을 극대화하기 위해 명령어 디코딩과 실행을 분리하는 분리형 데이터플로우 파이프라인을 채택합니다.

2.2 W4A8 동적 정밀도 승격

효율성과 정확도를 모두 유지하기 위해:

  • 컴퓨트: 병렬 2D 시스톨릭 어레이가 고밀도 INT4(가중치) × INT8(활성화) 연산을 실행합니다.

  • 승격: 비선형 연산(Softmax, RMSNorm, GeLU) 중에 수치 정밀도를 유지하기 위해 복합 벡터 연산(CVO) 코어 내에서 자동으로 BF16 / FP32로 정밀도를 승격합니다.

2.3 계층적 메모리 구조

  • 행렬 코어: 확장 가능한 어레이 크기의 GEMM 연산 전용.

  • 벡터 코어: GEMV 및 요소별 연산을 처리합니다.

  • 공유 인터커넥트: 중재 오버헤드 없이 코어와 로컬 캐시 간의 동시 접근을 허용하는 유연한 데이터 버스 시스템.


3. 문서

자세한 기술 사양은 pccx v002 아키텍처 의 다음 섹션에서 확인할 수 있습니다:

  1. 명령어 세트 아키텍처 (ISA) — 64비트 커스텀 명령어 세트 사양.

  2. 하드웨어 아키텍처 — 하드웨어 아키텍처 및 플로어플랜.

  3. 소프트웨어 스택 — pccx 드라이버 및 SDK 문서.

v001 아키텍처는 아카이브: v001 실험적 아키텍처 에 아카이브되어 있습니다.


4. 라이선스

이 프로젝트는 Apache License 2.0 하에 라이선스가 부여됩니다. 오픈소스 하드웨어 개발을 위한 안전한 생태계를 보장하면서 아키텍처를 특허 관련 위험으로부터 보호하며 자유로운 사용과 수정을 제공합니다.


5. 에코시스템

RTL 구현체

github.com/hwkim-dev/pccx-FPGA-NPU-LLM-kv260

활성 v002 SystemVerilog 원본 — ISA 패키지, 컨트롤러, 컴퓨트 코어 (GEMM / GEMV / CVO), 메모리 계층. 타겟 디바이스는 Xilinx Kria KV260 (Zynq UltraScale+ ZU5EV).

이 사이트의 모든 v002 RTL 레퍼런스 페이지는 해당 .sv 파일로 직접 연결됩니다.

pccx-FPGA-NPU-LLM-kv260 저장소를 GitHub 에서 열기
문서 소스

github.com/hwkim-dev/pccx — 이 사이트를 빌드하는 Sphinx 프로젝트.

pccx 문서 저장소를 GitHub 에서 열기
저자 포트폴리오

hwkim-dev.github.io/hwkim-dev — 블로그, 다른 프로젝트, 소개.

hwkim-dev 포트폴리오 사이트 열기