PICACHU(Plug-In CGRA for Nonlinear Operations in LLMs)는 대규모 언어 모델(LLM)에서 반복적으로 등장하는 비선형 연산(Softmax, GELU, LayerNorm, RMSNorm, RoPE 등)을 전용 하드웨어에서 가속하기 위해 고안된 플러그인(Plug-In) CGRA(Coarse-Grained Reconfigurable Architecture) 기반 가속기이다. PICACHU는 전용 컴파일러, 연산 알고리즘 최적화, 그리고 비선형 연산 전용 재구성 가능 연산 유닛(FU)을 결합하여 기존 GPU가 병목으로 겪는 비선형 연산을 빠르게 처리하도록 설계되었다.
본 기술은 다음 논문을 기반으로 한다: Qin, Jiajun, et al. "PICACHU: Plug-In CGRA Handling Upcoming Nonlinear Operations in LLMs." (ASPLOS 2025).
배경: 왜 PICACHU가 필요한가?
대규모 언어 모델은 대부분의 연산이 행렬곱(GEMM)으로 구성되며, 이는 GPU에서 매우 빠르게 처리된다. 그러나 다음과 같은 비선형 함수들은 GPU에서 상대적으로 느리고 병목이 된다.
- Softmax
- GELU
- Sigmoid / SiLU
- LayerNorm / RMSNorm
- RoPE (Rotary Positional Embedding)
이 함수들은 다음과 같은 고비용 연산을 포함한다:
- 지수(exp)
- 로그(log)
- 나눗셈(division)
- 제곱근 / 역제곱근(sqrt / inverse sqrt)
- 삼각함수(sin, cos)
따라서 전체 추론(latency)의 15~30%가 비선형 함수 처리에 소요되는 경우가 발생한다. PICACHU는 이러한 병목을 완전히 해결하기 위해 설계된 하드웨어 가속기이다.
PICACHU의 전체 구조
다음 구성요소로 이루어진다.
1. Compiler (비선형 연산 탐지 및 오프로딩)
PICACHU 전용 컴파일러는 LLM 모델 그래프 내에서 다음 패턴들을 자동으로 탐지한다.
call_cgra_GELUcall_cgra_SOFTMAXcall_cgra_LAYERNORMcall_cgra_RMSNORMcall_cgra_ROPE
탐지된 비선형 연산은 기존 GPU가 아닌 PICACHU CGRA 쪽으로 오프로딩된다. 컴파일러는 다음 과정을 수행한다.
- 패턴 매칭 및 오프로딩
- Loop Transformation (Unroll & Vectorize)
- 정밀도 변환(FP / INT)
- CGRA용 제어 신호(Control Signals) 생성
- Tile 분할 및 맵핑(Tune & Map)
2. Algorithm Layer (수학적 최적화)
비선형 함수들은 계산 비용을 절감하기 위해 다음과 같은 방식으로 단순화된다.
- Softmax → 근사 exp + sum + division
- GELU → 다항식 근사 또는 x·σ(ax + b) 형태로 변환
- SiLU / Sigmoid → exp 기반 근사
- LayerNorm → mean/variance 계산 + inverse sqrt 근사
- RMSNorm → sqrt 근사
- RoPE → sin/cos 근사 및 LUT 활용
이 구조는 하드웨어에서 빠르게 수행될 수 있도록 함수들을 기초 수학 연산(exponential, division, inverse sqrt, trigonometric)으로 분해한다.
3. Architecture (PICACHU CGRA)
PICACHU의 핵심은 구조적으로 재구성 가능한 연산 어레이(FU Array)이다.
주요 구성 요소:
- Precision-aware Functional Units (FU)
- Shared Buffer
- Streaming Interface
- Local Interconnect Network
- DMA 엔진
- CPU 제어 모듈
CGRA는 특정 비선형 함수에 맞춰 데이터 경로를 재구성하여 최적의 병렬 처리 구조를 만든다.
LLM의 비선형 연산 분류
PICACHU는 다음과 같은 함수들을 모두 처리한다.
| Category | Nonlinear Operation | Mathematical Operator | 사용 LLM 예시 |
|---|---|---|---|
| Activation Function | Softmax | exp, division | OPT, TS 등 대부분 |
| Activation Function | GELU(x), GeLU(U·W + b) | division + exponential | GPT, LLaMA, BLOOM 등 |
| Activation Function | SwiGLU / SiLU(x) | division + exponential | PaLM, DeepSeek, InternLM |
| Activation Function | ReLU(x) = max(x, 0) | maximum | 모든 LLM |
| Normalization | LayerNorm(x) | inverse square root | GPT, Falcon 등 |
| Normalization | RMSNorm(x) | square root | LLaMA, Qwen 등 |
| Positional | RoPE | sine, cosine | GPT-NeoX, LLaMA 등 |
문서의 핵심은 다음과 같다:
LLM에서 등장하는 모든 비선형 연산은 결국 "기초적인 수학 연산"들의 조합이며, PICACHU는 이들 연산을 전용 하드웨어에서 가속한다.
PICACHU의 장점
- 비선형 연산의 전용 가속으로 GPU 병목을 제거
- GEMM과 비선형 연산의 파이프라이닝 가능
- FP/INT 정밀도 혼합으로 에너지 효율 증가
- 컴파일러가 자동 오프로딩하여 개발자 부담 감소
- 기존 시스템(GPU/CPU)에 플러그인 형태로 통합 가능