AI 요청은 밀리는데, 옆 PC의 GPU는 놀고 있다

메인 PC에서 코딩 에이전트와 문서 요약을 함께 돌리면 한쪽 요청이 끝날 때까지 다른 쪽이 기다립니다. 책상 옆에는 예전에 쓰던 게이밍 PC나 노트북이 켜져 있어도, 애플리케이션마다 접속 주소와 모델을 따로 관리하려니 손이 많이 가고요.

NVIDIA PAIR는 이런 상황에서 여러 컴퓨터를 하나의 로컬 추론 창구 뒤에 연결합니다. 앱은 현재 컴퓨터의 엔드포인트 하나로 요청하고, PAIR는 요청한 모델을 실행할 수 있는 노드 한 대를 골라 작업을 보냅니다. 현재 Ollama와 LM Studio를 지원해요.

다만 PC 두 대를 연결한다고 거대한 GPU 한 장이 생기는 것은 아닙니다. PAIR가 줄이는 것은 여러 독립 요청이 한 GPU 앞에서 기다리는 시간이에요. 아래에서는 먼저 모델을 두 번째 PC에만 준비해 원격 실행을 확인하고, 이후 첫 PC에도 같은 모델을 추가해 동시 요청을 분산하는 순서로 진행합니다.

먼저 확인할 것: VRAM은 합쳐지지 않습니다

PAIR에서 요청 하나는 선택된 노드 한 대에서 처음부터 끝까지 처리됩니다. GPU 메모리 풀링, 여러 GPU를 논리적인 한 장으로 만드는 기능, 모델 샤딩, 진행 중인 요청의 노드 간 분할은 지원하지 않습니다.

하려는 일PAIR 적합성이유
코딩·검색·요약 에이전트의 독립 요청을 동시에 처리적합각 요청을 실행 가능한 서로 다른 노드에 배치할 수 있음
여러 로컬 앱의 추론 대기열 줄이기적합Ollama 및 OpenAI 호환 프록시 경로를 제공
24GB GPU 두 장으로 48GB 모델 실행부적합VRAM을 합치거나 모델을 노드에 나눠 올리지 않음
요청 하나의 생성 속도를 PC 수만큼 높이기부적합단일 요청은 한 노드에서만 실행됨

NVIDIA의 공개 데모에서는 다섯 서브에이전트가 Qwen 3.6 35B A3B를 사용했을 때 RTX Spark 노트북 한 대에서 평균 18분, 해당 노트북과 DGX Spark·RTX 5090을 묶은 세 대에서 평균 8분 48초가 걸렸습니다. 하지만 NVIDIA도 이를 특정 구성의 비공식 데모로 설명합니다. 반복 횟수와 시간 분산도 공개되지 않았으므로 일반적인 2배 가속 약속으로 읽으면 안 됩니다.

두 대 모두가 아니라, 실행 후보에 같은 모델이 필요합니다

어떤 컴퓨터가 요청을 받으려면 온라인 상태이고, Ollama 또는 LM Studio가 실행 중이며, 요청에 적힌 정확한 모델을 가지고 있어야 합니다. 같은 모델을 여러 실행 노드에 복제해야 그 모델의 요청을 나눠 받을 후보가 늘어납니다.

반대로 클러스터의 모든 컴퓨터에 엔진과 모델이 필요한 것은 아니에요. 앱이 실행되는 컴퓨터는 PAIR 클러스터에 참여해 로컬 프록시를 제공하기만 하면 되고, GPU나 자체 추론 엔진이 없어도 됩니다. 엔진과 모델은 요청을 실제로 처리할 노드에 준비하면 됩니다.

첫 실험은 비슷한 사양 두 대와 작은 공통 모델로 시작하세요.

현재 스케줄러는 대기 작업과 완만하게 보정된 GPU 사용률을 주로 보지만 GPU 모델, 가용 메모리, 지연시간, 모델의 메모리 적재 여부나 요청 비용은 고려하지 않습니다. 사양 차이가 큰 PC를 섞으면 느린 노드가 선택돼 오히려 원인을 찾기 어려울 수 있어요.

