PCIe 피어 투 피어 전송은 멀티 GPU 로컬 추론에 어떤 영향을 미칠까요?

에바 왕 는 기술 작가 그리고 이자 ZimaSpace의 상주 장인입니다. 평생을 기술에 열정을 가진 사람으로서 홈랩과 오픈소스 소프트웨어에 열정을 가지고 있으며,복잡한 기술 개념을 쉽게 이해할 수 있는 실습 가이드로 번역하는 데 전문성을 가지고 있습니다.에바는 셀프 호스팅이 어렵지 않고 재미있어야 한다고 믿습니다. 그녀의 튜토리얼을 통해 커뮤니티가 하드웨어 설정의 신비를 풀도록돕고 있습니다. 첫 NAS 구축부터 Docker 컨테이너 마스터링까지.

PCIe 피어 간 전송은 텐서를 호스트 RAM을 거치지 않고 호환되는 GPU 메모리 사이에서 직접 이동시켜 다중 GPU 추론 오버헤드를 줄일 수 있습니다.

두 GPU에 분할된 로컬 모델은 실행이 장치 경계를 넘을 때마다 활성값, KV 블록 또는 전문가 출력을 전송해야 합니다. 직접 피어 액세스가 없으면 데이터가 한 GPU에서 호스트 메모리로 이동한 다음 다른 GPU로 다시 이동할 수 있어 CPU 연결을 사용하고 복사 작업이 추가됩니다. P2P는 이 경로를 단축하지만, 그 효과는 토폴로지, 전송 크기, 동기화, 모델의 통신 빈도에 따라 달라집니다.

피어 액세스는 호스트 스테이징 복사 경로를 대체합니다

피어 액세스가 활성화되면 한 GPU가 지원되는 인터커넥트 경로를 통해 다른 GPU의 메모리에 있는 데이터를 주소 지정하거나 복사할 수 있습니다. 이 전송은 페이지 가능 또는 고정 시스템 메모리에 명시적인 바운스 버퍼를 거치지 않으므로 CPU 개입을 줄일 수 있습니다.

CUDA 프로그래밍 가이드에 따르면 장치 쌍 사이에서 피어 메모리 액세스가 지원되고 활성화되어야 합니다. 지원 여부는 방향과 토폴로지에 따라 달라지므로, 소프트웨어는 한 호스트의 모든 GPU가 직접 통신할 수 있다고 가정하지 말고 각 쌍을 조회해야 합니다.

소비자 GPU가 완료되지 않은 활성값을 읽지 않도록 모델에는 여전히 동기화가 필요합니다. P2P는 스테이징 단계를 제거할 뿐, 순서 지정, 커널 실행 또는 집단 통신 비용까지 제거하지는 않습니다. 이러한 차이는 이후의 실제 가정 환경 테스트에서도 확인할 수 있습니다.

PCIe 토폴로지가 직접 경로의 실제 대역폭을 결정합니다

동일한 PCIe 스위치 아래에 있는 두 GPU는 CPU 소켓을 거치지 않고 트래픽을 주고받을 수 있는 경우가 많지만, 서로 다른 루트 컴플렉스 뒤에 있는 장치는 호스트 경로가 필요하거나 P2P 지원을 받지 못할 수 있습니다. 링크 세대, 레인 폭, 스위치 오버서브스크립션, 동시 트래픽이 한계를 결정합니다.

NCCL은 CUDA가 호환 가능한 GPU를 보고할 때 직접 GPU 통신을 우선하며, 사용 가능한 토폴로지에 따라 PCIe 또는 NVLink를 사용한다고 설명합니다. 토폴로지 도구를 사용하면 각 장치 쌍이 직접 PCIe 액세스를 사용할 수 있는지 확인할 수 있습니다. 자동화가 이어지기 전에 중간 결과를 계속 검사할 수 있어야 합니다.

작은 전송은 실행 및 동기화 지연의 영향이 계속 클 수 있는 반면, 큰 텐서 전송은 링크 대역폭에 가까워집니다. 경계 구간이 좁고 빈번한 파이프라인은 더 적은 수의 큰 블록을 통신하는 설계보다 얻는 이점이 작을 수 있습니다. 이러한 경계는 실제 운영 조건에서 별도로 측정해야 합니다.

분할 방식에 따라 더 빠른 복사가 중요한지가 결정됩니다

텐서 병렬 처리는 여러 계층 안에서 통신하고, 파이프라인 병렬 처리는 스테이지 경계 사이에서 활성값을 전송하며, 전문가 병렬 처리는 라우팅된 토큰을 교환합니다. 따라서 동일한 P2P 링크도 분할 전략에 따라 사용량이 적을 수 있고 주요 병목이 될 수도 있습니다.

NVIDIA의 GPUDirect 설계 논의는 PCIe 토폴로지 배치와 스위치 배치가 CPU 스테이징 경로와 비교한 직접 데이터 이동에 어떤 영향을 미치는지 보여줍니다. 추론 프레임워크가 자체적인 집단 통신 및 스케줄링 계층을 추가하더라도 이 원칙은 적용됩니다. 실제적인 영향은 여러 소스가 제한된 컨텍스트를 두고 경쟁할 때 나타납니다.

지원되지 않는 토폴로지, IOMMU 또는 가상화 제한, 혹은 PCIe 예산을 이미 초과한 통신이 실패 경계를 만듭니다. 그러면 소프트웨어가 호스트 스테이징으로 대체되거나 링크 경합이 발생하며, 컴퓨팅 용량이 늘어났음에도 두 번째 GPU를 추가하면 추론이 느려질 수 있습니다.

모든 GPU 쌍과 모델 경계를 측정하세요

GPU, CPU 소켓, PCIe 루트, 스위치, 링크 세대, 폭, P2P 지원 여부, NUMA 메모리를 매핑하세요. 대표적인 전송 크기에서 단방향 및 양방향 피어 복사와 호스트 스테이징 복사를 벤치마크하세요. 이 종속성은 최종 인터페이스에 명시적으로 남아 있어야 합니다.

그 결과를 NUMA 인식 배치와 연결하세요. P2P를 활성화한 경우와 비활성화한 경우에 각 모델 분할의 컴퓨팅 시간, 통신 시간, 동기화, 집단 대역폭, 초당 토큰 수, p99 요청 지연 시간을 프로파일링하세요. 따라서 결과는 원래 증거와 비교해 확인해야 합니다.

종단 간 지연 시간 또는 용량이 개선될 때만 다중 GPU 계획을 유지하세요. 직접 복사가 빠르지만 추론이 여전히 통신에 묶여 있다면 P2P 지원만으로 충분하다고 판단하지 말고, 분할 경계를 줄이거나 토폴로지를 고려한 배치를 선택하세요.

기술 및 AI 허브

더 읽어보기

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.