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).