📝 [Research Note] Edge 환경의 이기종 하드웨어(Heterogeneous) 기반 LLM 추론 라우팅 전략
1. 문제 정의 및 목표
배경: Edge 디바이스의 자원 한계와 단일 칩 병목 NVIDIA Jetson 보드나 최신 MPU(Microprocessor Unit)와 같은 Edge 디바이스는 제한된 전력(Power)과 발열(Thermal) 제약 속에서 구동됩니다. 이러한 환경에서 LLM 추론 전체를 GPU나 CPU 어느 한쪽에서만 전담하게 할 경우, 특정 연산 유닛은 과부하에 걸리고 나머지 유닛은 유휴 상태(Idle)로 방치되는 심각한 자원 낭비와 병목(Bottleneck)이 발생합니다.
해결책 제안: Heterogeneous Computing (이기종 컴퓨팅) 최신 Edge SoC(System on Chip)는 CPU, GPU, 그리고 NPU(Neural Processing Unit)를 모두 탑재하고 있습니다. 모델의 연산 그래프(Computation Graph)를 분석하여, 각 연산의 특성에 가장 잘 맞는 하드웨어로 작업을 적재적소에 분산(Dispatching)하는 전략이 필요합니다.
연구 목표 본 문서는 LLM 추론 시 발생하는 다양한 연산(Operator)들을 프로파일링(Profiling)하고, CPU/GPU/NPU의 물리적 아키텍처 특성에 맞추어 서브그래프(Sub-graph)를 자동 할당하는 이기종 라우팅(Heterogeneous Routing) 파이프라인을 설계합니다.
2. LLM 연산 프로파일링 및 이기종 프로세서 특성 분석
최적의 라우팅을 위해서는 먼저 워크로드의 특성과 하드웨어의 장단점을 명확히 교차 분석해야 합니다.
LLM 추론 파이프라인의 연산 특성
- Compute-bound 작업: 행렬 곱(MatMul). 파라미터가 가장 많고 병렬 연산이 극도로 요구되는 구간 (e.g., QKV Projection, FFN Linear).
- Memory-bound 작업: KV Cache 조회(Lookup) 및 업데이트, Softmax, LayerNorm. 연산 자체는 단순하지만 메모리 대역폭을 심하게 소모하는 구간.
- Control-intensive 작업: 조건부 분기(Branching), 시퀀스 길이 관리, 토큰 샘플링(Top-K, Top-P 로직).
이기종 프로세서(CPU, GPU, NPU)의 물리적 아키텍처 비교
- CPU: 코어 수는 적지만 클럭(Clock)이 높고 캐시 메모리 체계가 정교합니다. 복잡한 제어 로직(Control Logic) 처리, 분기 예측, 메모리 포인터 조작(KV Cache 스케줄링)에 압도적으로 유리합니다.
- GPU: 수천 개의 코어를 통한 SIMT(Single Instruction, Multiple Threads) 기반의 대규모 병렬 처리에 특화되어 있습니다. FP16/FP32 기반의 대형 행렬 연산 처리에 적합합니다.
- NPU: 특정 텐서 연산(특히 INT8/INT4 양자화된 MatMul 및 Convolution)을 극단적으로 적은 전력으로 빠르게 처리하는 전용 가속기입니다. 하지만 지원하는 연산자(Operator)의 종류가 제한적이며 유연성이 떨어집니다.
3. Heterogeneous 자동 할당(Routing) 파이프라인 설계
위의 프로파일링을 바탕으로, PyTorch나 ONNX 모델이 입력되었을 때 최적의 하드웨어로 작업을 분배하는 휴리스틱(Heuristic) 라우팅 알고리즘을 제안합니다.
Step 1: 연산 그래프 파티셔닝 (Graph Partitioning) 추론 엔진이 모델을 로드할 때, 전체 연산 그래프를 연산자(Op Type)와 텐서의 형태(Tensor Shape)를 기준으로 서브그래프(Sub-graph)로 쪼갭니다.
Step 2: 오퍼레이터 디스패칭 룰 (Operator Dispatching Rules) 각 서브그래프를 하드웨어에 매핑하는 기준은 다음과 같습니다.
- NPU 할당 최우선 순위: 양자화가 완료된(INT8/INT4) 대규모 Linear 레이어(MatMul)는 전력 효율을 위해 무조건 NPU로 라우팅합니다. 단, NPU가 지원하지 않는 커스텀 활성화 함수(예: SwiGLU의 변형 등)가 붙어있을 경우 해당 노드는 분리합니다.
- GPU 할당: NPU 캐파(Capacity)를 초과하거나 정밀도 유지가 필요한 FP16 MatMul, 그리고 병렬 처리가 가능한 Softmax 및 Attention 연산은 GPU로 넘깁니다.
- CPU 할당 (Fallback & Control):
- NPU와 GPU가 연산을 수행하는 동안, CPU는 **KV Cache의 메모리 주소 할당 및 해제(Memory Management)**를 백그라운드에서 비동기적으로(Asynchronously) 처리합니다.
- 디코딩 단계의 토큰 샘플링(Top-K, Temperature Scaling)과 같은 순차적 제어 로직은 CPU가 전담하여 GPU/NPU의 파이프라인 스톨(Stall)을 방지합니다.
Step 3: 데이터 전송 비용(Overhead) 최소화 설계 가장 주의해야 할 점은 CPU GPU NPU 간의 메모리 복사(Memory Copy) 시간입니다. 연산을 넘겨주는 이득보다 PCIe 버스나 공유 메모리를 타는 복사 시간이 더 길다면 의미가 없습니다.
- 해결책: Jetson 같은 SoC는 통합 메모리(Unified Memory) 아키텍처를 가집니다. Zero-copy 메모리 포인터 공유 기법을 활용하여, 물리적인 데이터 이동 없이 각 프로세서가 동일한 메모리 주소를 참조하도록 파이프라인을 구성해야 합니다.
4. 결론
이기종 하드웨어 라우팅 전략은 LLM 추론 엔진 개발에 있어 궁극의 최적화 단계입니다. 단일 칩에 의존하던 기존 방식을 벗어나 SoC 전체의 컴퓨팅 파워를 100% 이끌어냄으로써, Edge 환경에서도 끊김 없는(Seamless) AI 구동이 가능함을 확인했습니다.
한계점 (Trade-off) 휴리스틱에 의존한 정적 라우팅(Static Routing)은 모델 구조가 바뀌거나 텐서 크기가 동적으로 변할 때 유연하게 대처하기 어렵습니다.