Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

NVIDIA 구성

NVIDIA® ConnectX® 네트워크 인터페이스 카드(NIC) 제품군은 이더넷과 인피니밴드 프로토콜을 모두 지원하며 고급 하드웨어 오프로드 및 가속 기능과 최대 400G의 속도를 제공합니다.

변경할 때는 항상 공식 제조업체 설명서를 참조하세요. 이 섹션에서는 AI JVD 랩 테스트를 기반으로 한 몇 가지 지침을 제공합니다.

NVIDIA ConnectX NIC를 인피니밴드에서 이더넷으로 변환

기본적으로 NVIDIA ConnectX NIC는 Infiniband 인터페이스로 작동하도록 설정되어 있으며 mlxconfig 도구를 사용하여 이더넷으로 변환해야 합니다.

1) sudo mst status를 사용하여 ConnectX NIC의 상태를 확인합니다.

참고: Mellanox 소프트웨어 도구(MST)는 Mellanox 펌웨어 도구 제품군의 일부이며 Mellanox 네트워크 어댑터를 관리하고 상호 작용하는 데 사용할 수 있습니다.

필요한 경우 mst 서비스를 시작하거나 mst 모듈을 로드합니다.

예:

예는 "MST PCI 모듈이 로드되지 않았습니다"를 보여줍니다. 로드하려면 다음 명령을 사용하십시오.

2) 변환하려는 인터페이스를 식별하고,

sudo mst status -v 명령은 아래 예와 같이 유형, Mellanox 디바이스 이름, PCI 주소, RDMA 인터페이스 이름, NET 인터페이스 이름 및 NUMA ID와 함께 시스템에서 감지된 Mellanox 디바이스(ConnectX-6 및 ConnectX-7 NIC) 목록을 제공합니다.

목록의 첫 번째 인터페이스에서 다음을 식별할 수 있습니다.

  • 유형 = ConnectX7(rev:0)
  • Mellanox 디바이스 이름 = mt4129_pciconf7(/dev/mst/mt4129_pciconf7)
  • PCI 주소 = cb:00.0
  • RDMA 인터페이스 이름 = mlx5_12
  • NET 인터페이스 이름 = net-gpu6_eth
  • NUMA = 1

일부 인터페이스의 경우 이름이 표준 Linux 인터페이스 명명 체계(예: net-enp14s0f1np1)를 따르는 반면 다른 인터페이스(예: net-gpu0_eth)는 그렇지 않습니다. 표준을 따르지 않는 인터페이스 이름은 쉽게 식별할 수 있도록 사용자 정의 이름입니다. 이는 /etc/netplan/에서 기본 이름이 변경되었음을 의미합니다. 이 섹션의 뒷부분에서 이를 수행하는 방법의 예를 보여 드리겠습니다.

3) 다음을 사용하여 주어진 인터페이스가 실행 중인 모드를 식별합니다.

mlxconfig -d <디바이스> 쿼리

예:

경로(/dev/mst/mt4129_pciconf7)를 포함하여 Mellanox 디바이스 이름을 사용해야 합니다.

또한 LINK_TYPE_P1 및 LINK_TYPE_P2는 듀얼 포트 Mellanox 어댑터의 물리적 포트 두 개를 나타냅니다.

4) 인터페이스가 Infiniband 모드에서 작동하는 경우, 다음을 사용하여 이더넷 모드의 모드를 변경할 수 있습니다.

mlxconfig -d <디바이스> 설정 [LINK_TYPE_P1=<link_type>] [LINK_TYPE_P2=<link_type>]

예문

다시 말하지만, 경로(/dev/mst/mt4129_pciconf7)를 포함하여 Mellanox 디바이스 이름을 사용해야 합니다.

알림: mlxconfig를 통해 변경하려면 상자의 전원을 껐다가 켜야 합니다.

인터페이스의 상태를 확인하려면 mlxlink를 사용할 수 있습니다.

자세한 내용은 다음을 참조하세요.

Mellanox 어댑터 유형 및 펌웨어/드라이버 버전을 찾는 방법(Linux)(nvidia.com)

펌웨어 지원 및 다운로드 - 어댑터 카드 식별(nvidia.com)

