[Pascal Architecture] NVLink (High Speed Interconnection)

NVLink는 NVIDIA사에서 소개한 high speed interconnection (NVHS: NVIDIA’s new High-Speed Signaling  interconnection)을 말한다. NVLink는 Tesla P100과 Pascal GP100 GPUs에서 지원한다. 가장 큰 목적은 GPU와 GPU 간의 data access 속도(대역폭)를 향상하려는 방법이다. NVLink를 지원하지 않을 경우 GPU 간에 data access를 하기 위해서는 PCIe를 사용하여 호스트(host)의 메모리에 저장 후 다시 PCIe를 사용하여 다른 GPU에 데이터 로딩을 진행한다. 설명만으로도 엄청난 overhead인 것을 확인할 수 있다. PCIe의 데이터 접근 속도는 대략 1000MB/s에서 250MB/s정도이다 (16lane의 PCIe3.0의 경우 대략 32GB/s라고한다).

NVHS는 각 link 당 대략 20GB/sec의 성능을 보장하고 총 8개의 link를 가지고 있다고 한다. 각 link는 한쪽으로만 통신이 가능한 형태이다. 결과적으로 GPU 간에 pair를 할 경우 최대 80GB/sec씩 read/write이 가능한 형태이다 (4개의 link가 read를 위해 사용, 4개의 link가 write를 위해 사용). 결과적으로 총 대역폭은 160GB/sec가 된다. 2개의 GPU가 모든 8개의 link를 서로 다 활용할 수 있는 형태이다. 또한, NVLink는 CPU와도 연결할 수 있다고 한다. 하지만, NVLink를 지원하는 CPU는 IBM에서 설계한 Power8 CPU밖에 존재하지 않는다. (현재는 Intel, AMD는 지원하지 않는다)

8GPUs
그림 1:  GPU 8개를 NVLink로 연결한 그림 (출처)

그림 1은 GPU chip 8개가 NVLink를 통해 연결된 형태를 보여준다. 각 GPU는 총 8개의 link를 가지고 있으므로 모든 GPU와 바로 연결할 수는 없다 (양방향으로 총 4개). 하지만 NVLink를 통해 mesh 형태의 interconnection이 형성되어 모든 GPU 간의 data 이동은 NVLink를 사용할 수 있다. 결과적으로 PCIe는 CPU와 GPU의 data 통신만을 담당하게 되기 때문에 data 이동의 overhead를 최소화할 수 있다.

4GPUs
그림 2: GPU 4개를 NVLink로 연결한 그림 (출처)

그림 2은 GPU chip 4개가 NVLink를 통해 연결된 형태이다. 그림에서 보듯이 여러 개의 link가 GPU 간에 연결이 가능하다. 1개의 GPU는 80GB/sec의 양방향 통신(40GB/s read/40GB/sec write)이 가능하고 나머지 GPU와는 40GB/sec의 양방향 통신이 가능한 형태이다. 결과적으로 모든 NVLink의 대역폭을 전부 사용할 수 있는 형태이다.

CPU-GPU
그림 3: CPU-GPU를 NVLink로 연결한 그림 (출처)

그림 3은 CPU와 GPU를 NVLink로 연결한 그림을 보여준다. 앞에서 말했듯이 현재 NVLink를 지원하는 CPU는 IBM의 Power8뿐이다. 그림 3의 경우 CPU와 GPU가 160GB/sec의 대여폭을 가진다. 이와 더불어 PCIe를 따로 사용할 수 있는 것 같다. 물론, 여러 개의 GPU와 CPU가 NVLink 연결이 가능하다.

NVLink
그림 4: NVLink 연결 구조 (출처)

그림 4는 NVLink 구조 그림을 묘사한 것이다. HSHUB (High-Speed Hub)와 crossbar interconnection이 연결되어 있다. Crossbar interconnection은 GPU의 모든 processor, memory와 연결된 형태이다. NVLink는 HSCE (High-Speed Copy Engines)을 통해서 데이터를 이동한다.

결과적으로 NVLink는 GPU 간의 데이터 접근 성능 향상을 위해 제안되었다. 물론 IBM의 CPU와도 연동이 가능한 형태이지만, 대부분 서버나 데스크톱의 CPU는 Intel/AMD이기 때문에 CPU와의 연동은 거의 불가능한 상태이다. 하지만 여러 개의 GPU가 있으면 서로 데이터 접근 성능을 향상할 수 있다.

출처
  1. https://images.nvidia.com/content/pdf/tesla/whitepaper/pascal-architecture-whitepaper.pdf
  2. http://www.trentonsystems.com/applications/pci-express-interface/

1 thought on “[Pascal Architecture] NVLink (High Speed Interconnection)”

  1. 단위의 오차가 있어서 수정하였습니다. Gb/s 를 GB/s로 수정하였습니다. Pascal White Paper에서 오타가 있어서 잘못 이해하였습니다. 그리고 PCIe성능을 조금더 상세하게 적었습니다.

    Reply

Leave a Comment