NVLink

**NVLink**(NV링크)는 엔비디아가 개발한 전선 기반의 직렬, 다중 레인, 근거리 통신 프로토콜 링크다. PCI 익스프레스와 달리 하나의 장치가 여러 개의 NVLink로 구성될 수 있으며, 중앙 허브/스위치 대신 메시 망을 사용하여 장치 간 통신을 할 수 있다. 이 프로토콜은 2014년 3월에 처음 발표되었으며 독자적인 고속 신호 상호 연결(NVHS)을 사용한다.

적은 수의 GPU의 경우, 단일 장치의 NVLink 레인만으로도 전체 대 전체(all-to-all) 메시 연결에 충분하다. 더 많은 수의 GPU를 수용하기 위해 2018년부터 NVLink는 패킷 교환 아키텍처를 사용하며, 여기서 중앙 스위치는 최대 32개의 2레인 포트를 지원할 수 있다. NVLink 4.0용 NVSwitch는 "SHARP" 가속기 덕분에 통신 필요성을 줄이기 위해 자체적으로 간단한 계산(예: 합계, 브로드캐스트)을 수행할 수 있다.

## 원리
NVLink는 CPU와 GPU 사이, 그리고 GPU와 GPU 사이의 프로세서 시스템에서 데이터 및 제어 코드 전송을 위해 엔비디아가 개발했다. NVLink는 차동 쌍(differential pair)당 20, 25, 50&nbsp;Gbit/s(각각 v1.0/v2.0/v3.0+ 대응)의 데이터 속도를 갖는 점대점 연결을 규정한다. NVLink 1.0 및 2.0의 경우 8개의 차동 쌍이 하나의 "서브 링크"를 형성하고, 각 방향당 하나씩 두 개의 "서브 링크"가 하나의 "링크"를 형성한다. NVLink 3.0부터는 4개의 차동 쌍만이 하나의 "서브 링크"를 형성한다. NVLink 2.0 이상에서 서브 링크의 총 데이터 속도는 25&nbsp;GB/s이며, 링크의 총 데이터 속도는 50&nbsp;GB/s이다. 각 V100 GPU는 최대 6개의 링크를 지원한다. 따라서 각 GPU는 총 양방향 대역폭에서 최대 300&nbsp;GB/s를 지원할 수 있다. 현재까지 출시된 NVLink 제품은 고성능 애플리케이션 분야에 집중하고 있다. 2020년 5월 14일에 발표된 NVLink 3.0은 차동 쌍당 데이터 속도를 25&nbsp;Gbit/s에서 50&nbsp;Gbit/s로 높이는 동시에 NVLink당 쌍의 수를 8개에서 4개로 줄였다. 암페어 기반 A100 GPU용 12개 링크를 통해 총 대역폭은 600&nbsp;GB/s에 달한다. 2022년 3월에 발표된 호퍼 GPU 마이크로아키텍처는 18개의 NVLink 4.0 링크를 갖추어 총 900&nbsp;GB/s의 대역폭을 가능하게 한다. 따라서 NVLink 2.0, 3.0, 4.0은 모두 양방향 링크당 50&nbsp;GB/s의 데이터 속도를 가지며, 각각 6개, 12개, 18개의 링크를 갖는다.

## 성능
다음 표는 표준 사양에 기반한 기본 지표 비교를 보여준다.

다음 표는 NVLink를 옵션 중 하나로 제공하는 실제 반도체들의 관련 버스 매개변수 비교를 보여준다.

실제 성능은 다양한 데이터 전송 오버헤드 비용과 사용률을 적용하여 결정될 수 있다. 이는 다음과 같은 다양한 원인에서 발생한다.
* 128b/130b 전송로 부호 (예: 버전 3.0 이상의 PCI 익스프레스 데이터 전송 참조)
* 링크 제어 문자
* 트랜잭션 헤더
* 버퍼링 능력
* 컴퓨터 측의 DMA 사용
이러한 물리적 제한은 일반적으로 데이터 속도를 전송 속도의 90~95% 사이로 감소시킨다. NVLink 벤치마크는 IBM 파워8 CPU 세트에 의해 구동되는 시스템에서 P100 GPU를 향한 40&nbsp;Gbit/s(2개의 서브 레인 업링크) NVLink 연결에 대해 약 35.3&nbsp;Gbit/s (호스트에서 장치로)의 도달 가능한 전송 속도를 보여준다.