NIC 및 GPU 매핑 식별 및 적절한 인터페이스 이름 할당

NIC는 언제든지 모든 GPU에서 사용할 수 있습니다. 주어진 GPU가 특정 NIC 카드를 사용하여 외부 세계와만 통신할 수 있다는 것은 하드 코딩되어 있지 않습니다. 그러나 GPU와 NIC 사이에는 선호되는 통신 경로가 있으며, 경우에 따라 이들 간의 1:1 대응으로 볼 수 있습니다. 이는 아래 단계에 표시됩니다.

NCCL(NVIDIA Collective Communications Library) 은 지정된 GPU에서 NIC 중 하나로의 연결이 가장 좋은 경로를 선택합니다.

NCCL이 선택한 경로와 GPU와 NIC 간의 최적 경로를 식별하려면 다음 단계를 따르십시오.

시스템에 대한 토폴로지 정보를 표시하는 nvidia-smi topo -m 명령을 사용하여 GPU와 NIC 간의 연결 유형을 식별합니다.

예:

  • DGX H100:

그림 92. Nvidia H100 시스템 관리 인터페이스(SMI) 시스템 토폴로지 정보

시스템 관리 인터페이스 SMI | NVIDIA 개발자

저희 연구 기반:

표 26: 연결 유형별 성능

연결 유형 설명 성능
픽스 동일한 스위치의 PCIe 좋음
PXB 여러 스위치를 통한 PCIe, 호스트 브리지는 아님 좋음
PHB PCIe 스위치 및 동일한 NUMA의 호스트 브리지를 통해 - CPU 사용 확인
노드 PCIe 스위치 및 동일한 NUMA의 여러 호스트 브리지에서 나쁨
시스템 PCIe 스위치 및 NUMA 노드 간 QPI/UPI 버스 - CPU 사용 매우 나쁨
네바다# NVLink 최고에요!
  • HGX A100:

그림 93. Nvidia A100 시스템 관리 인터페이스(SMI) 시스템 토폴로지 정보

PBX 연결 식별

nvidia-smi 출력의 강조 표시된 섹션에 초점을 맞추면 각 GPU에 대해 하나 이상의 PXB 유형의 NIC 연결이 있음을 알 수 있습니다. 이는 각 GPU에서 지정된 NIC로의 기본 "직접" 경로입니다. 즉, GPU가 원격 디바이스와 통신해야 할 때 이러한 특정 NIC 중 하나를 첫 번째 옵션으로 사용합니다.

  • DGX H100:

그림 94. Nvidia H100 시스템 관리 인터페이스(SMI) 시스템 토폴로지 PBX 연결

그림 95. Nvidia H100 시스템 아키텍처

A diagram of a computer system Description automatically generated

  • HGX A100:

그림 96. Nvidia A100 시스템 관리 인터페이스(SMI) 시스템 토폴로지 PBX 연결

그림 97. Nvidia A100 시스템 아키텍처

A computer diagram of a computer network Description automatically generated with medium confidence

참고: 이러한 경로는 고정되어 있습니다.

이러한 매핑은 Nvidia의 A100 또는 H100 사용자 가이드에서도 찾을 수 있습니다.

예를 들어, DGX H100/H200 시스템에서 NVIDIA의 DGX H100/H200 시스템 사용자 가이드 표 5 및 표 6 에 따른 포트 매핑은 다음과 같습니다.

표 27: GPU에서 NIC로의 매핑

포트 커넥트X GPU 기본값 RDMA NIC
OSFP4P2 CX1 0 IBP24S0 mlx5_0 NIC0
OSFP3P2 CX3 1 IBP64S0 mlx5_3 NIC3
OSFP3P1 CX2 2 IBP79S0 mlx5_4 NIC4
OSFP4P1 CX0 3 IBP94S0 mlx5_5 NIC5
OSFP1P2 CX1 4 IBP154S0 mlx5_6 NIC6
OSFP2P2 CX3 5 IBP192S0 mlx5_9 NIC9
OSFP2P1 CX2 6 IBP206S0 mlx5_10 NIC10
OSFP1P1 CX0 7 IBP220S0 mlx5_11 NIC11

표 28: GPU-NIC 연결

