답변 속도와 가속

최종 업데이트

CMP 170HX 두 장이면 속도도 두 배가 될까?

두 장은 모델을 나눠 담을 수 있지만, 연결 경로가 성능을 바꿔요.

다중 GPU1 모델 병렬화는 한 모델의 가중치와 계산을 여러 GPU에 나누고, 요청 중간에 나온 결과를 카드 사이로 전달하는 실행 방식이에요. 입력으로 모델과 요청을 보내면 분할된 GPU들이 함께 다음 토큰2을 계산해 답을 돌려줍니다.

두 장으로 나누면 한 카드에 들어가지 않던 모델을 실행할 수 있고, 단일 요청이 빨라지는 경우도 있어요. 다만 카드 사이의 통신 때문에 두 배 속도가 자동으로 나오지는 않아요. 먼저 두 카드가 어떤 경로로 연결됐는지 확인하고, 혼자 쓰는 응답 속도와 여러 요청의 합산 처리량3을 나눠 측정해야 합니다.

실행 조건과 핵심 내용
  • TP는 같은 층의 계산을 나누고 PP는 층의 구간을 나누며, 두 방식 모두 GPU 간 통신이 필요해요.
  • Qwen3.8-27B TP2 단일 요청은 54→72 tok/s였지만 동시 스트림 16개 합산은 TP1의 546보다 낮았어요.
  • P2P 실험은 기본 해제 설치와 다른 고급 경로라, 토폴로지·드라이버·BAR1 조건을 따로 검토해야 해요.

두 GPU에 모델을 나누면 통신도 필요해요

Tensor Parallel4(TP)은 같은 층의 계산을 여러 GPU가 나누고 중간 결과를 교환해요. Pipeline Parallel5(PP)은 모델 층을 GPU별 구간으로 나누고 앞쪽 결과를 다음 카드로 전달해요. 따라서 두 카드의 메모리 합계가 모델을 담을 수 있어도, 실행 프로그램6이 분할을 지원하고 GPU 사이의 통신이 원활해야 해요.

CMP 170HX 메모리 해제는 카드에서 사용할 수 있는 메모리를 늘리는 작업이에요. 이 과정이 GPU 간 P2P(peer-to-peer)를 켜 주지는 않아요. P2P가 지원되지 않으면 통신이 호스트 메모리를 거쳐 갈 수 있고, CMP 170HX에는 사용할 수 있는 NVLink 브리지 회로도 없어요.

작업대 위 단일 CMP 170HX 카드와 옆에 놓인 확대경
두 장으로 모델을 나눠도 GPU 사이에 데이터를 보낼 경로가 필요해요.

PCIe 토폴로지에서 GPU 사이의 길을 확인해요

Linux에서 nvidia-smi topo -m은 GPU와 CPU7의 연결을 행렬로 보여 줍니다. GPU 번호와 카드 간 PCIe 경로를 확인하고, nvidia-smi -q -d PCI로 각 카드의 현재 링크 상태를 읽으세요. 카드 두 장이 같은 서버에 있어도 CPU와 PCIe 스위치 배치에 따라 데이터가 지나가는 경로가 달라집니다.

CMP 170HX에서는 PCIe Gen2가 시험됐고, 확인된 네 장 모두 Gen3는 퓨즈로 막혀 있었어요. 보드에 x16 커넥터가 있어도 실제 링크 폭과 속도는 카드·라이저·슬롯·호스트 설정에 따라 달라집니다. 출력 결과를 저장하고 예상한 슬롯 경로와 다르면 런타임보다 먼저 슬롯 배치와 BIOS 설정을 확인하세요.

GPU 연결 행렬 확인
nvidia-smi topo -m
GPU 간 경로와 CPU·NUMA 배치를 함께 봅니다.
PCIe 링크 상태 확인
nvidia-smi -q -d PCI
각 GPU의 현재 PCIe 링크 정보를 확인합니다.
CMP 170HX 카드 옆 모니터에 비어 있는 창이 있고 기록 도구가 놓여 있다
GPU 간 PCIe 경로를 토폴로지 명령 출력에서 확인하세요.

