PowerInfer
무엇인가
PowerInfer는 개인용 컴퓨터 한 대에서 대형 언어 모델을 서빙하는 추론 엔진이다. llama.cpp와 같은 자리의 로컬 추론 실행기에 속하며, 모델 가중치를 GPU 메모리에 전부 적재하는 대신 뉴런 활성화 분포를 근거로 연산을 CPU와 GPU에 나눠 배치한다.
어떻게 동작하나
동작 원리는 LLM 추론에서 관찰되는 활성화 지역성이다. 뉴런 활성화가 멱법칙 분포를 따르며, 입력과 무관하게 반복 활성화되는 소수 hot 뉴런과 입력에 따라 달라지는 다수 cold 뉴런으로 갈린다. hot 뉴런의 가중치는 GPU VRAM에 상주시키고 cold 뉴런은 CPU에서 계산한다. 어느 뉴런이 활성화될지 예측하는 adaptive predictor와 뉴런 단위 희소 연산자(neuron-aware sparse operator)가 이 배치를 받쳐준다. 결과적으로 GPU 메모리 요구량과 CPU-GPU 간 데이터 전송량이 줄어든다.
무엇과 다른가
llama.cpp와의 차이는 분할 기준이다. llama.cpp가 레이어 단위로 GPU와 CPU에 오프로딩한다면, PowerInfer는 뉴런 활성화 여부를 기준으로 나눈다. GPU에는 hot 뉴런 가중치만 올라가고 나머지 연산은 CPU가 맡는다. llama.cpp의 모델 가중치로도 추론할 수 있으나 이 경우 속도 이득은 없다. examples/ 디렉터리의 서버·배치 생성 예제는 llama.cpp와 같은 방식으로 사용한다.
어떻게 쓰나
빌드는 CMake 3.17+로 수행하고, 모델 가중치 변환과 FFN 자동 오프로딩에 Python 3.8+와 pip를 쓴다. 저장소는 설치, 모델 가중치 준비, 추론의 세 단계로 문서를 나누며, 추론은 examples/ 아래 실행 파일로 돌린다.
전제와 한계
지원 범위는 x86-64 AVX2 CPU 기준 Linux와 Windows이며 NVIDIA GPU 유무를 가리지 않는다. AMD는 ROCm으로 지원하고, macOS에서는 Apple M 칩의 CPU만 사용한다. 속도 향상은 ReLU 계열 희소 모델에 한정되며 Falcon-40B, Llama2 계열, ProSparse Llama2 계열, Bamboo-7B를 쓸 수 있다. macOS용 Metal 백엔드는 아직 준비 중이다.
관련 논문 3
유사 도구
- llama.cppC/C++로 작성된 LLM·VLM 추론 엔진이다. ggml 위에서 GGUF 양자화 모델을 CPU·GPU로 실행하며 외부 의존성이 없다.
- HyperQwenvLLM을 패치해 24GB 소비자 GPU 한 장에서 대형 Qwen을 서빙하는 스택이다. 150k 컨텍스트와 OpenAI 호환 API를 단일 사용자·배치 두 모드로 내놓는다.
- lmdeployLLM을 4bit로 압축해 GPU에서 서빙하는 파이썬 툴킷이다. TurboMind와 PyTorchEngine 두 추론 엔진, OpenAI 호환 API 서버를 포함한다.
- llamafilellama.cpp와 Cosmopolitan Libc를 결합해 LLM 가중치와 추론 런타임을 단일 실행 파일로 묶는 로컬 실행기다. 설치 없이 여러 운영체제와 CPU 아키텍처에서 구동된다.
- flashinferLLM 서빙용 고성능 GPU 커널 라이브러리이자 커널 생성기다. attention·GEMM·MoE를 하나의 API로 묶고 하드웨어와 워크로드에 맞는 백엔드를 자동 선택한다.
- cactus모바일·웨어러블에서 LLM·VLM·음성 모델을 실행하는 C++ 추론 엔진이자 CLI다. 양자화 커널과 런타임을 함께 포함한다.