OpenSource-Hub
D

DeepGEMM

SHA-256
9.0k stars·AI 생산성·SHA-256 체크섬 확인됨

DeepSeek이 오픈소스로 공개한 고성능 GPU 행렬 연산 오퍼레이터 라이브러리로, 대규모 모델의 FP8/FP4 행렬 곱셈과 MoE 가속화를 위해 탄생했으며, 컴파일 없이 설치할 수 있고 CUTLASS에 필적하는 성능을 자랑합니다.

대규모 모델 행렬 연산을 NVIDIA의 최신 그래픽 카드에서 극한 속도로 실행할 수 있게 해주는 개발 라이브러리.

주요 기능

  • FP8, FP4, BF16 행렬 곱셈 지원, H800에서 최대 1550 TFLOPS 달성
  • Mega MoE 융합 커널: 전문가 분배, 두 개의 선형 레이어, SwiGLU 활성화 및 결과 병합을 하나의 커널로 통합, 통신과 연산 오버랩
  • DeepJIT 런타임 컴파일, 설치 시 CUDA 컴파일이 전혀 필요 없이 바로 사용 가능
  • 코드를 의도적으로 간결하게 유지하고 핵심 커널 수가 적어 GPU 커널 최적화를 학습하기 위한 훌륭한 교재
  • 연속/마스크 두 가지 그룹 GEMM 및 MQA 스코어링 커널 제공, MoE 학습과 추론 디코딩 전 과정 커버

할 수 없는 것

  • •NVIDIA SM90(H100/H800) 및 SM100(B200) 아키텍처만 지원하며, RTX 시리즈 소비자용 그래픽 카드와 A100 등 구형 카드에서는 실행할 수 없습니다; 개발자를 위한 저수준 연산자 라이브러리로 그래픽 인터페이스가 없고, 설치만 하면 바로 사용할 수 있는 애플리케이션이 아닙니다; 입력 전치와 FP8 양자화 변환은 사용자가 자체 전처리 연산자에서 완료해야 하며, 라이브러리 자체가 대신 처리해주지 않습니다; Linux 환경, CUDA 12.9+ 및 C++20 <format>을 지원하는 컴파일러에 의존하므로 환경 구성 진입 장벽이 낮지 않습니다; Mega MoE는 멀티 프로세스 실행과 대칭 메모리도 필요로 하므로 디버깅 복잡도가 높습니다.

사용 사례

  • DeepSeek V3와 같은 대규모 언어 모델을 학습하거나 배포할 때 FP8/FP4 저정밀도 행렬 연산 가속화
  • MoE 모델 추론 서비스에서 Mega MoE를 사용해 전문가 병렬 연산과 NVLink 통신을 오버랩하여 지연 시간 감소
  • 참고 코드로서 NVIDIA Tensor Core 커널 최적화 및 TMA 프로그래밍 기법 학습

상세 설명

DeepGEMM은 DeepSeek이 오픈소스로 공개한 통합 고성능 GPU 텐서 코어 연산자 라이브러리로, 현대 대규모 모델의 핵심 연산 프리미티브를 하나의 깔끔한 CUDA 코드베이스에 통합했습니다. 여기에는 FP8/FP4/BF16 행렬 곱셈, 통신과 연산을 오버랩하는 융합 MoE(Mega MoE), lightning indexer의 MQA 스코어링 커널, HyperConnection 등이 포함됩니다. 모든 커널은 DeepJIT를 통해 런타임에 컴파일되므로 설치 시 CUDA 컴파일이 전혀 필요하지 않습니다. CUTLASS/CuTe의 아이디어를 참고했지만, 무거운 템플릿 체계를 의도적으로 배제하고 소수의 핵심 커널만 유지했습니다. 덕분에 프로덕션급 라이브러리(H800에서 최대 1550 TFLOPS)이면서도 NVIDIA GPU 커널 최적화를 배우기에 가장 읽기 쉬운 교재 중 하나가 되었습니다. SM90(H100/H800) 및 SM100(B200) 아키텍처를 지원하며, 연속/마스크드 두 가지 레이아웃의 그룹 GEMM을 제공하여 MoE 학습 순전파와 추론 디코딩을 모두 커버합니다. CUDA 12.9+, PyTorch 2.3+ 및 C++20을 지원하는 컴파일러가 필요하며, MIT 라이선스로 오픈소스로 공개되어 있습니다.

문제 해결 & FAQ (2)

문제 해결
DeepGEMM의 test_mqa_logits가 SM120 Blackwell GPU에서 비트 단위 불일치로 실패하는 이유는 무엇이며, FP8 MQA logits 커널 출력은 사용해도 안전한가요?

