LocalAI, 18개 백엔드를 파이썬 대신 자체 C/C++ 엔진으로 재작성한 이유와 성능 비교 공개
- LocalAI는 llama.cpp, vLLM 등 기존 엔진을 감싸는 대신 18개 백엔드를 처음부터 C/C++로 직접 포팅해서 사용함
- vLLM의 V1 서빙 아키텍처를 C++20으로 포팅한 vllm.cpp는 66MiB 바이너리로 동작하는 반면, 원본 vLLM은 9.1GiB짜리 가상환경이 필요함
- GB10에서 Qwen3.6-27B(NVFP4)로 테스트한 결과 vllm.cpp가 동시성 1~32 구간 모두에서 vLLM과 동등하거나 소폭 앞섰고, 피크 메모리도 24.88GiB로 vLLM의 28.18GiB보다 적음
- ByteDance의 Depth Anything 3를 포팅한 depth-anything.cpp는 PyTorch보다 CPU에서 1.31배 빠르고 메모리는 27%만 쓰는데, 이는 매 forward마다 재계산되던 위치 임베딩을 캐싱해서 얻은 결과임
- face-detect.cpp와 voice-detect.cpp는 insightface와 코사인 유사도 1.000000으로 정확도는 동일하지만 CPU 속도는 onnxruntime 대비 0.61~0.84배로 느리고, GPU에서는 cuDNN과 성능이 같아짐
Hacker News 의견들
블로그 포스트나 지 손으로 좀 써라, AI 냄새 심하게 남
맞아, 이런 식으로 다 '적절한 형태'로 짜맞춘 글 읽는 거 진짜 지침
글 읽어봤는데 AI 슬롭처럼 안 보이던데? 어디가 슬롭인지 근거 좀 대봐, 그냥 뒤집어씌우기만 하면 안 되지
난 흥미롭게 읽었음. AI 도움 받았는지 몰라도 그게 왜 무시할 이유가 되는지 모르겠음
사이트 자체는 바이브코딩한 티가 나긴 하는데 (스크롤도 버벅이고) 본문 내용엔 AI 특유의 티가 딱히 안 보이던데, 뭘 보고 그러는 거임?
Claude로 작업했다는 말도 똑같이 할 수 있는 거 아니냐
나도 Model2Vec 정적 임베더랑 NER 추론을 ONNX Runtime에서 순수 C로 포팅해서 WASM으로 컴파일했는데, 30MB짜리가 300KB로 줄고 속도도 1.5배 빨라짐. 성능이나 배포 크기 때문이면 확실히 해볼 가치 있음
'뭘 얻나: X는 A고 Y는 B다' 이런 문체 패턴 좀 보임
나도 관계형 트랜스포머 엔진(RelativeDB) 만들면서 pytorch에서 c++로, 다시 Triton으로 갔었음. c++가 Triton보다 성능은 더 좋았는데 GPU마다 최적화할 여력이 안 돼서 그냥 15% 처리량 손해 감수하고 씀. 대신 유연성은 확실히 얻었음. 근데 이 vllm.cpp 포트는 진짜 괜찮아 보임, 계속 유지보수 해주면 좋겠다, 나도 vllm에서 똑같은 한계 겪었음
이 vllm 포트로 설치 시간도 줄일 수 있나? GPU 인스턴스 하루에 여러 번 켜는데 vllm 세팅에만 5분 걸림, 이걸로 그 시간 줄일 수 있으면 좋겠음
다들 자기 커널 직접 짜고 싶어하는 게 놀랍지 않음. llama나 sd 같은 기존 엔진들은 최적 그래프 컴파일을 지원 안 해서 보통 2~3배 성능 손실이 남. CUDA 그래프도 어느정도 커버하지만 여전히 놓치는 부분이 많음. 파이프라이닝이랑 커널 병합을 제대로 할 줄 알면 직접 최적화하는 게 그만한 가치가 있음