HeteroBench: Multi-kernel Benchmarks for Heterogeneous Systems
Description
HeteroBench is a comprehensive benchmark suite designed to evaluate heterogeneous systems with various accelerators, including CPUs, GPUs (NVIDIA, AMD, Intel), and FPGAs (AMD). It features multi-kernel applications spanning domains like image processing, machine learning, numerical computation, and physical simulation. HeteroBench aims to assist users in assessing performance, optimizing hardware usage, and facilitating decision-making in HPC environments.
Key Features
- Broad Hardware Compatibility: Supports CPUs, GPUs from multiple brands, and FPGAs.
- Multi-language Support: Benchmarks available in Python, Numba-accelerated Python, and various C++ versions (serial, OpenMP, OpenACC, CUDA, and Vitis HLS).
- Customizable Kernel Placement: Enables kernel-level optimization for different hardware backends by users.
- Fair Comparisons: Standardized algorithms across platforms for unbiased benchmarking.
- User-friendly Design: Simplified setup with configuration files and a top-level Python script for project management.
Requirements
- Python3
- LLVM/Clang
- NVIDIA CUDA Toolkit
- NVIDIA HPC SDK
- Docker
Website
https://github.com/HewlettPackard/HeteroBench
Contributors
- Hongzheng Tian
- Rolando P. Hong Enriquez
- Dejan Milojicic
- Eitan Frachtenberg
- Zhiheng Chen
- Sitao Huang
Maintainers
-
Alok Mishra, alok.mishra(at)hpe.com
Hewlett Packard Enterprise
Version
1.0
License
(C) Copyright (2024) Hewlett Packard Enterprise Development LP
Downloads
Related publications and projects
- Hongzheng Tian, Alok Mishra, Zhiheng Chen, Rolando P Hong Enriquez, Dejan Milojicic, Eitan Frachtenberg, and Sitao Huang, HeteroBench: Multi-kernel Benchmarks for Heterogeneous Systems. In Proceedings of the 16th ACM/SPEC International Conference on Performance Engineering (ICPE 2025).