이 실패는 SM120(예: RTX PRO 6000 Blackwell, deep_gemm 2.6.1 nv_dev)에서 두 가지 독립적인 원인이 있습니다: (1) FP8 self-consistency assert가 비결정적인 *out-of-window* 쓰기로 인해 실패합니다 — compressed mode에서 fp8_fp4_mqa_logits 커널이 각 행의 유효한 [ks, ke) 윈도우를 벗어난 출력 셀에 쓰레기 값을 저장하므로, 테스트의 전체 버퍼 비트 단위 비교가 불일치하게 됩니다. 더 심층적인 격리 테스트(30회 반복 실행, 최대 4096x8192 크기, H=64 D=128) 결과 유효 영역의 출력은 비트 단위로 동일하고 NaN이 없는 것으로 확인되었으므로, 윈도우를 준수하는 소비자는 영향을 받지 않습니다. 각 행의 [ks_i, ke_i) 범위 내에 있는 logits만 읽고, 이 테스트 실패는 유효 데이터에 대한 data race가 아닌 테스트 아티팩트로 간주하십시오. (2) H=64, D=128을 사용하는 MXFP4 경로는 실제 정확도 실패(diff ~0.62, 허용 오차 0.02)가 있으며 아직 수정되지 않았습니다 — 이전 SM90(#229) 및 SM100(#285, commit 96fbced) MQA sync 수정과 유사하게 아키텍처별 동기화 수정이 적용될 때까지 SM120에서 FP4 indexer 경로를 사용하지 마십시오.

원본 Issue #392
문제 해결
mega_moe 커널을 실행할 때 발생하는 "AttributeError: module 'deep_ep' has no attribute 'ElasticBuffer'" 오류를 해결하려면 어떻게 해야 하나요?

이 오류는 ElasticBuffer가 DeepEP v2에서 새로 도입된 API이기 때문에 발생합니다 — DeepEP v1에는 존재하지 않습니다. 이를 해결하려면 DeepEP 설치를 v2로 업그레이드하세요(https://github.com/deepseek-ai/DeepEP/pull/605 참조). DeepEP를 업데이트하면 deep_ep.ElasticBuffer 속성을 사용할 수 있게 되며 mega_moe 커널이 이 오류 없이 실행됩니다.

원본 Issue #306

태그

llmcudagemmfp8moegpu-kernels

시작하기

1

설치 프로그램 다운로드

위 버튼을 클릭하여 시스템에 맞는 설치 프로그램을 다운로드

2

소프트웨어 설치

다운로드한 설치 프로그램을 더블 클릭하고 안내에 따르세요

3

하드웨어가 SM90 또는 SM100 아키텍처의 NVIDIA GPU(예: H100, H800, B200)인지 확인하고, CUDA 12.9+ 및 PyTorch 2.3+를 설치합니다

4

git clone --recursive를 실행하여 저장소를 클론합니다. 이때 반드시 서브모듈을 포함해야 합니다

5

프로젝트 디렉터리로 이동하여 ./install.sh를 실행해 설치를 완료합니다

설치 가이드
  1. 하드웨어가 SM90 또는 SM100 아키텍처의 NVIDIA GPU(예: H100, H800, B200)인지 확인하고, CUDA 12.9+ 및 PyTorch 2.3+를 설치합니다
  2. git clone --recursive를 실행하여 저장소를 클론합니다. 이때 반드시 서브모듈을 포함해야 합니다
  3. 프로젝트 디렉터리로 이동하여 ./install.sh를 실행해 설치를 완료합니다
파일 무결성

SHA-256 체크섬 확인됨

GitHub 공식 Release 페이지에서 추출된 체크섬

SHA256 체크섬

5b34ed544d56312b257320343fc98ea9bc704f512d38cfcca35f649ef209ded5

이 체크섬은 GitHub Release 페이지에서 추출되었습니다. 다운로드 후 파일 무결성을 확인하세요.

이 플랫폼의 모든 SHA-256 체크섬은 프로젝트의 공식 GitHub Release 페이지에서 추출되었으며, 어떠한 변경도 없습니다. GitHub Releases 페이지에서 직접 검증할 수 있습니다.

오픈소스 투명성

GitHub 소스 보기
환경 가이드

제거 정보

먼저 pip uninstall deep_gemm을 실행하여 Python 패키지를 제거한 다음, 클론한 소스 코드 디렉터리를 삭제하면 됩니다. 완전히 정리하려면 런타임에 JIT가 생성한 컴파일 캐시 디렉터리도 함께 삭제할 수 있습니다.

추가 의존성 없음

다운로드 후 바로 사용 가능. 추가 런타임이 필요하지 않습니다.

프로젝트 정보
라이선스MIT
마지막 업데이트2026-10-22 08:59:45
GitHub 저장소공식 웹사이트

문제 발생? 아래 FAQ 확인

2 FAQs

유사한 프로젝트