PHY의 성능에 여유가 있는 AMD 인스팅트 MI200
AMD 인스팅트 MI200 시리즈의 다이 레이아웃입니다. 쉐이더 엔진은 XCU를 가리킵니다. 인피니티 패브릭의 링크 속도는 외부 144GB/s, 내부 연결에는 125GB/s 4개입니다. 온 패키지의 2개 다이는 400GB/s입니다. 이렇게 보면 PHY에 여유가 꽤 있어 보입니다. PCIe 4.0 x16으로 연결했을 경우 16GT/s가 16개니까 32GB/s가 최대거든요. 또 특정 제품과 조합하면 1레인당 25GT/s까지 빼낼 수 있습니다. 그렇다면 16레인이 50GB/s, 인스팅트 MI250은 각각 다이에 PCIe I/F가 있기에 총 100GB/s가 나옵니다.
외부 인피니티 패브릭은 500Gb/초인데, 8개의 인피니티 패브릭을 모두 합친 것이며 1개당 62.5GB/s입니다. AMD는 인피니티 패브릭의 레인 수를 공개하지 않았으나, 그 수는 자유롭게 설정할 수 있습니다. 속도는 PCIe 5.0과 비슷하다고 알려져 있습니다. 다만 2개의 다이를 연결하는 패키지 내부의 인피니티 패브릭에 대해서는 잘 알려지지 않았습니다. 4개의 인피니티 패브릭이 400GB/s니까 1개당 100GB/s초가 됩니다. 그림에선 16개의 신호로 연결된 것츠로 보이니 1개당 6.25GB/s입니다. 2개의 다이는 Elevated Fanout Bridge 2.5D 를 이용한 실리콘 인터포저를 거쳐 연결되기에 이 정도로 속도를 높여도 됩니다.
I/F의 접속 숫자에 따라 속도가 달라진다는 게 인스팅트 MI200의 특징입니다. 그럼 왜 다이 사이의 연결만 접속 속도를 높였을까요? 이는 2개 다이의 NoC를 빠르게 연결하기 위해서입니다. 왼쪽 아래에 나온대로 Unified Shader Memory across GCDs, 즉 패키지 위의2개 다이에 있는 XCU는 액세스하는 메모리가 로컬의 HBM2e인지 원격의 HBM2e인지를 구분하지 않습니다. 따라서 원격 HBM2e에 액세스를 해도 성능을 확보해야 할 필요가 있습니다. HBM2e는 32채널로 나눠 액세스하기에 1채널당 50Gb/s가 되며 이걸 32채널 동시에 연결하는데 인피니티 패브릭을 거치면 50Gb/s씩 8채널이 됩니다.
하나의 XCU에서 다수의 채널을 동시에 접속하진 않기에, 로컬이건 원격이건 XCU의 대역은 바뀌게 됩니다. 물론 인피니티 패브릭을 거치면 지연 시간이 늘어나고, 8채널만 연결할 수 있기에 다수의 XCU가 원격 HBM2e에 동시 액세스하면 지연이 생길 수밖에 없지만 이건 프로그래밍 차원에서 회피할 수 있습니다. 이러한 다이 레벨에서 GPU끼리 연결 방법은 올해 말에 나오는 RDNA3에서도 똑같이 사용합니다. WGP(+L1)+L2 다이와 인피니티 캐시 다이 사이를 연결하는데, 여기에도 Elevated Fanout Bridge 2.5D를 사용하리라 생각됩니다.
이건 프론티어 슈퍼컴퓨터에 탑재되는 노드입니다. 왼쪽은 인스팅트 MI250X의 OAM이 4개 있고, 오른쪽은 에픽 메인보드이며 슬링샷-11 네트워크 카드가 장착됐습니다. 메인보드 양 옆은 DDR4 메모리입니다. DIMM 2장을 한 쌍으로 써멀 재킷을 부착해 이걸 외부에서 식히는 구성입니다. 다만 이건 수냉 쿨링을 전제로 한 시스템이고요.
기가바이트의 공냉 시스템입니다. 2개의 에픽 프로세서를 2U에 넣었습니다.
슈퍼마이크로는 4U 시스템입니다.
인텔 폰테 베키오의 동작 클럭은 1.6GHz
폰테 베키오의 XE 코어 1개의 처리 성능은 FP32 45TFlops 이상이라고만 알려졌습니다. 그리고 핫 칩스에서 1.6GHz 이상의 클럭임이 공개됐는데요. 이건 최고 클럭이고 실제 시스템에서 이 정도로 작동되는지는 알 수 없습니다. 인스팅트 MI250X를 탑재한 프론티어의 경우 전성비를 높이기 위해 클럭을 1.7GHz에서 1.6GHz로 낮췄으니, 폰테 베키오를 쓴 오로라도 클럭을 낮출 가능성이 있습니다.
캐시의 경우 Xe 코어 1개에 512KB의 L1 캐시가 탑재되며, L2와 람보 캐시는 408MB입니다. 람보 캐시는 8개의 타일로 나뉘니 타일 1개의 용량은 51MB가 됩니다. 람보 캐시는 2개의 컴퓨트 타일에서 동시 액세스가 가능하며, 컴퓨트 타일과 람보 캐시 사이의 대역폭은 총 832GB/s입니다. 그러니 인스팅트 MI250X의 다이 사이 연결보다 2배가 높습니다. 다만 이건 원래 L2 캐시이기에 버스 폭이 넓을 수밖에 없습니다. 람보 캐시의 속도가 다이와 동기화된 1.7GHz라면 512비트로 충분하며, 절반으로 깎는다 하더라도 1024비트 구성이면 됩니다.
408MB의 람보 캐시는 딥 러닝 뉴렁 네트워크, 특히 과학 기술 계산 중에 랜덤 액세스가 자주 발생하는 FFT에서 효과가 좋습니다. 32MB나 80MB와 비교해서 스루풋이 두배로 오릅니다.
XMX 매트릭스 유닛의 효율도 공개했습니다. BF16을 이용해 GEMM을 연산했을 때, 매트릭스의 크기를 4096으로 늘리면 효율이 95%를 넘지만, 512에선 40% 미만, 1024에선 70% 미만, 2048에서도 90%가 되지 않습니다. 그러니까 행렬을 늘려야 제대로 효율이 나온다는 소리죠. 이건 단점이 될 수도 있습니다.
폰테 베키오는 SPMD (Single Processor Multi Data) / SIMT (Single Instruction Multi Thread)와 SIMD (Single Instruction Multi Data)의 두 가지 동작 모드를 지원합니다. GPU처럼 쓴다면 SPMD/SIMT 프로그래밍이 일반적이나, CPU 프로그램을 이식한다면 SIMD가 편합니다. 성능이야 물론 SPMD/SIMT가 높습니다. 아르곤 국립 연구소에서 개발한 우주 구조 간에 사용하는 라이브러리인 HACC(Hardware/Hybrid Accelerator Cosmology Code)를 SIMD로 이식해서 SIMT로 재기록하자 속도가 4.2배 빨라졌다고 합니다.
폰테 베키오는 3세대 제온 파이인 나이츠 힐 대신 개발된 것으로, 제온 파이는 CPU에서 수행하던 걸 보다 효율적으로 실행하는 GPGPU로 만들 계획이었습니다. 그러니 x86 애플리케이션의 이식은 필수입니다. 그래서 인텔은 oneAPI 개발에 신경을 쓰고 있으며, 로우 레벨에서 GPU와 하드웨어를 제어하는 oneAPI 레벨 제로 API를 제공하며, CUDA 애플리케이션을 SYCL로 변환하는 인텔 DPC++ 툴을 제공하고 있습니다. SPMD/SIMT와 SIMD 모드를 제공하는 것도 그런 이유에서일 겁니다.