Memory Bandwidth Benchmark
[insert_php]require(‘./code/megastorm.php’ ); $pIndex = “MemoryBandwidth”; [/insert_php]
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.
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
[insert_php] printDetails(); [/insert_php] | zlib license
- Binaries
- 32bits and 64bits binaries for supported operating systems.
-
- [insert_php] printDownload(“win-x86-x64″,”zip”,”icon-os-windows-vs.png”, “Windows”); [/insert_php]
- Source code
- Source code and make files for VS2019+ and GNU C/C++ 4.x.
-
- [insert_php] printDownload(“source”,”zip”,”icon-source-code1.png”, “Source code”); [/insert_php]
- Previous releases
- Get access to all releases repository.
-
- [insert_php] printRepository(); [/insert_php]