PICACHU (인공지능)
더 많은 작업
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).
대규모 언어 모델은 대부분의 연산이 행렬곱(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 전용 컴파일러는 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)
비선형 함수들은 계산 비용을 절감하기 위해 다음과 같은 방식으로 단순화된다.
- 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)으로 분해한다.
PICACHU의 핵심은 구조적으로 재구성 가능한 연산 어레이(FU Array)이다.
주요 구성 요소:
- Precision-aware Functional Units (FU)
- Shared Buffer
- Streaming Interface
- Local Interconnect Network
- DMA 엔진
- CPU 제어 모듈
CGRA는 특정 비선형 함수에 맞춰 데이터 경로를 재구성하여 최적의 병렬 처리 구조를 만든다.
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는 이들 연산을 전용 하드웨어에서 가속한다.
- 비선형 연산의 전용 가속으로 GPU 병목을 제거
- GEMM과 비선형 연산의 파이프라이닝 가능
- FP/INT 정밀도 혼합으로 에너지 효율 증가
- 컴파일러가 자동 오프로딩하여 개발자 부담 감소
- 기존 시스템(GPU/CPU)에 플러그인 형태로 통합 가능