Bandwidth is primarily a memory bandwidth benchmark, but it can also measure network bandwidth. It measures the maximum memory bandwidth of each part of the memory system, including main memory, L1, L2, and L3 caches, framebuffer memory, and register-to-register. For many tests, it performs both sequential memory accesses as well as random memory accesses to provide a more real-world performance estimate. The tests support Linux (Intel), Windows/Cygwin, and Mac OS X. Its core routines are in assembly for x86 and x86-64 architectures with both SSE4 and AVX support. Bandwidth also includes automatic graphing of the results, stored to a BMP image file. The network bandwidth tests support Linux, Mac OS X, and Windows/Cygwin.
mubench is an in-depth, low-level benchmark for x86 processors. Its primary goal is to provide useful information for people who optimize assembly code and write compilers. It measures latency and throughput for each individual instruction (sometimes several forms of the same instruction), as well as the throughput of arbitrary instruction mixes. The results produced by mubench are typically an order of magnitude more detailed than those found in AMD or Intel manuals.
pmbw is a set of assembler routines to measure the parallel memory (cache and RAM) bandwidth of modern multi-core machines. Memory bandwidth is one of the key performance factors of any computer system. Today, measuring the memory performance often gives a more realistic view of the overall speed of a machine than pure arithmetic or floating-point benchmarks. pmbw contains a set of very basic functions which are all hand-coded in assembler to avoid any compiler optimizations. These basic functions are modeled after the basic inner loops found in any data processing, sequential scanning and pure random access. Any application will have a memory access pattern which is somewhere between these two extremes. The current version of pmbw supports benchmarking 16-, 32-, 64-, 128-, or 256-bit memory transfers on x86_32-bit, x86_64-bit, and ARMv6 systems.