PAIR 자체는 Windows 11, Linux, macOS의 x64와 arm64 노드를 섞을 수 있으며 Windows on ARM 지원은 실험적입니다. 배포 파일은 Windows용 .exe, Debian 계열 Linux용 .deb, macOS용 .dmg로 제공됩니다. 다만 각 노드에서 엔진과 선택한 모델이 실제로 돌아가는지는 해당 운영체제, GPU, 드라이버와 메모리 조건을 별도로 확인해야 합니다.

공식 다운로드에서 두 대를 연결해 봅니다

준비물은 같은 신뢰 가능한 로컬 네트워크에 연결된 컴퓨터 두 대, 모델을 저장할 공간과 다운로드용 인터넷 연결입니다. 요청을 실행할 PC에는 선택한 엔진과 모델이 돌아갈 메모리가 있어야 해요. 화면이 없는 서버에서는 터미널 인터페이스를 쓸 수 있지만 실행 노드 표시 등 일부 기능이 제한되므로, 첫 검증은 데스크톱 앱이 편합니다.

  1. NVIDIA PAIR 공식 페이지에서 각 운영체제용 파일을 받습니다. Windows는 설치 프로그램을 실행하고, macOS는 .dmg의 앱을 Applications로 옮기세요. Debian 계열 Linux에서는 다운로드 디렉터리에서 sudo apt install./NVPAIR-Setup-*.deb를 실행합니다. 다른 Linux 계열은 소스 빌드가 필요할 수 있습니다.
  2. 각 컴퓨터에서 PAIR를 엽니다. 첫 실행 설정에서 Ollama 또는 LM Studio를 설치·시작하거나 이미 실행 중인 엔진을 선택할 수 있습니다. 첫 PC는 요청을 보내는 클라이언트로만 쓸 수 있으므로 자체 엔진이 없어도 됩니다. 두 번째 PC에서는 요청을 실제로 처리할 엔진을 실행하고, Overview에 해당 노드와 엔진 상태가 표시되는지 확인하세요.
  3. 첫 PC에서 두 번째 PC를 초대합니다. Add node 또는 Settings → Cluster → Available nodes를 열어 상대 PC를 고르세요. 첫 PC에 표시된 6자리 PIN을 초대받은 PC에 입력합니다. 자동 검색이 실패하면 IP 주소로 직접 추가할 수 있습니다. 제한적 방화벽을 사용한다면 로컬 LAN에서 mDNS 검색용 UDP 5353과 노드 간 서비스용 TCP 14318~14323을 허용하고, 사용하는 엔진의 Endpoints 또는 Engine settings에 표시된 프록시 포트도 페어링된 노드 사이에서 도달할 수 있게 설정하세요. 기본 포트는 Ollama 11434, LM Studio 1234지만 화면의 실제 값을 기준으로 해야 합니다. IP로 직접 추가하면 mDNS 검색에는 의존하지 않지만 TCP 14318~14323과 엔진 프록시 포트는 여전히 필요합니다. 연결 뒤에는 Connected nodes나 Overview에 두 장치가 보여야 합니다.
  4. 첫 검증용 모델은 두 번째 PC에만 준비합니다. Overview에서 두 번째 PC를 선택한 뒤 Engine settings → Add model로 이동해 그 PC의 메모리에 무리 없이 들어가는 작은 모델을 내려받으세요. 엔진이 명시적인 적재를 요구한다면 Load까지 누릅니다. 아직 첫 PC에는 같은 모델을 설치하지 않아야 실행 목적지가 두 번째 PC로 한정됩니다.
  5. 앱을 실행할 첫 PC의 Endpoints에서 실제 주소를 복사합니다. Ollama 프록시는 기본적으로 http://127.0.0.1:11434, LM Studio 프록시는 http://127.0.0.1:1234를 사용하지만 포트 충돌이나 설정 변경이 있을 수 있습니다. 기본값을 직접 입력하지 말고 Endpoints 화면에 표시된 주소를 사용하세요.
  6. 먼저 모델 목록을 확인한 뒤 채팅 요청을 보냅니다. 복사한 주소의 /v1/models를 호출해 두 번째 PC에 준비한 모델이 보이는지 확인하세요. 이어서 Ollama와 LM Studio가 공통으로 지원하는 OpenAI 호환 /v1/chat/completions 요청을 보냅니다.
    curl <PAIR_BASE_URL>/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"model":"<MODEL_NAME>","messages":[{"role":"user","content":"라우터가 하는 일을 한 문장으로 설명해 줘."}]}'
  7. Overview의 Jobs에서 두 번째 PC가 실행했는지 확인합니다. 작업 카드의 Ran on 또는 Running on에 두 번째 PC가 표시되면, 첫 PC의 루프백 엔드포인트로 보낸 요청이 다른 노드에서 실행된 것입니다. 이미 같은 모델을 양쪽에 설치했다면 첫 PC에서 해당 모델을 삭제하거나 첫 PC를 실행 후보에서 제외한 뒤 다시 요청해야 목적지를 확실히 검증할 수 있습니다.
  8. 원격 실행을 확인한 뒤 첫 PC에도 같은 모델을 추가합니다. 이제 첫 PC가 실행 조건을 충족한다면 같은 엔진에 정확히 같은 모델 태그를 설치하고 필요한 경우 Load하세요. 독립 요청을 여러 개 동시에 보낸 뒤 Jobs에서 첫 PC와 두 번째 PC가 모두 실행 노드로 기록되는지 확인하면 부하 분산 실험까지 이어갈 수 있습니다.

