호퍼 (마이크로아키텍처)

NVIDIA H100 GPU 4개 아키텍처의 시초, 그레이스 호퍼의 사진 **호퍼**(Hopper)는 엔비디아가 개발한 그래픽 처리 장치 (GPU) 마이크로아키텍처이다. 데이터 센터용으로 설계되었으며, 에이다 러브에이스 아키텍처와 동급이다. 엔비디아 테슬라의 최신 세대이다. 컴퓨터 과학자이자 미 해군 준장을 역임한 그레이스 호퍼의 이름을 딴 호퍼 아키텍처는 2019년 11월에 유출되었으며 2022년 3월에 공식적으로 공개되었다. 특징으로 하는 이전 버전인 튜링 및 암페어 마이크로아키텍처와 비교하면 새로운 스트리밍 멀티프로세서 와 더 빠른 메모리 하위 시스템을를 사용하여 개선되었다.
# 아키텍처
엔비디아 호퍼 H100 GPU는 800억 개의 트랜지스터를 사용하여 TSMC 4N 공정으로 구현된다. 이는 최대 144개의 스트리밍 멀티프로세서로 구성된다. p=4 SXM5 소켓 환경에서 엔비디아 호퍼 H100은 PCIe 보다 더 나은 성능을 보여주었다. p=20
## 스트리밍 멀티프로세서 (SM)
호피의 스트리밍 멀티프로세서는 튜링 및 암페어 마이크로아키텍처보다 개선되었지만 스트리밍 멀티프로세서(SM)당 최대 동시 워프 수는 64개로 유지되었다. p=9 호퍼 아키텍처는 공유 메모리와 전역 메모리 간의 양방향 비동기 메모리 전송을 지원하는 텐서메모리 가속기(TMA)를 제공한다. p=6 TMA에서 애플리케이션은 최대 5D 텐서를 전송할 수 있다. 공유 메모리에서 전역 메모리로 쓸 때, 요소별 축소 및 비트별 연산자를 사용하여 레지스터 및 SM 명령어를 피하면서 사용자가 워프 특화 코드를 작성할 수 있도록 할 수 있다. TMA는 `cuda::memcpy_async` 를 통해 표출된다. p=9-10 애플리케이션을 병렬화할 때 개발자는 스레드 블록 클러스터를 사용할 수 있다. 스레드 블록은 클러스터 내 다른 스레드 블록의 공유 메모리( 분산 공유 메모리 라고도 부름)에서 원자적 연산들을 수행할 수 있다. 분산 공유 메모리는 L2 캐시와 동시에 SM에 의해 사용될 수 있다. SM 간 데이터 통신에 사용될 때 이는 분산 공유 메모리와 L2의 결합된 대역폭을 활용할 수 있다. 최대 포터블 클러스터 크기는 8이지만 엔비디아 호퍼 H100은 `cudaFuncAttributeNonPortableClusterSizeAllowed` 기능을 사용하여 클러스터 크기 16을 지원할 수 있지만 잠재적으로 액티브 블록 수가 줄어들 수 있다.p=10 L2 멀티캐스팅 및 분산 공유 메모리를 사용하면 동적 랜덤 액세스 메모리 읽기 및 쓰기에 필요한 대역폭이 줄어든다.publisher=Nvidia 호퍼는 이전 제품보다 SM·사이클 단위마다 2배 많은 FP32 작업을 통해 향상된 단정밀도 부동 소수점 형식 (FP32) 처리량을 제공한다. 또한 호퍼 아키텍처는 스마스-워터만 알고리즘을 포함한 새로운 명령어를 추가로 지원한다. p=10 암페어 아키텍처와 마찬가지로 TensorFloat-32(TF-32)연산이 지원된다. 두 아키텍처의 매핑 패턴은 동일하다. p=4
## 메모리
엔비디아 호퍼 H100은 최대 80GB의 HBM3 및 HBM2e 메모리를 지원한다. HBM3 메모리 시스템은 엔비디아 암페어 A100의 2TB/s에 비해 50% 증가한 3TB/s를 지원한다. 아키텍처 전반에 걸쳐 L2 캐시 용량과 대역폭이 증가했다. p=11 호퍼를 사용하면 CUDA 컴퓨팅 커널이 개별 메모리 할당을 포함하여 자동 인라인 압축을 활용하여 더 높은 대역폭에서 메모리에 액세스할 수 있다. 데이터(와 압축 가능성)가 언제든지 변경될 수 있으므로 이 기능은 애플리케이션에 사용 가능한 메모리 양을 늘리지 않는다. 메모리 압축기는 여러 압축 알고리즘 중에서 자동으로 선택한다. p=11 엔비디아 호퍼 H100은 L1 캐시, 텍스처 캐시 및 공유 메모리를 결합하여 용량을 256KB로 늘린다. 이전 버전과 마찬가지로 L1 및 텍스처 캐시를 통합 버퍼로 설계된 통합 캐시로 결합한다. `cudaFuncAttributePreferredSharedMemoryCarveout` 속성은 L1 캐시의 카브아웃을 정의하는 데 사용될 수 있다. 호퍼는 전체 통신 대역폭이 더 빨라진 차세대 제품을 통해 NVLink에 향상된 기능을 도입한다. p=12
### 메모리 동기화 도메인
일부 CUDA 응용 프로그램은 메모리 순서로 인해 펜스 또는 플러시 작업을 수행할 때 간섭을 경험할 수 있다. GPU는 어떤 쓰기가 보장되고 어떤 쓰기가 우연한 타이밍에 표시되는지 알 수 없기 때문에 불필요한 메모리 작업을 기다리게 되어 펜스 또는 플러시 작업 속도가 느려질 수 있다. 예를 들어 커널이 GPU 메모리에서 계산을 수행하고 병렬 커널이 피어와 통신을 수행하는 경우 로컬 커널이 쓰기를 플러시하여 NVLink 또는 PCIe 쓰기 속도가 느려진다. 호퍼 아키텍처에서 GPU는 펜스 작업을 통해 넷 캐스트를 줄일 수 있다. p=44
## DPX 명령어
호퍼 아키텍처 수학 API(응용 프로그래밍 인터페이스)는 SM에서 하프 워드당 작업을 수행하는 `__viaddmin_s16x2_relu` 와 같은 함수를 표출한다. max(min(a + b, c), 0) . 스미스-워터만 알고리즘에서는 `__vimax3_s16x2_relu`을 사용할 수 있으며, 3방향 최소값 또는 최대값 다음에 0으로 고정된다.이름3=Matt 마찬가지로 호퍼는 니들만-브니쉬 알고리즘의 구현 속도를 높인다.확인날짜=May 29, 2023
## 트랜스포머 엔진
호퍼 아키텍처는 트랜스포머 엔진을 활용한다.확인날짜=May 29, 2023
## 전력 효율성
SXM5 폼 팩터 H100의 열 설계 전력(TDP)은 700 와트이다. 비동기성과 관련하여 호퍼 아키텍처는 높은 수준의 활용도를 얻을 수 있으므로 더 나은 와트당 성능을 가질 수 있다. p=8
# 그레이스 호퍼
그레이스 호퍼 GH200은 호퍼 기반 H200 GPU와 그레이스 기반 72코어 CPU를 단일 모듈에 결합한 것이다. 모듈의 총 전력 소모량은 최대 1000이다. CPU와 GPU는 NVLink를 통해 연결되어 CPU와 GPU 메모리 간의 메모리 일관성을 제공한다.웹사이트=Anandtech
# 역사
2019년 11월, 한 유명 트위터 계정 https://x.com/kopite7kimi/ 에 따르면 암페어 이후의 다음 아키텍처가 컴퓨터 과학자이자 하버드 마크 I의 최초 프로그래머 중 한 명인 미 해군 준장 그레이스 호퍼 이름을 따서 호퍼라고 불릴 것임을 알리는 트윗을 게시했다. 이 계정에서는 호퍼가 다중 칩 모듈 설계를 기반으로 하여 낭비를 줄이면서 수율을 높일 수 있다고 명시했다.확인날짜=May 29, 2023 2022년 엔비디아 GTC 컨퍼런스에서 공식적으로 호퍼를 발표했다.확인날짜=May 29, 2023 2023년에는 AI 붐이 일면서 H100의 수요가 급증했다. 오라클의 래리 엘리슨은 그 해 엔비디아 CEO 젠슨 황과의 만찬에서 그와 테슬라의 일론 머스크 및 XAI가 H100을 "구걸하고 있었다"고 말했다. "내 생각에는 그것을 묘사하는 가장 좋은 방법인 것 같다. 초밥과 구걸의 한 시간."확인날짜=2024-02-27
# 참고 자료
* ref=harv * ref=harv * 2023a * 2023b * 2023curl=https://nvdam.widen.net/content/tdwwiwotwr/original/gtc22-whitepaper-hopper.pdf
# 추가 문헌
* 확인날짜=May 29, 2023 * 확인날짜=May 29, 2023 * 확인날짜=May 29, 2023 엔비디아 위키데이터 속성 추적 분류:그래픽스 마이크로아키텍처 분류:엔비디아 마이크로아키텍처