정보 · 분산·네트워킹
MLX 분산 추론의 구조 — ring, 파이프라인, 그리고 JACCL
여러 대의 Mac으로 하나의 모델을 돌리는 세 가지 방식과, 이 실험실이 선택할 수 있는 경로.
MLX란
MLX는 Apple의 머신러닝 연구 조직이 만든 Apple Silicon 전용 배열 연산 프레임워크다.
NumPy 유사 API에 자동 미분과 신경망 모듈을 갖췄고, 처음부터 통합 메모리 구조를
전제로 설계됐다. LLM 추론·파인튜닝은 mlx-lm, 변환·양자화된 모델은 Hugging Face의
mlx-community(5,200개 이상)에서 받는다.
분산의 세 가지 방식
| 방식 | 원리 | 통신 부담 | 용도 |
|---|---|---|---|
| 데이터 병렬 | 모든 노드가 모델 사본을 갖고 다른 데이터를 처리 | 스텝마다 그래디언트 교환 | 학습 가속 (모델이 한 대에 들어갈 때만) |
| 파이프라인 병렬 | 레이어를 깊이 방향으로 잘라 노드별 분담 | 토큰마다 인접 노드 간 활성값 전달 (작음) | 메모리 풀링 — 안 들어가는 모델 돌리기 |
| 텐서 병렬 | 가중치 행렬 자체를 쪼개 전 노드가 매 레이어 연산 | 매 레이어 all_reduce — 초저지연 필수 | 풀링 + 속도. RDMA급 인터커넥트 전제 |
핵심 직관: 파이프라인은 "용량"을, 텐서 병렬은 "용량+속도"를 준다. 그리고 모델이 이미 한 대에 들어간다면 분산은 통신 지연만 추가한다 — 분산은 안 들어가는 모델을 위해 하는 것이다.
MLX 백엔드 현황
| 백엔드 | 전송 | 요구 사항 | 이 실험실에서 |
|---|---|---|---|
| ring (기본) | TCP 소켓 | IP 통신만 되면 됨 | 사용 TB4 브리지와 조합 |
| mpi | OpenMPI | 동일 버전 별도 설치 | 보류 ring이 권장 추세 |
| jaccl | RDMA over TB5 | macOS 26.2+ · TB5 Mac · TB5 케이블 풀메시 | 불가 TB4 하드웨어 한계 |
| nccl | NVIDIA NCCL | CUDA/Linux | 해당 없음 |
JACCL은 지연을 300µs → 3µs로 줄여 텐서 병렬을 실용화한다. 다만 실기기 검증 결과 기본형 M4의 TB4로는 불가능하다.
이 실험실의 구성 경로
- 지금: Thunderbolt 4 케이블 직결 → 브리지(IP over TB) 구성 →
mlx.launchring 백엔드 + 파이프라인 병렬. 합산 약 24~26GB 실효 풀로 4bit 24B~35B급 모델 구동. - 검증: 브리지 대역폭 실측(iperf3) → 분산 hello world(all_sum) → 2노드 파이프라인 추론 tokens/sec 기록.
- 업그레이드 경로: TB5 탑재 기기 추가 시 JACCL + 텐서 병렬로 전환. 설정이 더 쉬운 대안으로 EXO(오픈소스, 자동 노드 발견)도 있다.
참고 링크
- MLX Distributed Communication — 공식 문서
- mlx-lm — 분산 추론 예제 포함
- Apple TN3205 — RDMA over Thunderbolt
- EXO — Mac 클러스터링 대안