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로 cudnn Python 모듈을 제공하며, 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에 나열되어 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트