Memory Bandwidth Benchmark

Overview

Memory Bandwidth Benchmark tool uses different memcpy() versions:

  • standard one provided by the compiler
  • assembler optimized versions

Output results are stored in ASCII format (formatted table) and if Gnuplot tool is available, a PNG is created with the graphical results.

Memory BandwidthMemory BandwidthMemory BandwidthMemory Bandwidth

Details

  • Command line tool that can be customized via parameters.
  • Compares different memcpy() implementations:
    • standard one provided by the compiler
    • MMX (only available in 32bits binary)
    • SSE (only available in 32bits binary)
    • AVX (only available in 32bits binary)
    • Intel optimized AVX version
    • Intel optimized AVX2 version
    • asmlib (Agner Fog library)
  • Output to ASCII text files (formatted table) and PNG graphs if Gnuplot is available:
    • CPU name and caches are displayed in addition to the selected mode and memory buffer.
  • Works with a memory buffer of 256MB and have 4 working modes:
    • Fixed read: always reads from the same memory location.
    • Buffer read: Cyclically uses the memory buffer.
    • Fixed write: always writes to the same memory location.
    • Buffer write: Cyclically uses the memory buffer.
  • Available for Windows. Also compiles on Linux, makefile included and macOS (x86) although makefile is not provided.
  • Developed in C++ (Visual Studio 2019).

Download

Last version: v3.10 (29-March-2021)
ChangeLog | Roadmap | zlib license

Binaries
32bits and 64bits binaries for supported operating systems.
Source code
Source code and make files for VS2019+ and GNU C/C++ 4.x.
Previous releases
Get access to all releases repository.