들어가며 

DeepSeek에서 이번 주, 하루에 하나씩, 인프라와 관련한 GitHub 저장소를 공개하기로 하였습니다. 오늘 살펴볼 DeepGEMM은 DeepEP와 FlashMLA에 이어 세번째로 공개한 저장소로, 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 같은 기존의 최적화된 라이브러리와 비교해도 높은 성능을 발휘하며, 특히 특정 행렬 크기에서 1.1배 ~ 최대 2.7배의 속도 향상을 보입니다. 또한, DeepGEMM은 CUDA JIT 컴파일 기반으로 동작하기 때문에, CUDA 환경만 갖추어지면 빠르게 실행할 수 있습니다. 반면, CUTLASS는 정적 컴파일 기반으로 성능은 뛰어나지만 사용이 비교적 복잡합니다.
DeepGEMM의 주요 기능
-
FP8 행렬 연산 지원: NVIDIA Hopper GPU의 FP8 Tensor Core 가속기를 활용하여 연산 속도를 극대화하며, CUDA-core 2단계 축적 기법을 통해 FP8의 낮은 정밀도를 보완합니다.
-
Mix-of-Experts(MoE) 모델 지원: MoE 모델에서 필요한 Grouped GEMM 연산을 지원하여 연속형(Contiguous) 및 마스킹(Masked) 모드를 제공하여 다양한 추론 시나리오에 대응 가능합니다.
-
JIT 기반 런타임 컴파일: 설치 시 별도의 컴파일 과정 없이 사용 가능합니다. 또한, 실행 환경에 맞춰 최적화된 커널을 자동으로 컴파일하여 제공합니다.
-
최적화된 메모리 관리: NVIDIA Hopper GPU의 Tensor Memory Accelerator(TMA) 기능을 활용하며, stmatrix 및 setmaxnreg PTX 명령어를 사용하여 레지스터 활용을 최적화합니다.
-
다양한 유틸리티 제공: 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로 공개 및 배포되고 있습니다.
DeepGEMM GitHub 저장소
Tensor Memory Accelerator 문서
더 읽어보기
-
DeepSeek의 OpenInfra 소개 저장소: GitHub - deepseek-ai/open-infra-index: Production-tested AI infrastructure tools for efficient AGI development and community-driven innovation
-
Day 1. FlashMLA: FlashMLA: Hopper GPU를 위한 고성능 MLA 디코딩 커널 (feat. DeepSeek)
-
Day 2. DeepEP: DeepEP: 효율적인 Mixture-of-Experts 병렬 통신 라이브러리 (feat. DeepSeek)
-
Day 3. DeepGEMM: DeepGEMM: NVIDIA Hopper GPU에서 효율적인 FP8 연산을 위한 GEMM 커널 라이브러리 (feat. DeepSeek)
-
Day 4-1. EPLB: EPLB: MoE 모델에서 GPU들 간의 부하를 분배(Load Balancing)하는 라이브러리 (feat. DeepSeek)
-
Day 4-2. DualPipe: DualPipe: 양방향 파이프라인 병렬화 알고리즘 (feat. DeepSeek)
-
Day 4-3. 프로파일링 데이터: DeepSeek-V3/R1 모델 학습 및 추론 시 수집한 프로파일링 데이터 공개 (feat. DeepSeek)
-
Day 5. 3FS(Fire-Flyer File System): https://discuss.pytorch.kr/t/3fs-fire-flyer-file-system-feat-deepseek/6245
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~