Simulation / Modeling / Design

기본 HPC 소프트웨어로 NVIDIA Grace 및 NVIDIA Hopper 아키텍처의 강력한 성능 활용하기

Reading Time: 5 minutes

고성능 컴퓨팅(HPC)은 시뮬레이션 및 모델링, 의료 및 생명 과학, 산업 및 엔지니어링 등의 애플리케이션을 구동합니다. 최신 데이터 센터에서 HPC는 AI와 시너지를 발휘하여 데이터를 혁신적이고 새로운 방식으로 활용합니다.

차세대 HPC 애플리케이션의 성능 및 처리량 요구사항에는 다양한 워크로드를 처리할 수 있고 CPU와 GPU 간의 긴밀한 결합을 갖춘 가속 컴퓨팅 플랫폼이 필요합니다. NVIDIA Grace CPUNVIDIA Hopper GPU는 HPC 개발을 위한 업계 최고의 하드웨어 에코시스템입니다.

NVIDIA는 개발자가 NVIDIA Grace 및 NVIDIA Grace Hopper 아키텍처를 활용할 수 있도록 툴, 라이브러리 및 컴파일러를 제공합니다. 이러한 도구는 혁신을 지원하고 애플리케이션이 가속 컴퓨팅을 최대한 활용할 수 있도록 도와줍니다. 이 기본 소프트웨어 스택은 GPU 가속화를 위한 수단을 제공하고, NVIDIA Grace 기반 시스템에서 애플리케이션을 포팅 및 최적화합니다. NVIDIA Grace 컴파일러, 도구, 라이브러리 등에 대한 자세한 내용은 Grace 개발자 제품 페이지에서 확인할 수 있습니다.

NVIDIA HPC SDK 23.11

NVIDIA Grace Hopper 시스템의 새로운 하드웨어 개발은 개발자가 GPU 프로그래밍에 접근하는 방식에 극적인 변화를 가져왔습니다. 특히 CPU와 GPU 메모리 간의 양방향, 고대역폭 및 캐시 일관성 연결은 사용자가 하나의 통합된 주소 공간을 사용하면서 두 프로세서용 애플리케이션을 개발할 수 있다는 것을 의미합니다.

각 프로세서는 각 프로세서에 가장 적합한 워크로드에 맞는 대역폭, 지연 시간 및 용량 특성으로 설계된 자체 물리적 메모리를 보유합니다. 기존 개별 메모리 GPU 시스템용으로 작성된 코드는 새로운 그레이스 호퍼 아키텍처에 맞게 수정하지 않고도 계속 고성능으로 실행됩니다.

모든 애플리케이션 스레드(GPU 또는 CPU)는 애플리케이션의 시스템 할당 메모리에 직접 액세스할 수 있으므로 프로세서 간에 데이터를 복사할 필요가 없습니다. 전체 애플리케이션 메모리 주소 공간에 직접 읽거나 쓸 수 있는 이 새로운 기능은 NVIDIA CUDA를 기반으로 구축된 모든 프로그래밍 모델의 프로그래머 생산성을 크게 향상시킵니다: CUDA C++, CUDA Fortran, ISO C++의 표준 병렬 처리, ISO Fortran, OpenACC, OpenMP 및 기타 여러 가지.

NVIDIA HPC SDK 23.11은 새로운 통합 메모리 프로그래밍 지원을 도입하여 호스트에서 장치로 또는 장치에서 호스트로의 전송으로 병목 현상이 발생하는 워크로드의 속도를 Grace Hopper 시스템의 칩 투 칩(C2C) 인터커넥트를 통해 최대 7배까지 향상시킬 수 있게 해줍니다. 또한 데이터 위치 및 이동에 대한 고려 사항이 시스템에서 자동으로 처리되므로 애플리케이션 개발을 획기적으로 간소화할 수 있습니다.

NVIDIA HPC 컴파일러가 이러한 새로운 하드웨어 기능을 사용하여 ISO C++, ISO Fortran, OpenACC 및 CUDA Fortran으로 GPU 프로그래밍을 간소화하는 방법에 대해 자세히 알아보려면 NVIDIA Grace Hopper 슈퍼칩을 사용한 HPC용 GPU 프로그래밍 간소화를 읽어보십시오.

