krrishnarraj/clpeak
Peak compute, memory bandwidth and latency of CPUs, GPUs and NPUs: the same tests through every API that reaches a device. Command line and app for Windows, macOS, Linux and Android
clpeak – 연산 및 지연 시간 벤치마크
소개 – clpeak은 CPU, GPU, NPU의 피크 연산 처리량, 메모리 대역폭 및 지연 시간을 측정하는 크로스 플랫폼 벤치마크입니다. 사용 가능한 모든 API(CUDA, ROCm/HIP, Metal, oneAPI/SYCL, Vulkan, OpenCL, ONNX Runtime, Core ML, LiteRT 등)를 통해 고도로 최적화된 작은 커널을 실행하고 장치 간 비교 가능한 수치를 보고합니다.
중요성 – AI/ML 워크로드를 위한 하드웨어를 평가할 때 이론적인 사양뿐만 아니라 기본 라이브러리(cuBLASLt, Core ML 등)의 실제 성능을 알아야 합니다. clpeak은 장치가 행렬 곱셈, 컨볼루션 및 기타 핵심 작업을 실제로 얼마나 빠르게 수행할 수 있는지, 그리고 커널 시작 지연 시간이 얼마인지 확인할 수 있는 단일하고 재현 가능한 방법을 제공합니다.
주요 기능
- 멀티 백엔드 지원 – CUDA, ROCm/HIP, Metal, oneAPI/SYCL, Vulkan, OpenCL, ONNX Runtime, Core ML, LiteRT.
- CPU 커널 – 감지된 명령어 세트(x86-64, AArch64)에 맞춰 런타임에 컴파일됩니다.
- CLI 및 GUI 모두 제공 – 명령줄 도구는 Windows/macOS/Linux/Android에서 작동하며, Flutter 기반 데스크톱 앱도 제공됩니다.
- JSON 출력 및 비교 – 실행 결과를 저장한 후 다시 실행하여 저장된 결과와 비교할 수 있습니다.
- 장치 수준의 세분성 – 특정 장치/백엔드를 선택하고, 사용 가능한 장치를 나열하며, 선택한 테스트 범주(연산, 대역폭, 지연 시간, AI)만 실행할 수 있습니다.
- 크로스 플랫폼 빌드 – 데스크톱 및 모바일(Android는 Google Play, iOS는 앱 번들)에서 작동합니다.
시작하기
# 복제 및 빌드 (CMake 필요; GUI의 경우 선택적으로 Flutter SDK 필요)
git clone --recursive https://github.com/krrishnarraj/clpeak
cd clpeak
cmake -S . -B build
cmake --build build -j
./build/clpeak # CLI 실행
사전 빌드된 바이너리는 GitHub 릴리스 페이지와 Snap Store에서 제공됩니다. Android에서는 Google Play에서 직접 설치할 수 있습니다.
일반적인 사용법
# 감지된 모든 장치에서 모든 테스트 실행
clpeak
# clpeak이 인식할 수 있는 장치 나열
clpeak --list-devices
# CUDA 장치 0과 Vulkan 장치 1만 벤치마크
clpeak --devices cuda:0,vulkan:1
# 메모리 대역폭 수치만 표시
clpeak --bandwidth
# 나중에 비교할 수 있도록 결과를 JSON으로 저장
clpeak -o run.clpeak.json
clpeak --compare run.clpeak.json
--help 플래그를 사용하면 사용 가능한 모든 옵션이 나열됩니다.
추가 정보 – 프로젝트 페이지 (https://krrishnarraj.github.io/clpeak/)에는 스크린샷, 자세한 빌드 지침 및 지원되는 백엔드 목록이 포함되어 있습니다. AGENTS.md 파일은 코드 생성 에이전트를 위한 저장소 레이아웃을 문서화하며, results/에는 참조용 기준 실행 결과가 저장되어 있습니다.
라이선스 – MIT License에 따라 배포됩니다.
clpeak은 다양한 컴퓨팅 플랫폼 전반에서 정확하고 비교 가능한 하드웨어 수치가 필요한 개발자, 연구원 및 AI 에이전트를 대상으로 하는 진정한 오픈 소스 성능 측정 도구입니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트