NIC GPU0 GPU1 GPU2 GPU3 GPU4 GPU5 GPU6 GPU7
NIC0 PXB 시스템 시스템 시스템 시스템 시스템 시스템 시스템
NIC3 시스템 PXB 시스템 시스템 시스템 시스템 시스템 시스템
NIC4 시스템 시스템 PXB 시스템 시스템 시스템 시스템 시스템
NIC5 시스템 시스템 시스템 PXB 시스템 시스템 시스템 시스템
NIC6 시스템 시스템 시스템 시스템 PXB 시스템 시스템 시스템
NIC9 시스템 시스템 시스템 시스템 시스템 PXB 시스템 시스템
NIC10 시스템 시스템 시스템 시스템 시스템 시스템 PXB 시스템
NIC11 시스템 시스템 시스템 시스템 시스템 시스템 시스템 PXB

그림 98. Nvidia H100 전면 패널

A screenshot of a computer Description automatically generated

자세한 정보 및 A100 시스템에 대한 매핑은 다음을 확인하십시오.

NVIDIA HGX A100 시스템 소개 — NVIDIA HGX A100 사용자 가이드 1 문서

NVIDIA DGX H100/H200 시스템 소개 — NVIDIA DGX H100/H200 사용자 가이드 1 문서

NIC의 인터페이스 이름 변경 및 IP 주소 및 경로 할당

IP 주소 또는 인터페이스 이름과 같은 NIC 속성은 넷플랜을 편집하고 다시 적용하여 만들 수 있습니다.

네트워크 구성은 아래 예제 표와 같이 /etc/netplan/01-netcfg.yaml 파일에 설명되어 있습니다. 모든 속성 변경에는 이 파일을 편집하고 이 섹션의 뒷부분에 나와 있는 예제에 나와 있는 대로 네트워크 계획을 다시 적용하는 작업이 포함됩니다.

표 29: Nvidia HGX A100 인터페이스 구성 예:

netcfg.yaml 출력
jvd@A100-01:/etc/netplan$ 더 보기 01-netcfg.yaml
# 'subiquity'가 작성한 네트워크 구성입니다. gpu0_eth: gpu4_eth:
네트워크: 일치: 일치:
버전: 2 MAC주소: 94:6D:AE:54:72:22 macaddress: 94:6d:ae:5b:28:70
이더넷: dhcp4: 거짓 dhcp4: 거짓
mgmt_eth: 최대 전송 단위(MTU): 9000 최대 전송 단위(MTU): 9000
일치: 주소: 주소:
macaddress: 7c:c2:55:42:b2:28 - 10.200.0.8/24 - 10.200.4.8/24
dhcp4: 거짓 경로: 경로:
주소: - 받는 사람: 10.200.0.0/16 - 받는 사람: 10.200.0.0/16
- 10.10.1.0/31 경유: 10.200.0.254 경유: 10.200.4.254
네임서버: 보낸 사람: 10.200.0.8 보낸 사람: 10.200.4.8
주소: 세트 이름: gpu0_eth 세트 이름: gpu4_eth
- 8.8.8.8 gpu1_eth: gpu5_eth:
경로: 일치: 일치:
- to: 기본값 macaddress: 94:6d:ae:5b:01:d0 macaddress: 94:6d:ae:5b:27:f0
경유: 10.10.1.1 dhcp4: 거짓 dhcp4: 거짓
세트 이름: mgmt_eth 최대 전송 단위(MTU): 9000 최대 전송 단위(MTU): 9000
weka_eth: 주소: 주소:
일치: - 10.200.1.8/24 - 10.200.5.8/24
macaddress: b8:3f:d2:8b:68:e0 경로: 경로:
dhcp4: 거짓 - 받는 사람: 10.200.0.0/16 - 받는 사람: 10.200.0.0/16
최대 전송 단위(MTU): 9000 경유: 10.200.1.254 경유: 10.200.5.254
주소: 보낸 사람: 10.200.1.8 보낸 사람: 10.200.5.8
- 10.100.1.0/31 세트 이름: gpu1_eth 세트 이름: gpu5_eth
경로: gpu2_eth: gpu6_eth:
- 받는 사람: 10.100.0.0/22 일치: 일치:
경유: 10.100.1.1 macaddress: 94:6d:ae:5b:28:60 macaddress: 94:6d:ae:54:78:e2
세트 이름: weka_eth dhcp4: 거짓 dhcp4: 거짓
  최대 전송 단위(MTU): 9000 최대 전송 단위(MTU): 9000
  주소: 주소:
  - 10.200.2.8/24 - 10.200.6.8/24
  경로: 경로:
  - 받는 사람: 10.200.0.0/16 - 받는 사람: 10.200.0.0/16
  경유: 10.200.2.254 경유: 10.200.6.254
  보낸 사람: 10.200.2.8 보낸 사람: 10.200.6.8
  세트 이름: gpu2_eth 세트 이름: gpu6_eth
  gpu3_eth: gpu7_eth:
  일치: 일치:
  macaddress: 94:6d:ae:5b:01:e0 macaddress: 94:6d:ae:54:72:12
  dhcp4: 거짓 dhcp4: 거짓
  최대 전송 단위(MTU): 9000 최대 전송 단위(MTU): 9000
  주소: 주소:
  - 10.200.3.8/24 - 10.200.7.8/24
  경로: 경로:
  - 받는 사람: 10.200.0.0/16 - 받는 사람: 10.200.0.0/16
  비아: 10.200.3.254 경유: 10.200.7.254
  보낸 사람: 10.200.3.8 보낸 사람: 10.200.7.8
  집합 이름: gpu3_eth 세트 이름: gpu7_eth

