iconcharts
0

CPU Benchmarks

Over 1,000,000 CPUs Benchmarked

CPU Test Information

CPU Benchmark results (“Baselines”) were gathered from users’ submissions to the PassMark web site as well as from internal testing. PerformanceTest conducts eight different tests and then averages the results together to determine the CPU Mark for a system.

To ensure that the full CPU power of a PC system is realized, PerformanceTest runs each CPU test on all available CPUs. Specifically, PerformanceTest runs one simultaneous CPU test for every logical CPU (Hyper-threaded); physical CPU core (dual core) or physical CPU package (multiple CPU chips). So hypothetically if you have a PC that has two CPUs, each with dual cores that use hyper-threading then PerformanceTest will run eight simultaneous tests.

The following list describes each of the tests performed. In all cases a higher score is better.

Integer Maths Test

The Integer Math Test aims to measure how fast the CPU can perform mathematical integer operations. An integer is a whole number with no fractional part. This is a basic operation in all computer software and provides a good indication of 'raw' CPU throughput. The test uses large sets of an equal number of random 32-bit and 64-bit integers and adds, subtracts, multiplies and divides these numbers. This tests uses integer buffers totaling about 240kb per core.

Compression Test

The Compression Test measures the speed that the CPU can compress blocks of data into smaller blocks of data without losing any of the original data. The result is reported in Kilobytes per Second. This test uses complex data structures and complex data manipulation techniques to perform a function that is very common in software applications, ranging from backup software to Email software. The compression test uses Crypto++ 8.6 Gzip (based on the DEFLATE compression algorithm). This tests uses memory buffers totaling about 4MB per core.

Prime Number Test

The Prime Number Test aims to test how fast the CPU can search for Prime numbers, reported as operations per second. A prime number is a number that can only be divided by itself and 1. For example, 1, 2, 3, 5, 7, 11 etc. This algorithm uses loops and CPU operations that are common in computer software, the most intensive being multiplication and modulo operations. All operations are performed using 64-bit integers. This test uses about 4MB of memory per thread. The specific formula used for this test is the Sieve of Atkin with a limit of 32 million. This test is also dependent on memory speeds, CPUs with better memory bandwidth will perform better in this test.

Encryption Test

The Encryption Test encrypts blocks of random data using several different encryption techniques, such that the resulting data can only be accessed by someone with the encryption key. It also tests the computers ability to create a hash of the data, which is also a common cryptographic technique that can be used to ensure the contents of data are not tampered with. The methods used are AES, SHA256 and ECDSA. This test uses many of the techniques in the maths test, but also uses a large amount of binary data manipulation and CPU mathematical functions like 'to the power of'. Encryption is a very useful benchmark, as it is now very widely used in software applications, ranging from Internet browsers, communications software and many different business applications. This tests uses memory buffers totaling about 1MB per core. Where available, the test will make use of specialized CPU instruction sets to accelerate performance, such as AES-NI for the AES test. Crypto++ 8.6 is used for the Encryption Test

Floating Point Math Test

The Floating Point Math Test performs the same operations as the Integer Maths Test however with floating point numbers, using an equal amount of single precision (32-bit) and double precision (64-bit) values. A floating point number is a number with a fractional part (ie. 12.568). These kinds of numbers are handled quite differently in the CPU compared to Integer numbers as well as being quite commonly used, therefore they are tested separately. This tests uses memory buffers totaling about 240kb per core and uses an instruction mix of 30% addition, 30% subtraction, 30% multiplication and 10% division.

Extended Instructions Test

The Extended Instructions test will perform testing using sub-tests for SSE, FMA, AVX, AVX512 and NEON (or only those that are supported) and take the average of the sub-tests run for the benchmark result. AVX512, FMA and AVX are new CPU instruction sets that have become available over the last few years on Intel and AMD CPUs. They were designed to make certain mathematical operations faster.

Subtests what would try to run depending on PT version and architecture:

C++/Basic SSE FMA AVX AVX512 NEON
PerformanceTest Windows x86 x x x x x
PerformanceTest Windows ARM x x x
PerformanceTest Linux x86 x x x x x
PerformanceTest Linux ARM x x x
PerformanceTest Mac x86 x x x x x
PerformanceTest Mac ARM x x x

Note: C++/Basic subtest is not counted towards the average score if other subtests are able to be run

String Sorting Test

The String Sorting Test uses the qSort algorithm to see how fast the CPU can sort strings (single byte characters). A very common task in many applications. This tests uses memory buffers totaling about 25MB per core.

Physics Test

The Physics Test uses the Bullet Physics Engine (version 2.88 for x86, 3.07 for ARM) to perform a benchmark of how fast the CPU can simulate the physics interactions. The test repeats the first several seconds of the simulation as many times as possible within the test duration. The test can use a large amount of RAM, especially on CPUs with a large number of CPU cores. So this test is also dependent on memory speeds, CPUs with better memory bandwidth will perform better in this test.

Single Threaded Test

The single Threaded test only uses one logical CPU core and rates the computers performance under these conditions. Many applications still only use one core so this is an important metric, additionally many modern CPUs will automatically over-clock themselves when only a single core is in use to boost performance in these scenarios. The single threaded test is an aggregate of the floating point, string sorting and data compression tests.

Cross-platform Mark

This is a composite average of the Integer, Floating point, prime and sorting test scores and functions as a CPU mark that can be compared to the cross-platform mark in the mobile verison of PerformanceTest. These tests were chosen as the code used to perform the tasks is almost identical between the PC and mobile versions of PerformanceTest.This test is not included as part of the CPU mark calculation (as it is a subset of tests that have already been run).

Comparing Version 9 Results with Version 10

Due to the changes to the existing tests results have changed between version 9 and version 10.

  • CPU Mark - Due to changes to most of the CPU tests the individual test results are much higher in V10 which has resulted in the CPU mark being higher. It is scaled down to be close to (but not exactly the same as) V9.
  • The Integer test has been changed to perform more operations.
  • The compression test has been replaced with a new version using Crypto++ Gzip.
  • The encryption test has been changed, it will no longer do salsa and twofish encryption and instead will run an ECDSA test.
  • The extended instructions test had some internal changes to the data structures used and fixed some memory access issues so now the test will run faster.
  • Compiler optimizations that were previously disabled around the CPU tests have been enabled which has increased their performance on most systems.

Compilers

PerformanceTest 11

  • Windows: Visual Studio 2022 17.6.5
  • Linux arm32/arm64: gcc-linaro-4.9.4-2017.01 toolchain
  • Linux x86_64: gcc 4.9
  • Mac x86_64/arm64: XCode 12.5 (CLANG 12.0.5)