호퍼 (마이크로아키텍처)
호퍼(Hopper)는 엔비디아가 개발한 그래픽 처리 장치 (GPU) 마이크로아키텍처이다. 데이터 센터용으로 설계되었으며, 에이다 러브에이스 아키텍처와 동급이다. 엔비디아 테슬라의 최신 세대이다.
컴퓨터 과학자이자 미 해군 준장을 역임한 그레이스 호퍼의 이름을 딴 호퍼 아키텍처는 2019년 11월에 유출되었으며 2022년 3월에 공식적으로 공개되었다. 특징으로 하는 이전 버전인 튜링 및 암페어 마이크로아키텍처와 비교하면 새로운 스트리밍 멀티프로세서 와 더 빠른 메모리 하위 시스템을를 사용하여 개선되었다.
아키텍처
[편집]엔비디아 호퍼 H100 GPU는 800억 개의 트랜지스터를 사용하여 TSMC 4N 공정으로 구현된다. 이는 최대 144개의 스트리밍 멀티프로세서로 구성된다. [1] SXM5 소켓 환경에서 엔비디아 호퍼 H100은 PCIe 보다 더 나은 성능을 보여주었다. [2]
스트리밍 멀티프로세서 (SM)
[편집]호피의 스트리밍 멀티프로세서는 튜링 및 암페어 마이크로아키텍처보다 개선되었지만 스트리밍 멀티프로세서(SM)당 최대 동시 워프 수는 64개로 유지되었다. [3] 호퍼 아키텍처는 공유 메모리와 전역 메모리 간의 양방향 비동기 메모리 전송을 지원하는 텐서메모리 가속기(TMA)를 제공한다. [4] TMA에서 애플리케이션은 최대 5D 텐서를 전송할 수 있다. 공유 메모리에서 전역 메모리로 쓸 때, 요소별 축소 및 비트별 연산자를 사용하여 레지스터 및 SM 명령어를 피하면서 사용자가 워프 특화 코드를 작성할 수 있도록 할 수 있다. TMA는 cuda::memcpy_async
를 통해 표출된다. [5]
애플리케이션을 병렬화할 때 개발자는 스레드 블록 클러스터를 사용할 수 있다. 스레드 블록은 클러스터 내 다른 스레드 블록의 공유 메모리( 분산 공유 메모리 라고도 부름)에서 원자적 연산들을 수행할 수 있다. 분산 공유 메모리는 L2 캐시와 동시에 SM에 의해 사용될 수 있다. SM 간 데이터 통신에 사용될 때 이는 분산 공유 메모리와 L2의 결합된 대역폭을 활용할 수 있다. 최대 포터블 클러스터 크기는 8이지만 엔비디아 호퍼 H100은 cudaFuncAttributeNonPortableClusterSizeAllowed
기능을 사용하여 클러스터 크기 16을 지원할 수 있지만 잠재적으로 액티브 블록 수가 줄어들 수 있다.[6] L2 멀티캐스팅 및 분산 공유 메모리를 사용하면 동적 랜덤 액세스 메모리 읽기 및 쓰기에 필요한 대역폭이 줄어든다.[7]
호퍼는 이전 제품보다 SM·사이클 단위마다 2배 많은 FP32 작업을 통해 향상된 단정밀도 부동 소수점 형식 (FP32) 처리량을 제공한다. 또한 호퍼 아키텍처는 스마스-워터만 알고리즘을 포함한 새로운 명령어를 추가로 지원한다. [6] 암페어 아키텍처와 마찬가지로 TensorFloat-32(TF-32)연산이 지원된다. 두 아키텍처의 매핑 패턴은 동일하다. [8]
메모리
[편집]엔비디아 호퍼 H100은 최대 80GB의 HBM3 및 HBM2e 메모리를 지원한다. HBM3 메모리 시스템은 엔비디아 암페어 A100의 2TB/s에 비해 50% 증가한 3TB/s를 지원한다. 아키텍처 전반에 걸쳐 L2 캐시 용량과 대역폭이 증가했다. [9]
호퍼를 사용하면 CUDA 컴퓨팅 커널이 개별 메모리 할당을 포함하여 자동 인라인 압축을 활용하여 더 높은 대역폭에서 메모리에 액세스할 수 있다. 데이터(와 압축 가능성)가 언제든지 변경될 수 있으므로 이 기능은 애플리케이션에 사용 가능한 메모리 양을 늘리지 않는다. 메모리 압축기는 여러 압축 알고리즘 중에서 자동으로 선택한다. [9]
엔비디아 호퍼 H100은 L1 캐시, 텍스처 캐시 및 공유 메모리를 결합하여 용량을 256KB로 늘린다. 이전 버전과 마찬가지로 L1 및 텍스처 캐시를 통합 버퍼로 설계된 통합 캐시로 결합한다. cudaFuncAttributePreferredSharedMemoryCarveout
속성은 L1 캐시의 카브아웃을 정의하는 데 사용될 수 있다. 호퍼는 전체 통신 대역폭이 더 빨라진 차세대 제품을 통해 NVLink에 향상된 기능을 도입한다. [10]
메모리 동기화 도메인
[편집]일부 CUDA 응용 프로그램은 메모리 순서로 인해 펜스 또는 플러시 작업을 수행할 때 간섭을 경험할 수 있다. GPU는 어떤 쓰기가 보장되고 어떤 쓰기가 우연한 타이밍에 표시되는지 알 수 없기 때문에 불필요한 메모리 작업을 기다리게 되어 펜스 또는 플러시 작업 속도가 느려질 수 있다. 예를 들어 커널이 GPU 메모리에서 계산을 수행하고 병렬 커널이 피어와 통신을 수행하는 경우 로컬 커널이 쓰기를 플러시하여 NVLink 또는 PCIe 쓰기 속도가 느려진다. 호퍼 아키텍처에서 GPU는 펜스 작업을 통해 넷 캐스트를 줄일 수 있다. [11]
DPX 명령어
[편집]호퍼 아키텍처 수학 API(응용 프로그래밍 인터페이스)는 SM에서 하프 워드당 작업을 수행하는 __viaddmin_s16x2_relu
와 같은 함수를 표출한다. . 스미스-워터만 알고리즘에서는 __vimax3_s16x2_relu
을 사용할 수 있으며, 3방향 최소값 또는 최대값 다음에 0으로 고정된다.[12] 마찬가지로 호퍼는 니들만-브니쉬 알고리즘의 구현 속도를 높인다.[13]
트랜스포머 엔진
[편집]호퍼 아키텍처는 트랜스포머 엔진을 활용한다.[14]
전력 효율성
[편집]SXM5 폼 팩터 H100의 열 설계 전력(TDP)은 700 와트이다. 비동기성과 관련하여 호퍼 아키텍처는 높은 수준의 활용도를 얻을 수 있으므로 더 나은 와트당 성능을 가질 수 있다. [15]
그레이스 호퍼
[편집]그레이스 호퍼 GH200은 호퍼 기반 H200 GPU와 그레이스 기반 72코어 CPU를 단일 모듈에 결합한 것이다. 모듈의 총 전력 소모량은 최대 1000이다. CPU와 GPU는 NVLink를 통해 연결되어 CPU와 GPU 메모리 간의 메모리 일관성을 제공한다.[16]
역사
[편집]2019년 11월, 한 유명 트위터 계정 https://x.com/kopite7kimi/ 에 따르면 암페어 이후의 다음 아키텍처가 컴퓨터 과학자이자 하버드 마크 I 의 최초 프로그래머 중 한 명인 미 해군 준장 그레이스 호퍼 이름을 따서 호퍼라고 불릴 것임을 알리는 트윗을 게시했다. 이 계정에서는 호퍼가 다중 칩 모듈 설계를 기반으로 하여 낭비를 줄이면서 수율을 높일 수 있다고 명시했다.[17]
2022년 엔비디아 GTC 컨퍼런스에서 공식적으로 호퍼를 발표했다.[18] 2023년에는 AI 붐이 일면서 H100의 수요가 급증했다. 오라클의 래리 엘리슨은 그 해 엔비디아 CEO 젠슨 황과의 만찬에서 그와 테슬라의 일론 머스크 및 XAI가 H100을 "구걸하고 있었다"고 말했다. "내 생각에는 그것을 묘사하는 가장 좋은 방법인 것 같다. 초밥과 구걸의 한 시간."[19]
각주
[편집]- ↑ Elster & Haugdahl 2022, 4쪽.
- ↑ Nvidia 2023c, 20쪽.
- ↑ Nvidia 2023b, 9쪽.
- ↑ Fujita 등. 2023, 6쪽.
- ↑ Nvidia 2023b, 9-10쪽.
- ↑ 가 나 Nvidia 2023b, 10쪽.
- ↑ Vishal Mehta (September 2022). 《CUDA Programming Model for Hopper Architecture》 (영어). Santa Clara: Nvidia. 2023년 5월 29일에 확인함.
- ↑ Fujita 등. 2023, 4쪽.
- ↑ 가 나 Nvidia 2023b, 11쪽.
- ↑ Nvidia 2023b, 12쪽.
- ↑ Nvidia 2023a, 44쪽.
- ↑ Tirumala, Ajay; Eaton, Joe; Tyrlik, Matt (2022년 12월 8일). “Boosting Dynamic Programming Performance Using NVIDIA Hopper GPU DPX Instructions”. Nvidia. 2023년 5월 29일에 확인함.
- ↑ Harris, Dion (2022년 3월 22일). “NVIDIA Hopper GPU Architecture Accelerates Dynamic Programming Up to 40x Using New DPX Instructions”. Nvidia. 2023년 5월 29일에 확인함.
- ↑ Salvator, Dave (2022년 3월 22일). “H100 Transformer Engine Supercharges AI Training, Delivering Up to 6x Higher Performance Without Losing Accuracy”. Nvidia. 2023년 5월 29일에 확인함.
- ↑ Elster & Haugdahl 2022, 8쪽.
- ↑ “NVIDIA: Grace Hopper Has Entered Full Production & Announcing DGX GH200 AI Supercomputer”. 《Anandtech》. 2023년 5월 29일.
- ↑ Pirzada, Usman (2019년 11월 16일). “NVIDIA Next Generation Hopper GPU Leaked – Based On MCM Design, Launching After Ampere”. 《Wccftech》. 2023년 5월 29일에 확인함.
- ↑ Vincent, James (2022년 3월 22일). “Nvidia reveals H100 GPU for AI and teases 'world's fastest AI supercomputer'”. 《The Verge》. 2023년 5월 29일에 확인함.
- ↑ Fitch, Asa (2024년 2월 26일). “Nvidia’s Stunning Ascent Has Also Made It a Giant Target”. 《The Wall Street Journal》 (미국 영어). 2024년 2월 27일에 확인함.
참고 자료
[편집]- Elster, Anne; Haugdahl, Tor (March 2022). “Nvidia Hopper GPU and Grace CPU Highlights”. 《Computing in Science & Engineering》 24 (2): 95–100. Bibcode:2022CSE....24b..95E. doi:10.1109/MCSE.2022.3163817. 2023년 5월 29일에 확인함.
- Fujita, Kohei; Yamaguchi, Takuma; Kikuchi, Yuma; Ichimura, Tsuyoshi; Hori, Muneo; Maddegedara, Lalith (April 2023). “Calculation of cross-correlation function accelerated by TensorFloat-32 Tensor Core operations on NVIDIA's Ampere and Hopper GPUs”. 《Journal of Computational Science》 68. doi:10.1016/j.jocs.2023.101986.
- 《CUDA C++ Programming Guide》 (PDF). Nvidia. 2023년 4월 17일.
- 《Hopper Tuning Guide》 (PDF). Nvidia. 2023년 4월 13일.
- 《NVIDIA H100 Tensor Core GPU Architecture》 (PDF). Nvidia. 2022.[깨진 링크(과거 내용 찾기)]
추가 문헌
[편집]- Choquette, Jack (May 2023). “NVIDIA Hopper H100 GPU: Scaling Performance”. 《IEEE Micro》 43 (3): 9–17. doi:10.1109/MM.2023.3256796. 2023년 5월 29일에 확인함.
- Moore, Samuel (2022년 4월 8일). “Nvidia's Next GPU Shows That Transformers Are Transforming AI”. 《IEEE Spectrum》. 2023년 5월 29일에 확인함.
- Morgan, Timothy (2022년 3월 31일). “Deep Dive Into Nvidia's "Hopper" GPU Architecture”. 《The Next Platform》. 2023년 5월 29일에 확인함.