Qwen TP2의 속도 향상은 한 조건의 비교예요

한 장 TP1과 두 장 TP2의 출력 속도와 동시 처리량을 비교합니다. 단일 요청은 한 응답이 얼마나 빨리 이어지는지, 동시 합산은 여러 요청이 같은 시간에 얼마나 처리되는지 보여 줍니다.

Qwen3.8-27B TP1과 TP2 · 단일 요청 및 16개 동시 스트림
구성단일 요청 디코드16개 동시 합산
TP1 · 1 GPU53.97 tok/s545.78 tok/s
TP2 · 2 GPU71.96 / 71.88 tok/s529.70 / 534.74 tok/s

PixelML은 2026-10-01 실험에서 Qwen3.8-27B W4A16 체크포인트8, vLLM, CMP 170HX 64GB 두 장, PCIe Gen2 x16, 카드당 180W, P2P 비활성 조건으로 TP1과 TP2를 비교했어요.

단일 요청은 짧은 greedy 256토큰 디코드9이고, 동시 부하는 16개 스트림이에요. TP2의 두 값은 같은 PLX 스위치 / 서로 다른 PLX 스위치 순서입니다. 원본 노트북과 실행 영수증

단일 응답 속도와 동시 요청 처리량은 따로 봐야 해요. 한 요청을 빨리 끝내는 것이 목표라면 첫 토큰 대기와 출력 tok/s를 기록하고, 여러 사용자를 받는 서버라면 동시 처리 요청 수와 합산 tok/s를 확인하세요. 이 시험에서는 같은 PLX 스위치와 다른 스위치에 카드를 배치해도 차이가 작았지만, 실제 장비에서는 토폴로지를 확인하고 같은 조건으로 비교해야 해요.

P2P는 기본 설치에 포함되지 않는 고급 설정이에요

P2P가 없는 256MiB 전송에서는 호스트 메모리 스테이징이 6.21~6.30GB/s였어요. 별도의 고급 실험에서는 BAR1 정적 매핑 패치 네 개, 수동 배치 레이아웃, kexec 재부팅 경로를 사용해 P2P를 구성했어요. 12쌍 모두 바이트 단위 검증을 통과했고 전송 속도는 5.79GB/s였어요.

Qwen TP2에서는 P2P를 사용할 때 디코드가 11% 빨라졌고, MTP10 k=3에서는 14% 빨라졌어요. 반면 Broadwell PLX 경로의 GLM TP4에서는 단일 사용자 디코드가 20~26%, 8명 합산 처리량이 38~48% 느려졌어요.

Morrowmake가 측정한 EPYC 루트 포트 구성에서는 P2P가 11% 빨랐어요. CPU·스위치·P2P 경로별 결과는 다르므로 하나의 수치처럼 일반화하지 않아요.

이 구성은 BAR1 주소 공간을 정적으로 배치하고, 커널이 그 레이아웃을 채택하도록 kexec로 다시 시작하는 경로예요. 기본 설치보다 드라이버·보드·PCIe 배치 조건을 더 많이 맞춰야 하므로, 먼저 일반 TP2 동작과 토폴로지를 확인하고 전문 실험으로 진행할 때만 PixelML의 BAR1 P2P 노트북에 기록된 레이아웃과 12개 GPU 쌍의 데이터 일치 검증 절차를 따르세요.

두 번째 카드는 부족한 용량이나 처리 목표가 있을 때 비교해요

한 카드에 모델이 들어가지 않으면 TP나 PP가 용량을 나눌 수 있어요. 여러 요청의 처리량이 목표라면 한 모델을 나누는 구성과 GPU마다 모델을 복제해 요청을 분산하는 구성 중 런타임이 지원하는 방식을 비교하세요. 전자의 핵심 지표는 단일 요청의 첫 토큰과 완료 시간일 수 있고, 후자는 동시 처리량이 더 중요할 수 있어요.