## 플러그인 보드에서의 사용
이 기능을 갖춘 소수의 하이엔드 게이밍 및 전문가용 그래픽 GPU 보드와 같은 다양한 버전의 플러그인 보드를 NVLink 그룹으로 묶기 위해 추가 커넥터를 노출시키는, 물리적·논리적 설계가 약간씩 다른 상대적으로 컴팩트한 PCB 기반 상호 연결 플러그들이 존재한다. 일반적으로 물리적 및 논리적 설계로 인해 동일한 유형의 보드만 서로 결합된다. 일부 설정에서는 전체 데이터 속도를 달성하기 위해 두 개의 동일한 플러그를 적용해야 한다. 현재 전형적인 플러그는 U자형이며, 사용자의 반대편을 향한 형상의 각 끝 스트로크에 미세한 그리드 엣지 커넥터가 있다. 플러그의 너비는 플러그인 카드가 호스트 컴퓨터 시스템의 메인보드에 얼마나 떨어져 배치되어야 하는지를 결정한다. 카드의 배치 거리는 일반적으로 일치하는 플러그에 의해 결정된다(알려진 사용 가능한 플러그 너비는 3~5슬롯이며 보드 유형에 따라 다르다). 이 상호 연결은 구조적 설계와 외형 때문에 종종 2004년의 스케일러블 링크 인터페이스(SLI)라고 불리기도 하지만, 현대의 NVLink 기반 설계는 이전 설계와 비교했을 때 기본 레벨에서 기능이 다른 상당히 차별화된 기술적 성격을 갖는다. 보고된 실제 장치는 다음과 같다.
* 쿼드로 GP100 (카드 한 쌍은 최대 2개의 브리지를 사용한다. 이 설정은 최대 160&nbsp;GB/s의 2개 또는 4개의 NVLink 연결을 구현한다. - 이는 20 GT/s의 NVLink 1.0과 유사할 수 있다)
* 쿼드로 GV100 (카드 한 쌍은 최대 2개의 브리지가 필요하며 최대 200&nbsp;GB/s를 구현한다. - 이는 25 GT/s 및 4개 링크를 갖춘 NVLink 2.0과 유사할 수 있다)
* 지포스 RTX 2080 (TU104 기반, 단일 브리지 "GeForce RTX NVLink-Bridge" 사용)
* 지포스 RTX 2080 Ti (TU102 기반, 단일 브리지 "GeForce RTX NVLink-Bridge" 사용)
* 지포스 RTX 3090 (GA102 기반, 고유한 "GeForce RTX NVLink-Bridge (30 시리즈 제품용)" 사용)
* 쿼드로 RTX 5000 (TU104 기반, 단일 브리지 "NVLink"로 최대 50&nbsp;GB/s - 이는 25 GT/s 및 1개 링크를 갖춘 NVLink 2.0과 유사할 수 있다)
* 쿼드로 RTX 6000 (TU102 기반, 단일 브리지 "NVLink HB"로 최대 100&nbsp;GB/s - 이는 25 GT/s 및 2개 링크를 갖춘 NVLink 2.0과 유사할 수 있다)
* 쿼드로 RTX 8000 (TU102 기반, 단일 브리지 "NVLink HB"로 최대 100&nbsp;GB/s - 이는 25 GT/s 및 2개 링크를 갖춘 NVLink 2.0과 유사할 수 있다)

## 서비스 소프트웨어 및 프로그래밍
테슬라, 쿼드로 및 Grid 제품군의 경우 NVML-API(엔비디아 관리 라이브러리 API)는 윈도우 및 리눅스 시스템에서 구성 요소 평가 및 버전 확인, 상태/오류 조회, 성능 모니터링 등 NVLink 상호 연결의 일부 측면을 프로그래밍 방식으로 제어하기 위한 일련의 기능을 제공한다. 또한 NCCL 라이브러리(엔비디아 집합 통신 라이브러리) 제공을 통해 일반 개발자들이 인공지능 및 이와 유사한 연산 집약적인 주제를 NVLink 상에서 강력하게 구현할 수 있게 한다. 엔비디아 제어판의 "3D 설정" » "SLI, Surround, PhysX 구성" 페이지와 CUDA 샘플 애플리케이션 "simpleP2P"는 이러한 API를 사용하여 NVLink 기능과 관련된 서비스를 구현한다. 리눅스 플랫폼에서는 "nvidia-smi nvlink" 하위 명령을 사용하는 명령줄 애플리케이션이 유사한 고급 정보 및 제어 세트를 제공한다.

