Geekbench 3 Benchmarks

Geekbench 3 uses a number of different benchmarks to measure performance. Below is a brief description of each benchmark included in Geekbench 3.

Integer Workloads

  • AES: The AES workload encrypts a generated text string using the advanced encryption standard (AES). AES is used in security tools such as SSL, IPsec, and GPG. Geekbench uses AES instructions (AES-NI or ARMv8 AES) when available. Otherwise Geekbench uses its own software AES implementation.

  • Twofish: The Twofish workload also encrypts a text string, but it uses the Twofish algorithm. Twofish is from the family of encryption algorithms known as "Feistel ciphers." It is included in the OpenPGP standard.

  • SHA1: SHA1 is a cryptographic hash algorithm: given a binary input it generates a "hash" or "digest" of the input. SHA1 is designed so that the hash may be computed quickly, but it is difficult to find a string that generates a given hash. SHA1 may be used, for example, to encrypt passwords by storing the hash instead of the password text. The SHA1 workload uses a text string as input. Geekbench uses SHA1 instructions (SHA-NI or ARMv8 SHA1) when available. Otherwise Geekbench uses its own software SHA1 implementation.

  • SHA2: SHA2 solves the same problem as SHA1, but is more secure: SHA1 has a known vulnerability to "collision attacks." Although these attacks are still impractical and SHA1 is still widely used, it is being gradually replaced by SHA2. Geekbench does not use SHA2 instructions for the SHA2 workload.

  • BZip2 compression and decompression: BZip2 is a compression algorithm. The BZip2 workloads compress and decompress an ebook formatted using HTML. Geekbench 3 uses bzlib version 1.0.6 in the BZip2 workloads.

  • JPEG compression and decompression: The JPEG workloads compress and decompress one digital image using lossy JPEG format. The workloads use libjpeg version 6b.

  • PNG compression and decompression: The PNG workloads also compress and decompress a digital image, but they do so using the PNG format. The workloads use libpng 1.6.2.

  • Sobel: The "Sobel operator" is used in image processing for finding edges in images. The Sobel workload uses the same input image as the JPEG and PNG workloads.

  • Lua: Lua is lightweight scripting language. The Lua workload is similar to the code used to display Geekbench results in the Geekbench Browser.

  • Dijkstra: The Dijkstra workload computes driving directions between a sequence of destinations. Similar techniques are used by AIs to compute paths in games and by network routers to route computer network traffic.

Floating Point Workloads

  • Black-Scholes: The Black-Scholes equation is used to model option prices on financial markets. The Black-Scholes workload computes the Black-Scholes formula: a special case solution of the Black-Scholes equation for European call and put options.

  • Mandelbrot: The Mandelbrot set is a fractal. It is a useful floating point workload because it has a low memory bandwidth requirement.

  • Sharpen image: The sharpen image workload uses a standard image sharpening technique similar to those found in Photoshop or Gimp.

  • Blur image: Image blurring is also found in tools such as Photoshop. In Geekbench 3, the blur image workload is more computationally demanding than the sharpen workload.

  • SGEMM and DGEMM: GEMM is "general matrix multiplication." Matrix multiplication is a fundamental mathematical operation. It is used in physical simulations, signal processing, graphics processing, and many other areas.

  • SFFT and DFFT: The fast Fourier transform (FFT) workloads simulate the frequency analysis used to compute the spectrum view in an audio processing application such as Pro Tools.

  • N-Body: This workload computes a physical simulation similar to that required for a physics game placed in outer space.

  • Ray trace: The ray trace workload renders a 3D scene from a geometric description.

Memory workloads

  • STREAM copy: The stream copy workload tests how fast your computer can copy large amounts of data in memory. It executes a value-by-value copy of a large list of floating point numbers.

  • STREAM scale: This workload is similar to stream copy, but each value is multiplied by a constant during the copy.

  • STREAM add: The stream add workload reads two large lists of floating point numbers value-by-value, adds corresponding values, and stores the result in a third list.

  • STREAM triad: This workload combines stream add and stream scale. It reads two lists of floating point numbers value-by-value, multiplies one of the numbers by a constant, adds the result to the other number, and writes that result to a third list.