DeepGEMM은 FP8 일반 행렬 곱셈(GEMM)을 위한 라이브러리로, DeepSeek-V3에서 제안된 세밀한 스케일링을 지원함. 이 라이브러리는 일반 및 Mix-of-Experts(MoE) 그룹화된 GEMM을 지원하며, CUDA로 작성되어 설치 시 컴파일이 필요하지 않음. NVIDIA Hopper 텐서 코어를 지원하며, FP8 텐서 코어 누적의 부정확성을 해결하기 위해 CUDA 코어 2단계 누적을 사용함. CUTLASS와 CuTe의 개념을 일부 활용하지만, 템플릿이나 대수에 대한 의존성을 최소화하여 단순함을 유지함. 약 300줄의 코드로 구성된 하나의 핵심 커널 함수로 Hopper FP8 행렬 곱셈 및 최적화 기술을 학습하기에 적합한 자원임. 경량 설계에도 불구하고 다양한 행렬 형태에서 전문가가 조정한 라이브러리와 성능이 같거나 뛰어남. DeepSeek-V3/R1 추론에서 사용될 수 있는 모든 형태를 H800 SXM5에서 NVCC 12.8로 테스트함. 모든 속도 향상 지표는 CUTLASS 3.6을 기반으로 내부적으로 최적화된 구현과 비교하여 계산됨. 일부 형태에서는 성능이 좋지 않을 수 있으며, 최적화 PR을 환영함.DeepGEMM
성능
일반 GEMM (밀집 모델)
MoE 모델을 위한 그룹화된 GEMM (연속 레이아웃)
MoE 모델을 위한 그룹화된 GEMM (마스크 레이아웃)
빠른 시작
요구 사항
개발
설치
인터페이스
주의사항
일반 밀집 GEMM (비그룹화)
그룹화된 GEMM (연속 레이아웃)
그룹화된 GEMM (마스크 레이아웃)
유틸리티
최적화
지속적인 워프 특화
Hopper TMA 기능
공통 세부 최적화
통합 및 최적화된 블록 스케줄러
완전한 JIT 설계
정렬되지 않은 블록 크기
FFMA SASS 인터리빙
감사
라이선스