지금 무료로 NVIDIA HPC SDK를 시작하고 버전 23.11을 다운로드하세요.

NVIDIA 성능 라이브러리

NVIDIA는 풀 스택 엔터프라이즈 플랫폼 제공업체로 성장하여 이제 CPU뿐만 아니라 GPU 및 DPU도 제공합니다. 이제 NVIDIA의 수학 소프트웨어 제품은 기존 GPU 중심 솔루션에 더해 CPU 전용 워크로드도 지원합니다.

NVIDIA 성능 라이브러리(NVPL)는 Arm 64비트 아키텍처에 최적화된 필수 수학 라이브러리 모음입니다. 많은 HPC 애플리케이션은 성능에 결정적인 역할을 하는 BLAS 및 LAPACK과 같은 수학적 API에 의존합니다. NVPL 수학 라이브러리는 이러한 표준화된 수학 API를 드롭인 방식으로 대체합니다.

이 라이브러리는 NVIDIA Grace CPU에 최적화되어 있습니다. Grace 기반 플랫폼으로 포팅되거나 구축되는 애플리케이션은 고성능, 고효율 아키텍처를 완벽하게 사용할 수 있습니다. NVPL의 주요 목표는 개발자와 시스템 관리자가 CPU 기반의 표준화된 수학 라이브러리를 사용할 때 최대 성능을 달성하기 위해 소스 코드를 변경할 필요 없이 기존 HPC 애플리케이션을 Grace 플랫폼으로 가장 원활하게 포팅 및 배포할 수 있는 환경을 제공하는 것입니다.

현재 사용 가능한 NVPL 베타 릴리스에는 NVIDIA Grace CPU에서 애플리케이션을 가속화하기 위한 BLAS, LAPACK, FFT, RAND 및 SPARSE가 포함되어 있습니다.

자세히 알아보고 NVPL 베타를 다운로드하세요.

NVIDIA CUDA 다이렉트 스파스 솔버

새로운 표준 연산 라이브러리가 NVIDIA GPU 가속 라이브러리 제품군에 도입됩니다. NVIDIA CUDA Direct Sparse Solvers 라이브러리인 NVIDIA cuDSS는 매우 희박한 행렬을 가진 선형 시스템을 푸는 데 최적화되어 있습니다. cuDSS의 첫 번째 버전은 단일 GPU에서 실행을 지원하지만, 향후 릴리스에서 멀티 GPU 및 멀티 노드 지원이 추가될 예정입니다.

Honeywell은 cuDSS의 얼리 어답터 중 하나로, UniSim Design 프로세스 시뮬레이션 제품에서 성능 벤치마킹의 마지막 단계에 있습니다.

cuDSS 프리뷰는 곧 제공될 예정입니다. CUDA 수학 라이브러리에 대한 자세한 내용은 여기를 참조하세요: CUDA-X GPU 가속 라이브러리.

NVIDIA cuTENSOR 2.0

NVIDIA cuTENSOR 2.0은 HPC와 AI의 교차점에서 애플리케이션을 가속화하기 위한 성능과 유연성을 갖춘 라이브러리입니다. 이번 주요 업데이트에서는 cuTENSOR 2.0은 임의의 고차원 텐서를 포함하여 새로운 기능과 성능 향상을 추가했습니다. 새로운 최적화를 모든 텐서 연산에 균일하게 적용하고 고성능을 제공하기 위해 유연성과 확장성에 중점을 두고 cuTENSOR 2.0 API를 완전히 개정했습니다.

그림 1. 이제 다양한 텐서 연산에 걸쳐 공유되는 cuTENSOR API

계획 기반 다단계 API는 공유 API 세트를 통해 모든 연산으로 확장됩니다. 새로운 API는 불투명 힙 할당 데이터 구조를 입력으로 받아 해당 실행을 위해 정의된 연산별 문제 설명자를 전달할 수 있습니다.

또한 cuTENSOR 2.0은 적시 실행(JIT) 커널에 대한 지원을 추가합니다.

