13년 된 구형 Xeon 서버에서 Gemma 4 26B 구동 성공
고가의 GPU 렌탈 비용이나 매달 지불하는 유료 API 구독료는 로컬 LLM 도입을 망설이게 하는 가장 큰 장벽이다. 최신 하드웨어 없이도 모델을 돌릴 방법이 절실한 상황에서, 13년 전 출시된 구형 Xeon 서버로 Google의 Gemma 4 26B 모델을 구동하는 데 성공했다.
이번 구동에는 GPU를 전혀 사용하지 않고 두 개의 Ivy Bridge Xeon 프로세서가 탑재된 HP StoreVirtual 스토리지 박스를 활용했다. Gemma 4 26B MoE(Mixture-of-Experts) 모델은 초당 약 5토큰의 속도로 텍스트를 생성하며, 이는 사람이 일반적인 문장을 읽는 속도와 유사한 수준이다.
구동을 가능하게 만든 핵심 수정 사항은 ikawrakow/ik_llama.cpp#2138 패치를 통해 공개됐다. 현재 메인테이너의 리뷰를 기다리는 상태이므로, 즉시 적용하려는 사용자는 해당 브랜치에서 직접 실행해야 한다. 이 패치는 최신 명령어 집합을 지원하지 않는 오래된 엔터프라이즈 하드웨어 사용자들에게 로컬 모델 구동 경로를 제공한다.
구형 하드웨어 기반의 로컬 LLM 구축은 API 서비스 장애 시 즉각 투입 가능한 백업 시스템을 확보한다는 점에서 실무적 대안이 된다. 특히 실시간 응답이 필요 없는 저비용 배치 작업에 유휴 구형 서버를 할당해 추론 파이프라인을 확장할 수 있다.
AVX2 미지원 CPU를 위한 소프트웨어 폴백 구현
`ik_llama.cpp`의 고속 커널은 2014년 출시된 Haswell(v3) 세대부터 도입된 AVX2(고급 벡터 확장 2)와 FMA3(융합 곱셈-덧셈 3) 명령어 집합을 가정하고 작성되었다. 하지만 Ivy Bridge(v2) CPU는 이보다 이전 세대이므로 최신 라이브러리가 요구하는 최적화 실행 경로를 사용할 수 없다.
이를 해결하기 위해 Claude를 활용해 성능 임계점이 낮은 C++ 코드를 분석하고 구형 CPU에서도 동작하는 패치를 작성했다. Claude는 기존에 시도되었으나 중단되었던 접근 방식을 구체화하여, 특정 마이크로아키텍처에서 커널이 유효하지 않은 이유를 분석하고 구형 칩에서 안정적으로 작동하는 코드를 완성했다. 특히 가장 빈번하게 실행되는 핫 패스(hot path)를 재작성해, 지원하지 않는 명령어를 호출하는 대신 pre-AVX2 칩으로 폴백(fallback, 하위 호환 동작)되도록 구현했다.
설정 오류 시 발생하는 추론 버그와 운용 주의사항
다만, 실제 운용 과정에서 특정 설정에 따른 기술적 제약이 발견되었다. `GGML_USE_IQK_MULMAT`(양자화 행렬 곱셈 최적화 설정) 설정을 해제하면 MoE 관련 특정 연산이 수행되지 않는 버그가 나타난다. 그래프 빌더는 `MOE_FUSED_UP_GATE`와 `FUSED_UP_GATE` 연산자를 생성하여 연산 그래프에 포함하지만, 실제 연산을 배분하는 디스패처의 스위치 문에는 해당 케이스가 정의되어 있지 않기 때문이다.
이로 인해 연산 명령이 기본값(default)으로 넘어가며 모든 전문가 FFN(Feed-Forward Network)의 목적지 텐서가 계산되지 않은 상태로 남는다. 시스템은 명시적인 오류 없이 계산을 누락시키며, 결과적으로 모델은 논리적인 문장이 아닌 다국어 헛소리를 출력한다. 이는 최적화 설정 변경 시 특정 연산 경로가 누락되어 모델의 추론 능력이 상실되는 결과로 이어진다.
고가의 GPU 렌탈 비용이나 API 구독료 부담은 로컬 LLM 도입의 큰 장벽이다. AVX2 명령어 집합이 없는 구형 CPU를 위해 ik_llama.cpp의 연산 경로를 수정하고 폴백 로직을 구현한 이번 사례는 하드웨어 제약을 소프트웨어 최적화로 해결한 실무적 증명이다.
이제 유휴 구형 서버는 API 장애 시의 백업 시스템이나 저비용 배치 작업의 자산으로 기능하며, 이를 통해 인프라 비용을 절감할 수 있다.