특정 NIC(물리적 인터페이스)에 인터페이스 이름 매핑

인터페이스 이름을 구성 파일에서 물리적 인터페이스의 MAC에 매핑합니다.

그림 99. Nvidia A100 물리적 인터페이스 식별 예

여기서:

en = 이더넷 네트워크 인터페이스.

P203S0 = 네트워크 인터페이스의 물리적 위치.

203번 버스 번호.

s0 = 버스의 슬롯 번호 0.

f1 = 네트워크 인터페이스에 대한 기능 번호 1.

np1 = 네트워크 포트 1

A computer code with black text Description automatically generated

기능 0: 기본 이더넷 인터페이스일 수 있습니다.

기능 1: 두 번째 이더넷 인터페이스일 수 있습니다.

기능 2: 관리 또는 진단 인터페이스일 수 있습니다.

그림 100. Nvidia A100 netplan 파일 수정 예제

devnames 파일에서 모든 논리적 인터페이스의 이름을 찾을 수 있습니다.

netplan apply 명령을 사용하여 변경 사항을 적용합니다

그림 101. Nvidia A100 netplan 애플리케이션 예제

NIC 이름 변경

구성 파일에서 set-name의 값을 변경하고 변경 사항을 저장합니다.

그림 102. Nvidia A100 넷플래시 인터페이스 이름 변경 예

netplan apply 명령을 사용하여 변경 사항 적용

그림 103. Nvidia A100 넷플랜 인터페이스 이름 변경 애플리케이션 및 검증 예시

A computer screen shot of a computer code Description automatically generated

현재 IP 주소를 변경하거나 NIC에 IP 주소를 할당하려면

구성 파일의 적절한 인터페이스 아래에 주소를 변경하거나 추가하고 변경 사항을 저장합니다.

그림 104. Nvidia A100 넷플랜 인터페이스 IP 주소 변경 예

IP 주소를 하이픈과 들여쓰기로 앞에 입력합니다. 서브넷 마스크를 추가해야 합니다.

netplan apply 명령을 사용하여 변경 사항 적용

그림 105. Nvidia A100 netplan 인터페이스, 새로운 IP 주소 애플리케이션 및 검증 예제

NIC에 경로 변경 또는 추가

구성 파일의 적절한 인터페이스 아래에서 경로를 변경하거나 추가하고 변경 사항을 저장합니다.

그림 106. Nvidia A100 netplan 추가 경로 예

netplan apply 명령을 사용하여 변경 사항을 적용합니다

그림 107. Nvidia A100 netplan 추가 경로 애플리케이션 및 검증 예:

NVIDIA DCQCN – ECN 구성

그림 108: NVIDIA DCQCN – ECN

MLNX_OFED 4.1부터 ECN은 기본적으로 (펌웨어에서) 활성화됩니다.

