한 줄 정의
DeepGEMM은 DeepSeek가 공개한 CUDA 기반 Tensor Core 커널 라이브러리야. GEMM은 모델 안에서 계속 반복되는 행렬 곱셈 작업이고, DeepGEMM은 이 계산을 NVIDIA GPU의 커널 경로에서 더 직접 다루게 해.
공식 README는 DeepGEMM을 FP8, FP4, BF16 GEMM, Mega MoE, MQA scoring, HyperConnection까지 한 CUDA 코드베이스에 모은 라이브러리로 설명해. 그래서 기사에서 DeepGEMM이 보이면 새 모델 이름보다 “행렬 곱셈과 MoE 실행 경로를 어느 GPU 커널로 돌리나”를 먼저 보면 돼.
실제로 무엇을 하나
DeepGEMM은 큰 LLM에서 반복되는 행렬 곱셈 커널을 제공해. 기본 인터페이스는 D = C + A @ B 형태의 GEMM이고, FP8 dense GEMM, grouped GEMM, masked grouped GEMM처럼 전문가 혼합 모델에서 자주 나오는 모양을 따로 다뤄.
설치할 때 모든 CUDA 커널을 미리 컴파일하는 방식은 아니야. README는 커널이 가벼운 JIT 모듈을 통해 runtime에 컴파일된다고 적어. 실무에서는 이 말이 꽤 중요해. “pip 설치가 됐다”에서 끝나는 게 아니라, 실제 입력 모양이 들어왔을 때 어떤 커널이 컴파일되고 캐시되는지, 처음 호출 지연이 얼마인지, 같은 모양을 반복할 때 p95 지연이 안정되는지를 봐야 하거든.
요구 조건은 꽤 좁아. README 기준으로 NVIDIA SM90 또는 SM100 GPU, Python 3.8+, C++20 compiler, PyTorch 2.1+, CUTLASS 4.0+가 필요해. CUDA Toolkit은 SM90에서 12.3+이고 12.9+를 권장하며, SM100에서는 12.9+가 필요해. 일반 앱 서버나 관리형 API만 쓰는 팀이라면 이 조건부터 이미 멀 수 있어.
왜 중요한가
DeepGEMM이 중요한 이유는 모델 이름을 바꾸지 않고도 추론 병목이 바뀔 수 있기 때문이야. 같은 가중치라도 GEMM 커널, 정밀도, 런타임, GPU 세대가 달라지면 처리량과 지연 시간이 달라질 수 있어.
특히 MoE에서는 토큰을 전문가에게 보내고, 전문가별 linear 연산을 돌리고, 다시 합치는 과정에서 커널 호출과 GPU 간 통신이 섞여. 2026년 4월 PR #304는 Mega MoE가 dispatch, linear 1, SwiGLU, linear 2, combine을 하나의 mega-kernel로 묶고 NVLink 통신과 tensor core 계산을 겹친다고 설명해. 이건 “모델이 더 똑똑해졌다”가 아니라 GPU가 기다리는 시간을 줄이려는 인프라 변경이야.
숫자는 출처 맥락을 나눠서 읽어야 해. README의 up to 10x NVRTC 컴파일 속도 항목은 2025년 5월 7일 뉴스이고, H800 1550 TFLOPS 항목은 2025년 4월 18일 뉴스야. 2026년 4월 공개 릴리스 숫자가 아니야. 2026년 4월 24일 PR #316의 Mega MoE 표도 DeepSeek 저장소 작성자가 올린 EP8, 8 ranks 평균 커널 벤치마크라서, 내 서비스 전체 지연시간이 같은 배율로 줄어든다고 보면 안 돼.
도입 전에 볼 조건
- 지원 GPU부터 봐. SM90이나 SM100 계열이 아니고 CUDA Toolkit, PyTorch, CUTLASS 조건을 맞출 수 없다면 DeepGEMM을 시험할 이유가 약해.
- 내 병목이 정말 GEMM인지 재야 해. p50/p95 지연, tokens/sec, peak memory, DRAM 대역, GPU utilization을 기존 런타임과 같은 입력으로 비교해야 해.
- 작은 배치와 긴 입력을 따로 재야 해. PR #316도 rank당
1,512,8192,32768토큰 조건을 나눠 표로 냈어. 한 조건에서 빨라도 다른 조건에서 바로 이긴다고 보면 곤란해. - JIT 첫 호출 지연과 캐시 위치를 확인해.
DG_JIT_CACHE_DIR,DG_JIT_USE_NVRTC,DG_JIT_PRINT_LOAD_TIME같은 설정은 개발 편의가 아니라 운영 지연과 디버깅에 직접 닿아 있어. - 모델 품질과 커널 성능을 섞지 마. FP8이나 FP4 경로를 쓰면 정확도 회귀, NaN/Inf, 출력 품질도 같은 평가셋에서 따로 확인해야 해.
반대로 일반 챗봇 앱, 사내 자동화, 관리형 모델 API 호출처럼 GPU 커널을 직접 운영하지 않는 흐름에서는 DeepGEMM을 바로 적용할 일이 거의 없어. 이때는 DeepGEMM보다 모델 가격, 컨텍스트 길이, API 안정성이 먼저야.
헷갈리기 쉬운 경계
DeepGEMM과 CUDA는 같은 층위가 아니야. CUDA는 NVIDIA GPU에서 코드를 실행하는 플랫폼이고, DeepGEMM은 그 위에서 특정 GEMM·MoE·MQA scoring 커널을 제공하는 저장소야.
CUTLASS나 CuTe와도 다르게 읽는 편이 좋아. README는 DeepGEMM이 CUTLASS와 CuTe의 일부 개념에서 영감을 받았지만, 무거운 template와 algebra 의존을 피하고 제한된 핵심 kernel function으로 단순하게 유지한다고 설명해. 그러니까 DeepGEMM은 범용 CUDA 교육서라기보다, DeepSeek가 쓰는 LLM 계산 모양에 가까운 커널 묶음에 더 가까워.
BF16, FP8, FP4는 정밀도 선택이고, DeepGEMM은 그 정밀도 경로를 실제 커널로 돌리는 라이브러리야. Attention이나 MQA scoring은 토큰 관계를 계산하는 작업이고, DeepGEMM은 그중 일부 scoring 경로를 커널로 제공해. DeepSeek R1 같은 모델 페이지와도 분리해야 해. PR #304가 직접 적었듯이 2026년 4월 릴리스는 DeepGEMM 개발 업데이트이지 내부 모델 릴리스가 아니야.