cpufp  by pigirons

CPU tool for benchmarking peak floating-point performance

Created 9 years ago
563 stars

Top 57.1% on SourcePulse

GitHubView on GitHub
Project Summary

This tool benchmarks peak floating-point and AI instruction set performance across various CPU architectures. It's designed for hardware engineers and performance analysts needing to evaluate CPU capabilities for AI and scientific computing workloads. The project offers automatic detection and compilation for local SIMD/DSA ISAs, simplifying cross-platform benchmarking.

How It Works

The tool leverages C++ and auto-vectorization to generate highly optimized code for specific SIMD (Single Instruction, Multiple Data) and DSA (Data Streaming Accelerator) instruction sets. It dynamically compiles kernels tailored to the detected CPU features, ensuring maximum utilization of available hardware capabilities like AVX, AVX512, AMX, NEON, and RISC-V Vector extensions for various data types (FP32, FP64, FP16, BF16, INT8).

Quick Start & Requirements

  • Build x64: ./build_x64.sh
  • Build arm64: ./build_arm64.sh
  • Build riscv64: ./build_riscv64.sh
  • Build loongarch64: ./build_loongarch64.sh
  • Build e2k: ./build_e2k.sh
  • Benchmark: ./cpufp --thread_pool=[xxx]
  • Requires a C++ compiler.

Highlighted Details

  • Supports a wide range of architectures: x86-64, arm64, riscv64, loongarch64, and e2k.
  • Extensive ISA coverage including SSE, AVX, AVX512, AMX, NEON, RISC-V V, LASX, LSX, and e2k specific instructions.
  • Benchmarks various data types: fp32, fp64, fp16, bf16, and int8.
  • Includes latency and throughput metrics for specific architectures like Elbrus.

Maintenance & Community

The project is maintained by pigirons. No community links or roadmap are provided in the README.

Licensing & Compatibility

The README does not specify a license.

Limitations & Caveats

Windows support is explicitly stated as "no" for arm64, and not mentioned for other architectures. The "Todo list" indicates planned support for armv9 (SVE, SVE2 & SME). The e2k ISA section mentions "Unknown" for AVX_VNNI_INT8 feature.

Health Check
Last Commit

2 months ago

Responsiveness

1+ week

Pull Requests (30d)
0
Issues (30d)
0
Star History
5 stars in the last 30 days

Explore Similar Projects

Starred by Lysandre Debut Lysandre Debut(Chief Open-Source Officer at Hugging Face), Omar Sanseviero Omar Sanseviero(DevRel at Google DeepMind), and
2 more.

local-gemma by huggingface

0.3%
376
CLI tool for local Gemma-2 inference
Created 1 year ago
Updated 1 year ago
Feedback? Help us improve.