한 카드에서 모델이 실행되고 필요한 응답 속도도 나온다면 두 번째 카드를 더할 이유가 약해요. 먼저 같은 작업으로 기준을 만들고 토폴로지, 모델 분할 옵션, 요청 수를 하나씩 바꿔 보세요. 메모리 부족이나 동시 요청 목표 미달이 확인될 때 보드의 PCIe 경로까지 포함해 두 장 구성을 비교하면 추가 카드가 해결하는 문제가 분명해집니다.

강제 공랭 팬과 표시가 없는 계측기 근처에 설치된 두 CMP 170HX 카드
두 카드 모두 방열판에 공기가 지나고 슬롯 사이에 간격이 있어야 해요.

용어 각주

  1. GPU — 많은 계산을 병렬로 처리하는 프로세서입니다. AI 모델 실행에서는 모델 계산을 맡습니다.

    본문으로 돌아가기
  2. 토큰 — 모델이 입력이나 출력을 나누어 처리하는 단위입니다.

    본문으로 돌아가기
  3. 처리량 — 일정 시간 동안 처리하거나 생성한 작업량입니다. 토큰/초, 요청/초처럼 단위를 함께 확인해야 비교할 수 있습니다.

    본문으로 돌아가기
  4. 텐서 병렬 — 모델 층 안의 행렬과 연산을 여러 장치로 분할해 함께 계산하는 방식입니다. 부분 결과를 모으기 위해 장치 간 통신이 필요합니다.

    본문으로 돌아가기
  5. 파이프라인 병렬 — 모델의 층 묶음을 장치별 단계로 나누고, 한 단계의 출력 활성값을 다음 장치로 넘겨 처리하는 병렬화 방식입니다.

    본문으로 돌아가기
  6. 런타임 — 프로그램이 실행될 때 필요한 기능을 제공하는 소프트웨어 환경입니다. 로컬 AI에서는 모델을 실행하는 엔진을 가리키기도 합니다.

    본문으로 돌아가기
  7. CPU — 운영체제와 일반 프로그램 명령을 실행하고, AI에서는 전처리·데이터 이동 등 범용 연산을 맡는 중앙 처리 장치입니다.

    본문으로 돌아가기
  8. 체크포인트 — 학습된 모델의 가중치 등을 저장한 파일입니다. 같은 모델 계열도 버전이나 용도에 따라 다른 체크포인트를 쓸 수 있습니다.

    본문으로 돌아가기
  9. 토큰 디코드 — 입력과 앞서 만든 답변을 바탕으로 다음 출력 토큰을 차례로 생성하는 단계입니다.

    본문으로 돌아가기
  10. MTP — 한 번에 여러 미래 토큰을 예측하도록 학습하는 목표 또는 이를 수행하는 모델 구성입니다. 추측 디코딩에서는 이 예측을 후보 토큰으로 제안할 수 있습니다.

    본문으로 돌아가기

자주 묻는 질문

이 글에서 가장 먼저 확인할 것은 무엇인가요?
다중 GPU 모델 병렬화는 한 모델의 가중치와 계산을 여러 GPU에 나누고, 요청 중간에 나온 결과를 카드 사이로 전달하는 실행 방식이에요. 입력으로 모델과 요청을 보내면 분할된 GPU들이 함께 다음 토큰을 계산해 답을 돌려줍니다.
필요한 메모리는 어느 정도인가요?
CMP 170HX 메모리 해제는 카드에서 사용할 수 있는 메모리를 늘리는 작업이에요. 이 과정이 GPU 간 P2P(peer-to-peer)를 켜 주지는 않아요. P2P가 지원되지 않으면 통신이 호스트 메모리를 거쳐 갈 수 있고, CMP 170HX에는 사용할 수 있는 NVLink 브리지 회로도 없어요.