DeepSeek-AI 'DeepGEMM' 업데이트… H800서 1,550 TFLOPS, Mega MoE로 FP8×FP4 GEMM·SwiGLU 단일 메가 커널 융합
DeepSeek-AI가 현대 대규모 언어모델의 핵심 연산을 단일 CUDA 코드베이스에 모아 놓은 통합형 고성능 텐서 코어 커널 라이브러리 DeepGEMM을 공개하고 지속 업데이트하고 있다. 이 라이브러리는 FP8·FP4·BF16 GEMM, 통신 오버랩이 포함된 퓨즈드 MoE(Mega MoE), 라이트닝 인덱서용 MQA 스코어링, HyperConnection(HC) 등을 한 코드베이스로 제공한다.
모든 커널은 경량 JIT 모듈을 통해 런타임에 컴파일되므로 설치 시 CUDA 컴파일이 필요하지 않다. DeepGEMM은 CUTLASS와 CuTe의 일부 개념을 차용하지만 템플릿이나 대수에 깊이 의존하지 않고, 코어 커널 함수 수를 제한해 NVIDIA GPU 커널 최적화 기법을 학습하기에 깔끔하고 접근성 높은 자료가 되도록 설계됐다고 프로젝트는 설명한다. 경량 설계에도 불구하고 성능은 다양한 행렬 형상에서 전문가가 튜닝한 라이브러리에 버금가거나 이를 능가한다는 것이 개발 측 주장이다.
최근 업데이트는 2026년 4월 16일로, Mega MoE, FP8×FP4 GEMM, FP4 인덱서, PDL(Programmatic Dependent Launch) 활성화, JIT 컴파일 속도 개선 등이 추가됐다. 성능 비교는 추후 게시 예정이라고 한다. 앞서 2025년 9월 28일에는 DeepSeek v3.2 라이트닝 인덱서를 위한 가중 ReLU MQA 로짓 스코어링 커널이 추가됐고, 2025년 7월 20일 대규모 리팩터링으로 SM90·SM100 양쪽을 지원하며 CPU 오버헤드가 낮은 JIT CPP 모듈이 도입됐다.
성능 이정표로는 2025년 5월 14일 Dense 및 MoE 백워드용 가중치 그라디언트 커널 추가(#95), 2025년 5월 7일 NVRTC 지원으로 컴파일 속도가 최대 10배 빨라진 변경(#94), 그리고 2025년 4월 18일 H800에서 최대 1,550 TFLOPS를 달성한 개선(#74·#78·#81·#86)이 있다. 2025년 7월 리팩터링 이후 NVRTC와 컴파일 후 SASS 최적화는 모두 비활성화됐으며, NVCC 12.9가 FFMA 인터리빙을 자동으로 수행하게 되어 사후 최적화는 더 이상 지원되지 않는다.
요구 사양은 NVIDIA SM90 또는 SM100 아키텍처 GPU, Python 3.8 이상, C++20을 지원하는 컴파일러다. CUDA Toolkit은 SM90에서 12.3 이상(최상의 성능을 위해 12.9 이상 권장), SM100에서는 12.9 이상이 필요하며, PyTorch 2.1 이상, CUTLASS 4.0 이상과 {fmt} 라이브러리를 사용한다. CUTLASS와 {fmt}는 Git 서브모듈로 클론할 수 있다.
API는 'D = C + A @ B' 컨벤션을 따르고 입력은 NT 레이아웃(비전치 A, 전치 B)을 기본으로 한다. SM90 구현은 NT 메모리 레이아웃만 지원하지만, SM100 구현은 NT·TN·NN·TT를 모두 지원한다. 두 아키텍처 모두 LHS 스케일링 팩터가 TMA 정렬과 전치 레이아웃을 갖춰야 하며, 스케일링 팩터 데이터 포맷은 SM90이 FP32, SM100이 패킹된 UE8M0 포맷으로 네 개의 UE8M0를 하나의 torch.int로 묶어 사용한다.
Mega MoE는 EP 디스패치, 리니어1(FP8×FP4), SwiGLU, 리니어2(FP8×FP4), EP 컴바인을 하나의 메가 커널로 융합해 NVLink 통신과 텐서 코어 연산을 오버랩한다. 이를 위해 대칭 메모리를 사용하는 멀티 프로세스 런치가 필요하며, 대칭 메모리 버퍼 할당·가중치 레이아웃 변환·버퍼 입력 복사 후 fp8_fp4_mega_moe 호출 순으로 사용한다. PyTorch 2.9 이상이 요구된다. MoE 모델에서 전문가들의 형상이 동일한 시나리오에 맞춰 전통적인 CUTLASS 그룹드 GEMM과 달리 M 축만 그룹화하고 N·K는 고정하는 방식도 함께 제공된다.