NVIDIA/nvbench
CUDA Kernel Benchmarking Library
해결하는 문제
NVBench는 CUDA 커널 벤치마킹 과정을 간소화합니다. 실행 시간, 스루풋, 메모리 대역폭 사용량을 체계적으로 측정할 수 있는 방법을 제공하여, 개별 GPU 커널의 튜닝 및 리그레션 테스트 시 수동으로 반복되는 코드를 작성할 필요 없이 작업할 수 있습니다.
작동 방식
C++17 라이브러리로, 간단한 API를 사용해 벤치마크를 정의할 수 있습니다. '축(axis)' 시스템을 사용하여 파라미터 스윕을 수행하며, 동적 숫자/문자열 또는 정적 타입을 활용해 다양한 커널 설정을 탐색하여 최적의 설정을 찾을 수 있습니다. '콜드(Cold)' 측정(정리된 L2 캐시)과 '배치(Batch)' 측정(실행 시간 평균화)과 같은 여러 측정 모드를 지원합니다.
대상 사용자
GPU 커널 최적화 및 체계적인 파라미터 튜닝이 필요한 CUDA 개발자 및 성능 엔지니어.
주요 기능
- 파라미터 스윕: 설정 공간을 탐색하기 위한 유연한 축 시스템.
- 런타임 커스터마이징: 축 재정의, 디바이스 선택, GPU 클럭 잠금 등이 가능한 풍부한 CLI.
- 성능 메트릭: 아이템 스루풋 및 글로벌 메모리 대역폭 사용량(피크 대비 백분율 포함)의 자동 계산.
- 유연한 측정: 콜드 스타트, 배치, 수동 타이머 모드를 지원.
- 다양한 출력 형식: 결과를 Markdown 또는 CSV 형식으로 내보낼 수 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트