정보 · 분산·네트워킹

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로는 불가능하다.

이 실험실의 구성 경로

  1. 지금: Thunderbolt 4 케이블 직결 → 브리지(IP over TB) 구성 → mlx.launch ring 백엔드 + 파이프라인 병렬. 합산 약 24~26GB 실효 풀로 4bit 24B~35B급 모델 구동.
  2. 검증: 브리지 대역폭 실측(iperf3) → 분산 hello world(all_sum) → 2노드 파이프라인 추론 tokens/sec 기록.
  3. 업그레이드 경로: TB5 탑재 기기 추가 시 JACCL + 텐서 병렬로 전환. 설정이 더 쉬운 대안으로 EXO(오픈소스, 자동 노드 발견)도 있다.

참고 링크