Eric Liu 67aec7aa01 Bump project version to 2.2.0
- Update CMakeLists.txt project version from 20181130 to 2.2.0
- Align version number with current project development state
2025-02-01 07:22:08 +00:00
2020-05-08 13:33:05 -07:00
2020-05-08 13:33:05 -07:00
2020-05-08 13:33:05 -07:00
2020-11-09 13:03:39 -08:00
2020-11-09 13:03:39 -08:00
2025-02-01 07:22:08 +00:00
2020-11-09 13:03:39 -08:00
2020-11-09 13:03:39 -08:00
2020-11-09 13:03:39 -08:00
2020-05-08 13:33:05 -07:00
2020-05-08 13:33:05 -07:00
2020-11-09 13:03:39 -08:00
2020-05-08 13:33:05 -07:00
2020-05-08 13:33:05 -07:00
2020-05-08 13:33:05 -07:00
2020-11-09 13:03:39 -08:00
2020-11-09 13:03:39 -08:00
2020-05-08 13:33:05 -07:00
2020-11-09 13:03:39 -08:00
2020-11-09 13:03:39 -08:00
2020-05-08 13:33:05 -07:00
2020-05-08 13:33:05 -07:00
2020-11-09 13:03:39 -08:00
2020-11-09 13:03:39 -08:00
2020-11-09 13:03:39 -08:00
2020-11-09 13:03:39 -08:00
2020-11-09 13:03:39 -08:00
2020-11-09 13:03:39 -08:00
2020-11-09 13:03:39 -08:00

CPU Check

CPU torture test designed for SMP systems, attempting to find CPU hardware faults, focusing primarily on the x86_64 architecture.

The basic operation is to:

  • Run threads with affinity fixed to each logical CPU.
  • Generate a chunk of random data, either dictionary based text, or random binary data.
  • Run a number of checksum/hash algorithms over the data, store their results.
  • Compress the data via one of (zlib, ...).
  • Encrypt the data via AES-256-GCM.
  • Copy the data ('rep movsb' on x86, else memcpy).
  • Switch affinity to an alternate logical CPU.
  • Decrypt.
  • Decompress.
  • Run checksum/hash algorithms and compare with stored results.

Algorithms are chosen to exercise various hardware extensions. Eg. on x86_64, SSE4.2, AVX, etc.

Prerequisites:

Designed to run under Unix/Linux OS.

Note that Abseil must be built with the C++17 standard and include the StatusOr package (release 2020_09_23 or later).

Building

sh$ git clone --recursive  https://github.com/google/cpu-check.git
sh$ cd cpu-check
sh$ mkdir build
sh$ cd build
sh$ cmake ..
sh$ make

Options

Some options have been implememented that affect the build, which may be passed to cmake via, eg:

cmake -DCMAKE_BUILD_TYPE=(Debug|Release)

  • CMAKE_BUILD_TYPE=(Release|Debug)
  • USE_CLANG=(ON|OFF)
  • BUILD_STATIC=(ON|OFF)

TODO:

Description
No description provided
Readme 223 KiB
Languages
C++ 94%
CMake 3.9%
C 2.1%