ECN이 활성화되었는지 확인하려면 다음 명령을 사용합니다: mlxconfig -d <device> q | grep ROCE_CC

예:

마스크 255는 NIC에 구성된 모든 TC(트래픽 클래스)에 대해 DCQCN(ECN)이 활성화되었음을 의미합니다.

ECN을 비활성화하려면 mlxconfig -d <device> s ROCE_CC_PRIO_MASK_P1=<mask> 명령을 사용하여 마스크를 변경할 수 있습니다.

예:

새 구성을 적용할지 묻는 질문을 받지 않으려면 다음 예와 같이 -y 옵션을 포함하십시오.

출력에는 서버 재부팅이 필요하다는 메시지가 표시됩니다. 대안으로, mlxfwreset -d <device> -l 3 -y r 명령을 사용하여 인터페이스를 재설정할 수 있습니다.

디바이스는 /dev/mst/mt4129_pciconf2 또는 mlx5_0로 입력할 수 있습니다(gpu0_eth 이 명령에 유효한 형식이 아닙니다)

예:

ECN 작업 매개 변수는 다음 경로에 있습니다 /sys/class/net/<interface>/ecn

다음 명령을 사용하여 인터페이스를 찾습니다:

IP 헤더의 ECN 비트는 RoCE 트래픽에 대해 항상 10으로 표시됩니다.

NP(알림 지점) 매개 변수

ECN 지원 수신기는 ECN으로 표시된 RoCE 패킷을 수신하면 CNP(혼잡 알림 패킷)를 전송하여 응답합니다.

다음 명령은 알림 매개 변수에 대해 설명합니다.

예:

cnp_802p_prio = CNP 패킷의 PCP(우선순위 코드 포인트) 필드 값.

PCP는 IEEE 802.1Q에서 정의한 대로 VLAN 태그가 지정된 프레임을 사용할 때 이더넷 프레임 헤더 내의 3비트 필드입니다.

cnp_dscp = CNP 패킷의 DSCP(Differentiated Services Code Point) 필드 값.

min_time_between_cnps = 전송된 두 개의 연속 CNP 사이의 최소 시간. ECN으로 표시된 RoCE 패킷이 이전에 전송된 CNP 이후 min_time_between_cnps보다 짧은 기간에 도착하면 응답으로 CNP가 전송되지 않습니다. 이 값은 마이크로초 단위입니다. 기본값 = 0

출력은 모든 우선 순위 값에 대해 roce_np가 활성화되어 있음을 보여줍니다.

참고: CNP 패킷 전송은 포트당 전 세계적으로 처리되며, 여기에서 활성화된 우선 순위는 CNP 패킷 전송을 on (1)으로 설정합니다.

위에서 설명한 속성을 변경하려면 mlxconfig 유틸리티를 사용합니다.

예:

반응점(RP) 매개 변수

ECN 활성화 발신자는 CNP 패킷을 수신하면 지정된 흐름(우선순위)에 대한 전송 속도를 늦추는 방식으로 응답합니다.

다음 매개 변수는 CNP 패킷이 도착한 후 트래픽 흐름이 속도를 제한하는 방법을 정의합니다.

예:

rpg_max_rate = 반응점 노드가 전송할 수 있는 최대 속도. 이 제한에 도달하면 RP는 더 이상 속도 제한이 되지 않습니다.

이 값은 Mbits/sec 단위로 구성됩니다. 기본값 = 0(최대 속도 – 최대 없음)

출력은 모든 우선 순위 값에 대해 roce_rp가 활성화되어 있음을 보여줍니다.

참고: CNP 처리는 우선순위에 따라 구성됩니다.

ECN 통계를 확인하려면 ethtool -S <인터페이스> | 그렙 ECN

예:

NVIDIA DCQCN – PFC 구성

IEEE 802.1Qbb는 이더넷 링크의 특정 등급의 트래픽에 일시 중지 기능을 적용합니다.

그림 109: NVIDIA DCQCN – PFC 구성A diagram of a computer program Description automatically generated with medium confidence

인터페이스에서 PFC가 활성화되었는지 확인하려면 다음을 사용합니다. mlnx_qos -i <인터페이스>

