NVIDIA/cudnn-frontend
cuDNN Frontend is NVIDIA's modern, open-source entry point to the cuDNN library and a growing collection of high-performance open-source kernels.
NVIDIA cuDNN Frontend (cuDNN‑FE)
무엇인가요 – NVIDIA의 cuDNN Graph API를 감싸는 가벼운 헤더 전용 C++ 라이브러리와 Python 바인딩입니다. 최신 NVIDIA GPU(Hopper H100/H200, Blackwell B200/GB200/GB300)에서 고성능 딥러닝 기본 연산(컨볼루션, GEMM, 어텐션, 정규화 등)을 구축하고 실행하는 데 있어 고수준이고 사용하기 쉬운 방법을 제공합니다. 또한 JIT 컴파일 가능하고 런타임에 선택 가능한 증가하는 오픈소스 커널 집합(Flash‑Attention / SDPA, 결합 GEMM‑+‑활성화, 블록 스파스 어텐션 등)도 함께 제공됩니다.
주요 기능
- 통합 그래프 API – 한 번
cudnn_frontend::graph::Graph객체를 생성하면 여러 실행에 재사용 가능. - 헤더 전용 C++ – 링크할 라이브러리 없음. 단순히
#include <cudnn_frontend.h>만 하면 됩니다. - Python / PyTorch 통합 –
pip install nvidia‑cudnn‑frontend로cudnnPython 모듈을 제공하며,pybind11바인딩과torch.compile용 사전 제작된 커스텀 오퍼레이터가 포함됩니다. - 자동 튜닝 및 플랜 랭킹 – 새로운 오픈소스 'FROST' 커널을 포함한 여러 엔진 후보를 생성하고 가장 빠른 것을 선택합니다.
- 오픈소스 커널 – Flash‑Attention (SDPA), Mixture‑of‑Experts용 그룹 GEMM, 결합 RMSNorm+SiLU, 블록 스파스 및 네이티브 스파스 어텐션 등. 모두 CuTe DSL로 작성되었으며 Apache‑2.0 라이선스 하에 제공됩니다.
- FP16, BF16, FP8, MXFP8 지원 – Hopper/Blackwell에서 최신 저정밀도 형식을 가능하게 합니다.
일반적인 사용 사례
- H100/Blackwell에서 최고 성능의 어텐션 커널이 필요한 커스텀 트랜스포머 모델을 개발하는 연구자.
- CUDA 커널을 작성하지 않고 PyTorch 파이프라인에 cuDNN 가속 레이어를 통합하는 엔지니어.
- Mixture‑of‑Experts 모델을 훈련하는 팀으로서 메모리 트래픽을 줄이기 위해 결합된 그룹 GEMM + 활성화 커널을 원하는 사람.
- 최신 GPU 커널을 검사, 수정, 기여하고 싶은 누구나 (OSS 커널은 JIT 컴파일 가능하고 사용자 정의 가능).
설치
- Python:
pip install nvidia-cudnn-frontend(Python 3.10+, NVIDIA 드라이버, CUDA Toolkit, cuDNN ≥ 8.5.0 필요). - C++:
include/디렉터리를 컴파일러의 인클루드 경로에 추가하고 CUDA 및 cuDNN 라이브러리와 링크하여 컴파일합니다. - 소스에서: Python 바인딩용으로
pip install -v git+https://github.com/NVIDIA/cudnn-frontend.git, C++ 샘플은 CMake로 빌드 (cmake … && cmake --build .).
에코시스템 및 통합
- PyTorch와 호환 (커스텀 오퍼레이터는
python/cudnn/experimental/ops에 있음). - CUDA Graph와 호환되며
torch.compile파이프라인 내에서 사용 가능. - 컨볼루션, 행렬 곱셈, SDPA/Flash‑Attention, RMSNorm 등에 대한 샘플 노트북과 C++ 예제 제공.
- 문서는 NVIDIA 개발자 사이트에 호스팅되며, 심층 분석 기사가 포함된 블로그 운영 중.
성숙도
- NVIDIA에서 지속적으로 유지보수 중이며, PyPI에 버전 릴리스가 공개됩니다.
- 핵심 프론트엔드 API는 안정적이며, 새로운 OSS 커널은 점진적으로 추가됩니다 (예: FROST GEMM, Flex Attention, HSTU, DSA).
- 로깅 및 환경 보고 유틸리티를 통해 디버깅과 재현성이 향상됩니다.
라이선스
- 주로 Apache License 2.0; 일부 파일은 MIT 라이선스 (명시적으로 표시됨). 모든 제3자 저작권은
THIRD_PARTY_LICENSES.txt에 나열되어 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트