GLM-5.2를 CPU로만 로컬에서 돌려보기! (대형 모델을 위한 가성비(?) 장비)
Giving GLM-5.2 a spin locally on CPU only! (poor man's rig for big models)
핵심 요약
768GB RAM을 갖춘 서버로 GLM-5.2 모델을 CPU에서 구동해 본 후기.
- 하드웨어 사양 — Dell PowerEdge R740 서버와 768GB RAM 활용
- 성능 최적화 — NUMA 노드 격리 및 ik_llama.cpp를 통한 CPU 추론 가속
- 모델 구동 — 4~5.5 tok/s 속도로 대형 모델 로컬 실행 성공
- 가성비 논란 — 작성자의 '가성비 장비' 표현에 대한 커뮤니티의 유머러스한 반응
이것은 UD-Q2-K_XL 양자화 모델임.
하드웨어 사양:
모델: Dell PowerEdge R740
CPU: 듀얼 Xeon 6248R (각 24코어)
RAM: 768 GB (모든 메모리 채널 사용)
CPU 전용 추론에서 기본 llama.cpp보다 상당한 성능 향상을 제공하는 ik_llama.cpp를 사용 중임.
불행히도 듀얼 CPU를 사용하는 사람들은 성능을 저하시키는 NUMA 노드와 소켓 간 메모리 지연 시간을 걱정해야 함. 그래서 CPU 코어와 메모리를 단일 노드로 격리했고, 덕분에 24코어와 384GB의 노드 로컬 RAM을 사용할 수 있게 됨. 모델 가중치와 1M 컨텍스트는 완전히 RAM에 올려둔 상태임.
기본적인 대화에서는 고려할 점들을 감안하면 괜찮은 수준임. MTP drafting을 켰을 때 4~5.5 tok/s의 생성 속도가 나옴. 물론 코딩처럼 컨텍스트가 커지면 점점 느려짐. opencode로 작업하기 시작하면 약 3 tok/s 정도가 나옴.
말이 나온 김에, 스크린샷에 출력된 프롬프트를 공유함:
Create a plan to write a portable 6502 CPU emulator in C99. The CPU only. Cycle accuracy is not required. It should be written in a way that it can easily be wired into a broader system emulator. Memory read/write functions will be externally provided by the project it's used in:
uint8_t mem_read(uint16_t address)
void mem_write(uint16_t address, uint8_t value)
그래서 뭐, 이 하드웨어에서 실질적으로 사용하기엔 무리가 있지만, 이 괴물 같은 모델을 로컬에서 조금 가지고 놀아보고 싶었음. 코딩 면에서는 정말 최첨단 모델 같은 느낌을 줌. 이렇게 강력한 모델을 우리만의 하드웨어에서 실제로 돌릴 수 있다는 사실이 기쁘고, 앞으로 나올 것들이 기대됨!