예:

PFC를 활성화/비활성화하려면 다음을 사용하십시오. mlnx_qos -i <인터페이스> --pfc <0/1>,<0/1>,<0/1>,<0/1>,<0/1>,<0/1>,<0/1>,<0/1>

예:

- 현재 구성을 확인합니다.

예의 출력은 PFC가 우선순위 3에 대해 활성화되었음을 나타냅니다.

  • 우선 순위 2에 대해 PFC를 활성화하고 우선 순위 3에 대해 PFC를 비활성화합니다.
이 예는 구성을 변경하는 방법을 보여줍니다. 리프 노드의 PFC 구성과 일치하는지 확인합니다(set class-of-service forwarding-classes class NO-LOSS pfc-priority 3).
  • PFC 통계 확인:
참고: 일시 중지 카운터는 PFC가 활성화된 우선순위에 대해서만 ethtool을 통해 볼 수 있습니다.

RDMA-CM QPS(RDMA 트래픽)에 대한 NVIDIA TOS/DSCP 구성

그림 110: NVIDIA TOS/DSCP

A diagram of a machine Description automatically generated

스위치가 RDMA 트래픽을 올바르게 분류하고 적절한 처리를 위해 무손실 대기열에 배치할 수 있도록 적절하게 표시해야 합니다. 마킹은 IP 헤더 내의 DSCP 또는 이더넷 프레임 vlan-tag 필드의 PCP일 수 있습니다. DSCP 또는 PCP의 사용 여부는 GPU 서버와 스위치 간의 인터페이스가 VLAN 태깅(802.1q)을 수행하는지 여부에 따라 달라집니다.

현재 구성을 확인하고 RDMA 아웃바운드 트래픽에 대한 TOS 값을 변경하려면 MLNX_OFED 4.0의 일부인 cma_roce_tos 스크립트를 사용합니다.

TOS 필드의 현재 값을 확인하려면 옵션 없이 sudo cma_roce_tos를 입력합니다.

예:

이 예에서 현재 TOS 값 = 106은 DSCP 값 = 48을 의미하며 ECN 비트는 10으로 설정됩니다.

참고: TOS 필드는 8비트이고 DSCP는 6비트입니다. DSCP 값을 X로 설정하려면 이 값에 4를 곱해야 합니다(SHIFT 2). 예를 들어, DSCP 값을 24(24x4=96)로 설정하려면 TOS 비트를 96으로 설정합니다. ECN을 포함하려면 2를 추가해야 합니다.

A screenshot of a graph Description automatically generated

값을 변경하려면 cma_roce_tos –d <ib_device> -t<TOS>를 사용하십시오.

이 명령에 ib_device를 입력해야 합니다. 다음 스크립트는 물리적 인터페이스와 ib_device 간의 매핑을 자동으로 수행합니다.

예:

그림 111. 스크립트 결과 예제

그림 112. 참조 TOS, DSCP 매핑:

A table with numbers and symbols

NCCL 제어 트래픽에 관리 인터페이스를 사용하도록 NVIDIA 구성

NCCL은 TCP 세션을 사용하여 프로세스를 서로 연결하고 RoCE, GID(글로벌 ID), 로컬 및 원격 버퍼 주소, RDMA 키(메모리 액세스 권한의 RKEY)에 대한 QP 정보를 교환합니다

이는 모델 매개 변수, 부분적인 작업 결과 등을 동기화하는 데 사용되는 RoCEv2 트래픽(포트 4791)과는 별개입니다.

이러한 세션은 작업이 시작될 때 생성되며 기본적으로 GPU 인터페이스 중 하나(RoCEv2 트래픽에 사용되는 것과 동일한 인터페이스)를 사용합니다.

예:

작업을 시작할 때 다음 매개 변수를 포함하여 관리 인터페이스((프론트엔드 패브릭에 연결됨)로 이동하는 것이 좋습니다. export NCCL_SOCKET_IFNAME="mgmt_eth"

예:

ECN은 이러한 세션에 대해 기본적으로 활성화됩니다. net.ipv4.tcp_ecn = 1이지만 sudo sysctl -w net.ipv4.tcp_ecn=0 으로 비활성화할 수 있습니다.