## 역사
2016년 4월 5일, 엔비디아는 엔비디아 테슬라 P100 제품 등에서 사용되는 파스칼 마이크로아키텍처 기반 GP100 GPU에 NVLink가 구현될 것이라고 발표했다. 엔비디아 DGX-1 고성능 컴퓨터 베이스의 도입으로 단일 랙 시스템에 최대 8개의 P100 모듈을 최대 2개의 호스트 CPU에 연결할 수 있게 되었다. 캐리어 보드는 NVLink 연결 라우팅을 위한 전용 보드를 허용한다. 각 P100은 800개의 핀이 필요하며, 400개는 PCIe + 전원용, 나머지 400개는 NVLink용으로, NVLink 하나만으로도 거의 1600개의 보드 트레이스가 추가된다. 각 CPU는 PCIe를 통해 4개의 P100 장치에 직접 연결되며, 각 P100은 동일한 CPU 그룹 내의 다른 3개 P100 각각에 대해 하나씩의 NVLink를 가지며, 다른 CPU 그룹의 P100 하나에 대해 하나 더의 NVLink를 갖는다. 각 NVLink(링크 인터페이스)는 양방향으로 상향 20&nbsp;GB/sec, 하향 20&nbsp;GB/sec를 제공하며, GP100 GPU당 4개의 링크가 있어 총 합계 대역폭은 상향 80&nbsp;GB/sec 및 하향 80&nbsp;GB/sec가 된다. NVLink는 라우팅을 지원하므로 DGX-1 설계에서 모든 P100에 대해 나머지 7개의 P100 중 총 4개는 직접 도달 가능하고 나머지 3개는 단 하나의 홉으로 도달 가능하다. 엔비디아의 블로그 기반 출판물에 따르면 2014년부터 NVLink는 점대점 성능 향상을 위해 개별 링크의 번들링을 허용하며, 예를 들어 두 개의 P100 사이에 모든 링크가 설정된 설계는 그들 사이에서 80&nbsp;GB/s의 전체 NVLink 대역폭을 허용한다.

GTC2017에서 엔비디아는 볼타 세대 GPU를 선보였으며, 이 설계에서 단일 칩에 대해 총 300&nbsp;GB/s의 I/O 데이터 속도를 허용하는 개정된 NVLink 버전 2.0의 통합을 시사했다. 또한 V100 유형의 GPU 모듈이 장착되고 NVLink 2.0이 네트워크 방식(4개의 V100 모듈로 구성된 두 그룹이 그룹 간 연결됨) 또는 4개의 V100 모듈로 구성된 한 그룹의 완전 상호 연결 방식으로 구현된 DGX-1 및 DGX-Station 고성능 컴퓨터의 2017년 3분기 인도를 약속하는 예약 주문 옵션을 발표했다.

2017년에서 2018년 사이, IBM과 엔비디아는 미국 에너지부를 위해 서밋 및 시에라 슈퍼컴퓨터를 인도했다. 이들은 IBM의 POWER9 CPU 제품군과 엔비디아의 볼타 아키텍처를 결합했으며, CPU-GPU 및 GPU-GPU 상호 연결을 위해 NVLink 2.0을 사용하고 시스템 상호 연결을 위해 인피니밴드 EDR을 사용했다.

2020년, 엔비디아는 2021년 1월 1일부터 RTX 2000 시리즈 및 그 이전 제품에 대해 새로운 SLI 드라이버 프로필을 더 이상 추가하지 않겠다고 발표했다.

2022년, 에이다 러브레이스 아키텍처에서 NVLink 커넥터가 제거되었다. 엔비디아 CEO 젠슨 황은 제거를 통해 확보된 I/O가 AI 처리 능력을 위해 사용될 것이며, PCIe Gen 5.0 표준으로 전환할 의도임을 명시했다. 일부 사용자들은 특정 보드에 제거된 NVLink 커넥터의 흔적이 있다고 보고했다. NVLink 기술은 데이터 센터 및 엔터프라이즈 사용자들에게 계속 제공되고 있다.

## 타 제조사의 지원
2025년, 칩 설계자가 NVLink를 라이선스하고 자사 제품에 통합할 수 있도록 하는 NVLink Fusion이 발표되었다. 이후 NVLink Fusion은 데이터 센터 제품을 위해 ARM 및 SiFive에 의해 라이선스되었으며, 아마존 웹 서비스도 차세대 Trainium4 가속기를 위해 이를 도입했다.

## 같이 보기
* 퀵패스 인터커넥트
* 하이퍼트랜스포트
* 메시지 전달 인터페이스

## 각주

분류:엔비디아
분류:컴퓨터 버스
분류:직렬 버스