HyperAI초신경
Back to Headlines

NVIDIA cuBLAS 12.9, 새로운 확장성과 성능 향상 도입

2달 전

NVIDIA CUDA-X 수학 라이브러리는 개발자가 AI, 과학 계산, 데이터 처리 등 다양한 분야에서 가속화된 애플리케이션을 구축할 수 있도록 지원합니다. 이 중에서도 cuBLAS는 가장 기본적인 선형 대수 작업을 수행하기 위한 최적화된 커널을 제공하는 CUDA-X 라이브러리로, 행렬 곱셈(matmul)과 같은 작업이 대형 언어 모델(LLM)의 학습 및 추론에 필수적입니다. NVIDIA CUDA Toolkit 12.9에서 제공되는 새로운 cuBLAS는 성능을 더욱 최적화하고, 정확성과 에너지 효율성을 균형있게 조절할 수 있는 기능을 추가했습니다. 이 새로운 기능들은 특히 NVIDIA Hopper와 Blackwell 아키텍처에서 중요한 역할을 합니다. 채널 및 블록 스케일링 FP8 행렬 곱셈 Hopper GPU에서는 이전 cuBLAS 버전에서 이미 FP8 텐서 전체 스케일링(단일 스케일링 인자)을 지원했지만, cuBLAS 12.9는 이제 더 다양한 스케일링 방식을 지원하여 유연성을 강화했습니다. 채널 스케일링은 행렬 A[MxK]의 각 행이나 행렬 B[KxN]의 각 열에 단일 스케일링 인자를 적용하며, 블록 스케일링은 K 차원 내 128개 요소를 가진 1D 블록이나 128×128 2D 블록에 스케일링 인자를 적용합니다. 1D 블록은 정확성을 향상시키고, 2D 블록은 성능을 개선합니다. cuBLAS는 A와 B에 대해 각각 다른 스케일링 모드(1D x 1D, 1D x 2D, 2D x 1D)를 지원합니다. Benchmark 결과는 Figure 1에서 확인할 수 있으며, 다양한 크기의 큰 행렬 곱셈에서 FP8 스케일링 방식은 BF16 베이스라인보다 최대 1.75배 빠르며, 대부분의 경우 1.25배 이상의 속도 향상을 보여줍니다. 블록 스케일링 FP4 및 FP8 행렬 곱셈 NVIDIA Blackwell 텐서 코어는 세밀한 1D 블록 스케일링 FP4 및 FP8 부동 소수점 타입을 지원합니다. 이 기법은 각 블록 내 값의 더 정확한 표현을 가능하게 하여 전역 스케일링 인자를 사용할 때보다 전체적인 정확성이 향상됩니다. cuBLAS 12.9는 이러한 새로운 정밀도를 cuBLASLt API를 통해 활용할 수 있습니다. especially, cuBLAS는 출력이 FP4나 FP8일 때 D 텐서의 스케일링 인자를 계산할 수 있어, 텐서 전체 스케일링에서 필요한 데이터 추가 패싱이나 변환 추정 과정을 생략할 수 있습니다. FP4 텐서의 경우, 모든 값에 두 번째 레벨의 스케일링 인자가 적용되며, cuBLAS 문서에서 자세한 설명을 확인할 수 있습니다. cuBLAS 12.9 행렬 곱셈 성능 새로운 데이터 타입, 런타임 휴리스틱, 커널 최적화를 통해 cuBLAS 12.9는 Blackwell GPU의 뛰어난 성능을 활용할 수 있습니다. Figure 3는 cuBLAS의 다양한 정밀도에서 최신 행렬 곱셈 성능을 보여주며, NVIDIA B200, GB200, H200 GPU를 비교합니다. 합성 벤치마크는 대형 계산 제약 행렬 크기(좌측)와 1,000개의 무작위 행렬 크기 및 모양(우측)으로 구성되어 있습니다. 무작위 행렬 데이터셋은 작은 행렬들로 구성되어 있어, 대역폭 비율에 의해 성능이 지배되어 계산 제약 케이스보다 속도 향상이 적습니다. 계산 제약 케이스에서, GB200는 H200 FP8 베이스라인보다 4.6배 빠르며, 최대 6,787 TFLOPS/s의 성능을 달성합니다. Figure 4는 실제 LLM 학습 및 추론 워크로드에서 Blackwell 아키텍처의 성능을 보여줍니다. B200와 GB200는 BF16와 FP8 데이터 타입을 사용할 때 H200 베이스라인보다 최소 1.7배, 최대 2.2배의 성능 향상을 보여주며, 이 성능 향상은 행렬 곱셈과 관련된 반복 횟수만을 기준으로 한 것입니다. 최종적인 엔드 투 엔드 성능은 워크로드의 비행렬 곱셈 부분 성능에도 영향을 받습니다. Blackwell GPU에서 BF16 텐서 코어를 활용한 FP32 행렬 곱셈 가속 cuBLAS 12.9는 Blackwell GPU에서 FP32 행렬 곱셈을 가속화하고 에너지 효율성을 개선하는 기능도 소개합니다. Figure 5는 M=N=K=32,768인 가장 큰 행렬 크기에서 B200 GPU의 FP32 에뮬레이션 성능을 보여줍니다. 이 경우, B200 또는 H200의 네이티브 FP32보다 3~4배 더 많은 TFLOPS를 달성합니다. 과학 계산 응용 프로그램에서의 행렬 곱셈 에뮬레이션은 이미 잘 이해되고 있으며, 여러 알고리즘과 구현 방법이 성능과 에너지 효율성을 향상시키는 데 활용되고 있습니다. 예를 들어, NVIDIA GTC 2025 발표 "Blackwell GPU에서 애플리케이션 가속화를 위한 수학 라이브러리"는 날씨 예보 애플리케이션의 핵심 구성 요소에서 에뮬레이션이 1.4배 성능 향상과 1.3배 에너지 효율성 향상을 제공한 사례를 소개합니다. 현재 cuBLAS 라이브러리의 FP32 에뮬레이션 구현은 BF16 텐서 코어를 활용하며, FP64 행렬 곱셈 에뮬레이션은 개발 중입니다. cuBLAS 12.9 시작하기 cuBLAS 12.9를 다운로드하여 이 블로그에서 논의된 기술을 활용해 애플리케이션을 가속화하고, 새로운 Hopper 스케일링 방식, Blackwell의 블록 스케일링 데이터 타입, 및 Blackwell의 FP32 에뮬레이션에 대한 자세한 정보는 cuBLAS 문서를 참조하세요. 더 자세한 내용은 cuBLASLt 라이브러리 API 예제를 참고하시면 됩니다. 업계 전문가들은 cuBLAS 12.9의 새로운 기능들이 LLM 학습 및 추론, 과학 계산 등 다양한 분야에서 성능 향상과 에너지 효율성을 크게 개선할 것으로 평가하고 있습니다. NVIDIA는 이러한 최적화를 통해 AI와 과학 컴퓨팅의 발전을 지속적으로 지원할 예정이며, cuBLAS 12.9는 이를 실현하는 핵심 도구로 자리매김하고 있습니다. 또한, NVIDIA는 cuBLAS의 사용자 친화적인 문서와 예제를 제공하여 개발자들이 새로운 기능을 쉽게 활용할 수 있도록 돕고 있습니다.

Related Links