# DeepGEMM: NVIDIA Hopper GPU에서 효율적인 FP8 연산을 위한 GEMM 커널 라이브러리 (feat. DeepSeek)

**URL:** <https://discuss.pytorch.kr/t/deepgemm-nvidia-hopper-gpu-fp8-gemm-feat-deepseek/6219>\
**Category:** 읽을거리&정보공유\
**Tags:** tensor-memory-accelerator, deepseek, fp8, deepgemm, nvidia-hopper, gemm-kernel, grouped-gemm, cutlass\
**Created:** [2월 26, 2025, 9:30오전 UTC](https://discuss.pytorch.kr/t/deepgemm-nvidia-hopper-gpu-fp8-gemm-feat-deepseek/6219 "2025-02-26T09:30:47Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![9bow](https://discuss.pytorch.kr/user_avatar/discuss.pytorch.kr/9bow/32/16301_2.png) [@9bow](https://discuss.pytorch.kr/u/9bow)\
**Post date:** [2월 26, 2025, 9:30오전 UTC](https://discuss.pytorch.kr/t/deepgemm-nvidia-hopper-gpu-fp8-gemm-feat-deepseek/6219/1 "2025-02-26T09:30:47Z")

</div>

![DeepGEMM: NVIDIA Hopper GPU에서 효율적인 FP8 연산을 위한 GEMM 커널 라이브러리 (feat. DeepSeek)](https://discuss.pytorch.kr/uploads/default/original/2X/7/717aa468cad1cb25a349e424687304869c397242.png)

## 들어가며 :pytorch::kr:

DeepSeek에서 [이번 주, 하루에 하나씩, 인프라와 관련한 GitHub 저장소를 공개](https://github.com/deepseek-ai/open-infra-index)하기로 하였습니다. 오늘 살펴볼 [DeepGEMM](https://github.com/deepseek-ai/DeepGEMM)은 [DeepEP](https://github.com/deepseek-ai/DeepEP)와 [FlashMLA](https://discuss.pytorch.kr/t/flashmla-hopper-gpu-mla-feat-deepseek/6199)에 이어 세번째로 공개한 저장소로, NVIDIA Hopper GPU에서 FP8 연산을 위한 GEMM 커널 관련 코드를 담고 있습니다. 함께 살펴보시죠 😃

## DeepGEMM 소개

DeepSeek-AI가 공개한 DeepGEMM 은 NVIDIA Hopper GPU에서 실행되는 FP8(8비트 부동소수점) 연산을 위한 GEMM(General Matrix Multiplication) 커널 입니다. 특히 MoE(Mix-of-Experts) 모델을 포함한 다양한 신경망 연산에 최적화되어 있으며, CUDA 기반으로 JIT(Just-In-Time) 컴파일 방식 을 채택하여 설치 과정에서 추가적인 컴파일이 필요 없습니다.

DeepGEMM의 주요 특징은 다음과 같습니다:

- NVIDIA Hopper 아키텍처 전용으로 설계됨 (Tensor Memory Accelerator 활용)

- Mix-of-Experts(MoE) 모델을 위한 그룹화된 GEMM 연산 지원

- JIT 기반으로 런타임에서 컴파일, 설치 시 별도의 컴파일 과정이 필요 없음

- CUDA-core 2단계 축적(promotion) 기법 사용 으로 FP8의 낮은 정밀도를 보완

- CUTLASS 및 CuTe에서 일부 개념을 차용하였으나, 템플릿 의존도를 줄여 코드가 간결

- 약 300줄의 핵심 커널 코드로 구성되어 있어 학습용으로도 적합

DeepGEMM은 [CUTLASS](https://github.com/nvidia/cutlass) 같은 기존의 최적화된 라이브러리와 비교해도 높은 성능을 발휘하며, 특히 특정 행렬 크기에서 1.1배 ~ 최대 2.7배의 속도 향상을 보입니다. 또한, DeepGEMM은 CUDA JIT 컴파일 기반으로 동작하기 때문에, CUDA 환경만 갖추어지면 빠르게 실행할 수 있습니다. 반면, CUTLASS는 정적 컴파일 기반으로 성능은 뛰어나지만 사용이 비교적 복잡합니다.

## DeepGEMM의 주요 기능

1. **FP8 행렬 연산 지원** : NVIDIA Hopper GPU의 FP8 Tensor Core 가속기를 활용하여 연산 속도를 극대화하며, CUDA-core 2단계 축적 기법을 통해 FP8의 낮은 정밀도를 보완합니다.

2. **Mix-of-Experts(MoE) 모델 지원**: MoE 모델에서 필요한 Grouped GEMM 연산을 지원하여 연속형(Contiguous) 및 마스킹(Masked) 모드를 제공하여 다양한 추론 시나리오에 대응 가능합니다.

3. **JIT 기반 런타임 컴파일** : 설치 시 별도의 컴파일 과정 없이 사용 가능합니다. 또한, 실행 환경에 맞춰 최적화된 커널을 자동으로 컴파일하여 제공합니다.

4. **최적화된 메모리 관리** : NVIDIA Hopper GPU의 Tensor Memory Accelerator(TMA) 기능을 활용하며, stmatrix 및 setmaxnreg PTX 명령어를 사용하여 레지스터 활용을 최적화합니다.

5. **다양한 유틸리티 제공** : JIT 컴파일 설정 (DG\_CACHE\_DIR, DG\_NVCC\_COMPILER 등) 및 GPU 사용량 조정 (set\_num\_sms, get\_num\_sms), GEMM 최적화 옵션 (DG\_DISABLE\_FFMA\_INTERLEAVE, DG\_JIT\_DEBUG 등) 등을 제공합니다.

## 라이선스

DeepGEMM 프로젝트는 [MIT License](https://github.com/deepseek-ai/DeepGEMM/blob/main/LICENSE)로 공개 및 배포되고 있습니다.

## :github: DeepGEMM GitHub 저장소

[https://github.com/deepseek-ai/DeepGEMM](https://github.com/deepseek-ai/DeepGEMM)

## 📚 Tensor Memory Accelerator 문서

> **[cuda::memcpy\_async - 1. NVIDIA Hopper Tuning Guide — Hopper Tuning Guide 13.1...](https://docs.nvidia.com/cuda/hopper-tuning-guide/index.html#tensor-memory-accelerator)**
>
> The NVIDIA Hopper Streaming Multiprocessor (SM) provides the following improvements over Turing and NVIDIA Ampere GPU architectures. | The programming guide for tuning CUDA Applications for GPUs based on the Hopper GPU Architecture.

## 더 읽어보기

- DeepSeek의 OpenInfra 소개 저장소: [GitHub - deepseek-ai/open-infra-index: Production-tested AI infrastructure tools for efficient AGI development and community-driven innovation](https://github.com/deepseek-ai/open-infra-index)

- Day 1. FlashMLA: [FlashMLA: Hopper GPU를 위한 고성능 MLA 디코딩 커널 (feat. DeepSeek)](https://discuss.pytorch.kr/t/flashmla-hopper-gpu-mla-feat-deepseek/6199)

- Day 2. DeepEP: [DeepEP: 효율적인 Mixture-of-Experts 병렬 통신 라이브러리 (feat. DeepSeek)](https://discuss.pytorch.kr/t/deepep-mixture-of-experts/6212)

- Day 3. DeepGEMM: [DeepGEMM: NVIDIA Hopper GPU에서 효율적인 FP8 연산을 위한 GEMM 커널 라이브러리 (feat. DeepSeek)](https://discuss.pytorch.kr/t/deepgemm-nvidia-hopper-gpu-fp8-gemm-feat-deepseek/6219)

- Day 4-1. EPLB: [EPLB: MoE 모델에서 GPU들 간의 부하를 분배(Load Balancing)하는 라이브러리 (feat. DeepSeek)](https://discuss.pytorch.kr/t/eplb-moe-gpu-load-balancing-feat-deepseek/6235)

- Day 4-2. DualPipe: [DualPipe: 양방향 파이프라인 병렬화 알고리즘 (feat. DeepSeek)](https://discuss.pytorch.kr/t/dualpipe-feat-deepseek/6236)

- Day 4-3. 프로파일링 데이터: [DeepSeek-V3/R1 모델 학습 및 추론 시 수집한 프로파일링 데이터 공개 (feat. DeepSeek)](https://discuss.pytorch.kr/t/deepseek-v3-r1-feat-deepseek/6237)

- Day 5. 3FS(Fire-Flyer File System): [3FS(Fire-Flyer File System), 고성능 분산 파일 시스템 (feat. DeepSeek)](https://discuss.pytorch.kr/t/3fs-fire-flyer-file-system-feat-deepseek/6245)

* * *

_이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다._ 🤗

[:pytorch:파이토치 한국 사용자 모임🇰🇷](https://pytorch.kr/)이 정리한 이 글이 유용하셨나요? [회원으로 가입](https://discuss.pytorch.kr/signup)하시면 주요 글들을 이메일💌로 보내드립니다! (기본은 Weekly지만 [Daily로 변경도 가능](https://discuss.pytorch.kr/my/preferences/emails)합니다.)

🎁 아래↘쪽에 좋아요👍를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ 🤩
