Llama.cpp RPC 테스트 결과: 10GbE 네트워크가 정말 필요할까?
Ran some Llama.cpp RPC test to see if its worth it. And if 10Gbe needed.
핵심 요약
Llama.cpp RPC를 활용한 분산 추론 테스트 결과, 네트워크 속도보다 운영체제(Linux) 환경이 성능에 더 큰 영향을 미침.
- RPC 성능 테스트 — 다양한 PC와 네트워크 환경에서 Llama.cpp RPC의 분산 추론 효율을 검증함.
- 운영체제 영향 — WSL이나 Windows보다 Native Linux 환경에서 훨씬 안정적이고 우수한 성능을 보임.
- 네트워크 대역폭 — 레이어 분할 방식에서는 1GbE로도 충분하지만, 텐서 병렬 처리는 고대역폭이 필수적임.
- 하드웨어 확장성 — 소비자용 하드웨어로도 분산 추론이 가능하며, 향후 더 많은 GPU 추가를 통한 확장을 계획 중임.
먼저 밝히지만, 저는 병렬 처리를 다루는 게 아니므로 이 벤치마크와 테스트는 그런 분들을 위한 게 아닙니다.
그렇긴 하지만, 저처럼 다른 PC에 있는 GPU를 활용할 수 있을지 궁금해하는 취미가 있는 분들을 위해 몇 가지 답을 얻었고, 여전히 배우는 중입니다. Llama.cpp에 더 나은 설정이 있을지도 모르지만 큰 이득은 보지 못했습니다. 사실 플래시 어텐션(flash attention)은 오히려 속도를 조금 늦추는 것 같아서 테스트하지 않았습니다. 또한, 소비자용 수준 이상의 네트워크 환경을 갖춘 분들이라면 지연 시간을 더 줄여서 성능을 개선할 수 있을 거라 확신합니다. 저는 그런 장비가 없을 뿐입니다.
메인 AI PC(아래 GPU 상세 정보 참조)를 이 테스트의 메인으로 사용했습니다. 두 번째 PC에는 5070과 3080이 장착되어 있고, 이 PC에서 Windows 11, WSL, 그리고 Native Linux 환경을 테스트했습니다. 재미 삼아 5060ti 16GB가 장착된 세 번째 PC도 한 번 돌려봤습니다. 결과는 다음과 같습니다.
각 실행 시 RPC 서버가 실제로 사용되고 있는지 다시 한번 확인했습니다.
RPC가 어떻게 작동하는지 확인하기 위한 대조군으로 메인 PC만 먼저 시작했습니다. 제 설정과 사용된 하드웨어를 보실 수 있습니다. 어떤 이유에서인지 llama.bench가 잘 작동하도록 GPU 순서를 재배치할 필요는 없었습니다. 모든 테스트에서 이 PC는 메인 역할을 하며, Nvidia 드라이버 590.48.0.1과 Cuda 툴킷 13.1이 설치된 Linux Mint를 2.5GbE 연결로 사용했습니다.
수정: 계산하기 귀찮으실 분들을 위해 말씀드리면, 메인 PC에는 120GB VRAM, 두 번째 PC에는 22GB, 세 번째 PC에는 16GB가 있습니다.
수정2: 네트워크를 모니터링했을 때 대부분 3-10.8MBps 사이를 오갔지만, 아주 잠깐 22MBps까지 치솟기도 했습니다.
이것은 두 번째 PC가 2.5GbE 연결에서 Native Linux를 실행 중인 결과입니다.
다음은 같은 설정이지만 1GbE 연결을 사용했을 때입니다.