그림 2. 두 가지 벤치마크에서 다양한 입력 텐서 유형에 대해 JIT를 사용했을 때의 평균 증분 성능 향상: QC-like 및 Rand1000. 고차원 텐서를 사용하는 QC와 유사한 테스트 사례에서 JIT로 인한 성능 향상이 두드러집니다.

JIT 커널을 사용하면 런타임에 대상 구성에 적합한 구성 및 최적화 노브를 조정하여 라이브러리가 제공하는 일반적인 사전 컴파일된 커널로는 달성할 수 없는 무수히 많은 고차원 텐서를 지원함으로써 탁월한 성능을 실현할 수 있습니다.

그림 3. JIT 및 기타 기능으로 튜닝했을 때 이전 1.7.0 버전에 비해 향상된 cuTENSOR 2.0.0 성능

cuTENSOR 2.0은 곧 출시될 예정입니다.

NVIDIA Nsight 시스템 2023.4를 통한 Grace CPU 성능 튜닝

Grace 기반 플랫폼의 애플리케이션은 CPU 코어에서 명령어 실행을 튜닝하고 시스템의 다른 하드웨어 유닛과 CPU의 상호 작용을 최적화함으로써 이점을 얻을 수 있습니다. 애플리케이션을 Grace로 포팅할 때 하드웨어 수준의 기능에 대한 인사이트는 새 플랫폼에 맞게 소프트웨어를 구성하는 데 도움이 됩니다.

NVIDIA Nsight 시스템은 하드웨어 및 API 메트릭을 수집하여 통합된 타임라인에서 상호 연관시키는 시스템 전반의 성능 분석 툴입니다. Grace CPU 성능 튜닝을 위해 Nsight Systems는 인스트럭션 포인터와 백트레이스를 샘플링하여 CPU 코드가 가장 바쁜 위치와 CPU가 시스템 전반에서 리소스를 어떻게 사용하는지 시각화합니다. 또한 Nsight Systems는 컨텍스트 전환을 캡처하여 모든 Grace CPU 코어에 대한 사용률 그래프를 구축합니다.

CPU 주기 및 폐기된 명령어와 같은 Grace CPU 코어 이벤트 비율은 Grace 코어가 작업을 처리하는 방식을 보여줍니다. 또한 백트레이스 샘플에 대한 요약 보기는 핫스팟을 유발하는 명령 포인터를 빠르게 식별하는 데 도움이 됩니다.

이제 Nsight Systems 2023.4에서 사용할 수 있는 Grace CPU 언코어 이벤트율은 NVLink-C2C 및 PCIe 활동과 같은 코어 외부의 활동을 모니터링합니다. 언코어 메트릭은 소켓 간의 활동이 코어의 작업을 어떻게 지원하는지 보여 주므로 나머지 시스템과 Grace CPU의 통합을 개선할 수 있는 방법을 찾는 데 도움이 됩니다.

Nsight Systems 2023.4의 Grace CPU 언코어 및 코어 이벤트 샘플링은 Grace에서 실행되는 코드에 가장 적합한 최적화를 찾는 데 도움이 됩니다. Grace CPU 성능 튜닝에 대한 자세한 내용과 CUDA 코드를 함께 최적화하는 팁은 다음 비디오를 참조하세요.

비디오 1. NVIDIA Nsight 도구를 사용한 NVIDIA Grace CPU 성능 튜닝

자세히 알아보고 Nsight Systems 2023.4를 시작하세요. Nsight 시스템은 HPC SDKCUDA 툴킷에서도 사용할 수 있습니다.

HPC를 위한 가속 컴퓨팅

NVIDIA는 NVIDIA Grace 및 Hopper 아키텍처에서 가속 컴퓨팅을 위한 도구, 라이브러리 및 컴파일러 에코시스템을 제공합니다. HPC 소프트웨어 스택은 NVIDIA 데이터센터 실리콘에 대한 연구 및 과학의 기반이 됩니다.

개발자 포럼에서 가속 컴퓨팅 주제에 대해 자세히 알아보세요.

관련 리소스

Discuss (0)

Tags