다른 PC의 포트로 직접 접속하면 안 됩니다

PAIR의 평문 HTTP 추론 엔드포인트는 해당 컴퓨터의 루프백, 즉 127.0.0.1에서만 요청을 받습니다. 다른 LAN 컴퓨터에서 그 PC의 11434나 1234 포트로 직접 접속하는 구조가 아니에요. 앱을 실행하는 컴퓨터에도 PAIR를 설치하고, 그 컴퓨터의 로컬 엔드포인트를 사용해야 합니다.

페어링된 노드 사이의 주요 통신에는 인증된 채널과 상호 TLS가 사용됩니다. 그러나 6자리 PIN은 최초 신뢰 설정을 위한 임시 코드이며, 일부 노드 검색 보조(discovery enrichment) 및 노드 정보 트래픽은 평문 HTTP를 사용할 수 있습니다. 공유 사무실망이나 공용 와이파이보다 신뢰하는 가정·개인 사무실망에서 연결하고, PAIR나 엔진 포트를 인터넷에 공개하지 마세요.

화면이 멈추면 먼저 서비스와 포트를 확인하세요.

Overview가 계속 Loading...이면 Settings → Service에서 상태와 로그를 확인한 뒤 서비스를 재시작합니다. Endpoints에 No engines are running이 나오면 실행 후보 노드의 엔진을 먼저 켜세요. 다른 프로세스가 프록시 포트를 차지했다면 같은 화면에서 PAIR 포트를 변경하거나 충돌 프로세스를 종료해야 합니다.

성공 기준은 최고 속도가 아니라 겹친 요청의 대기시간입니다

검증할 때 요청 하나의 초당 토큰만 재면 PAIR의 효과를 놓칩니다. 동일한 독립 프롬프트 묶음을 한 노드와 여러 노드에서 각각 동시에 보내고, 전체 완료시간·각 요청의 대기시간·실패 수·결과 품질을 비교하세요. Jobs의 실행 노드 기록도 함께 남겨야 실제 분산과 단순한 속도 변화를 구분할 수 있습니다.

노트북 절전, 엔진 중단, 게임 실행처럼 노드 상태가 달라지는 경우도 한 번씩 넣어보세요. PAIR의 가치는 큰 모델 하나를 억지로 돌리는 데 있지 않습니다. 코딩 에이전트의 여러 서브태스크처럼 서로 독립적인 요청이 동시에 들어올 때 놀고 있는 PC를 후보로 추가하는 것이 핵심입니다.