DeepGEMM: LLM 핵심 연산을 통합한 고성능 커널 라이브러리
deepseek-ai/DeepGEMM
GitHubDeepGEMM은 LLM의 핵심 연산인 GEMMs, Mega MoE, MQA 로직 등을 단일 CUDA 코드베이스로 통합한 고성능 텐서 코어 커널 라이브러리입니다.
이 라이브러리는 대규모 언어 모델의 핵심 연산들을 하나로 통합하여 복잡한 구조에서 발생하는 성능 저하 문제를 근본적으로 해결해 줘요.
- DeepJIT 기반 동적 컴파일 방식을 채택해 설치가 용이하며, H800 등 최신 GPU 환경에서 최대 1550 TFLOPS에 달하는 최고 성능을 구현했습니다.
- MoE나 MQA 같은 복잡한 대규모 모델 구조가 일반화되면서 발생하는 연산 병목 현상을 근본적으로 해소하는 필수 인프라 역할을 합니다.
- 구동을 위해서는 엔비디아 SM90/SM100 아키텍처 GPU가 필요하며, 사용자 측에서 데이터 포맷 변환 및 전치 등의 전처리 과정을 직접 구현해야 합니다.
DeepGEMM은 (LLM)의 핵심 계산 원시 요소들을 단일 코드베이스로 통합한 고성능 텐서 코어 커널 라이브러리입니다. 이 라이브러리는 GEMMs (FP8, FP4, BF16), Mega 와 같은 오버랩 통신을 포함하는 융합 구조, MQA 스코어링 등 다양한 연산을 하나의 코드베이스로 구현했습니다. DeepJIT를 통해 런타임에 커널이 컴파일되므로 설치 과정에서 별도의 CUDA 컴파일 작업이 필요 없습니다.
DeepGEMM은 경량화된 설계에도 불구하고 여러 행렬 형태에서 전문가가 조정(expert-tuned)한 라이브러리와 동등하거나 그 이상의 성능을 보여줍니다. 실제로 H800 환경에서는 최대 1550 TFLOPS에 달하는 최고 성능을 기록했습니다. 이 라이브러리는 NVIDIA SM90 또는 SM100 아키텍처 를 기반으로 하며, MoE나 MQA와 같은 복잡한 모델 구조의 연산 병목 현상을 해소하는 데 초점을 맞추고 있습니다.
Mega MoE 커널을 사용하는 경우, 사용자는 다중 프로세스 실행과 대칭 메모리 버퍼 할당 과정을 거쳐야 합니다. 이 워크플로우는 변환 및 융합된 메가-커널 호출 순서로 진행됩니다. 다만, 라이브러리가 제공하는 유틸리티 함수만으로는 성능 최적화에 한계가 있어, 데이터 전치(transposition)나 FP8 캐스팅 같은 전처리 과정은 사용자가 직접 구현하거나 기존 커널과 융합해야 합니다.
용어 풀이
- 대규모 언어 모델
- 방대한 글을 학습해 문장을 이해하고 만들어 내는 AI 모델. ChatGPT, Claude, Gemini가 여기에 속해요.
- CUDA
- 엔비디아 GPU에서 계산 프로그램을 돌리게 해 주는 개발 플랫폼.
- MoE
- 여러 하위 모델 중 일부만 골라 계산하는 구조. 모델이 커도 실행 비용을 줄일 수 있어요.
- GPU
- 많은 계산을 한꺼번에 처리하는 칩. AI 학습과 실행에 가장 많이 써요.
- 가중치
- 학습으로 정해진 모델 내부의 숫자 값. 내려받는 모델 파일의 본체예요.
DeepGEMM은 어떤 핵심 연산들을 통합하고 있나요?
이 라이브러리는 대규모 언어 모델의 핵심 계산 원시 요소들을 단일 코드베이스로 통합했어요. 구체적으로는 GEMMs(FP8, FP4, BF16), 오버랩 통신을 포함하는 Mega MoE 구조, MQA 스코어링 등 다양한 연산을 하나의 코드에서 구현하고 있어요.
DeepGEMM 사용에 필요한 GPU 아키텍처는 무엇인가요?
이 라이브러리는 엔비디아의 SM90 또는 SM100 아키텍처 기반 GPU를 사용해야 해요. 이러한 환경에서 MoE나 MQA 같은 복잡한 모델 구조의 연산 병목 현상을 해소하는 데 초점을 맞추고 있어요.
사용자가 직접 구현하거나 처리해야 하는 과정이 있나요?
네, 라이브러리가 제공하는 유틸리티 함수만으로는 성능 최적화에 한계가 있어요. 따라서 데이터 전치(transposition)나 FP8 캐스팅 같은 전처리 과정은 사용자가 직접 구현하거나 기존 커널과 융합해야 해요.