Eric Liu eb3c9ac653
Some checks failed
Build / build (push) Has been cancelled
Modify build workflow to disable static build and update Abseil library dependency
Change CMake configuration to build dynamic libraries and update the required Abseil library package to libabsl20220623t64
2025-01-28 06:51:29 +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
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-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-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
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%