3

Is there any way to check if my CPU is working without errors? There are CPUburn and MPrime to stress-test the CPU and check for temperatures and throttling, but is there any program that will actually check for errors without necessarily stressing out the CPU? (E.g. compare multiple calculations and log silent errors, or similar?)

4
  • 1
    Errors? As in 4+4=5? What kind of errors?
    – terdon
    Nov 27, 2017 at 18:15
  • If calculations would give wrong answers, your system would crash constantly and probably won't even boot. CPUs probably also do self-testing when turned on. Nov 27, 2017 at 18:22
  • @terdon, maybe? I'm not sure what for example MemTest calculates and writes into memory, but I believe these values are also checked-back to make sure that they have been written correctly. I'm concerned with errors that may result in program crashes that are usually attributed to bugs in the code or errors that result in corrupted data being written to disc. @ SurvivalMachine: Is that a solid indicator of correct operation? For thorough memory testing there is MemTest or VMT, but are there any programs that check the integrity of the CPU, as well? Nov 27, 2017 at 18:57
  • Please edit your question and clarify. Explain exactly what you need to test. You can't "test the integrity of the CPU". If it works, it works. If it has failed, you will know. You seem to think that the CPU will give different results if you try enough times and I really doubt that could be possible.
    – terdon
    Nov 27, 2017 at 20:25

1 Answer 1

11

I suggest trying stress-ng with the cpu stressor and verify mode enabled:

sudo apt-get install stress-ng
stress-ng --cpu 0 --verify --verbose --timeout 5m

The above with run the CPU stress test with verification enabled on all CPUs for 5 minutes. If there is something broken, the verify mode may just detected it.

The CPU stressor will exercise the following CPU stress test methods: ackermann bitops callfunc cdouble cfloat clongdouble correlate crc16 decimal32 decimal64 decimal128 dither djb2a double euler explog fft factorial fibonacci float fnv1a gamma gcd gray hamming hanoi hyperbolic idct int128 int64 int32 int16 int8 int128float int128double int128longdouble int128decimal32 int128decimal64 int128decimal128 int64float int64double int64longdouble int32float int32double int32longdouble jenkin jmp ln2 longdouble loop matrixprod nsqrt omega parity phi pi pjw prime psi queens rand rand48 rgb sdbm sieve stats sqrt trig union zeta.

Consult the stress-ng manual using man stress-ng for the full details of these cpu stressors.

3
  • 0 isn't a valid cpu count. and --verify is unrecognized.
    – chovy
    Mar 8, 2023 at 5:05
  • @chovy at least on Debian 12 (stress-ng version 0.15.06, kernel 6.1.0-13-amd64) --verify is an option and --verifiable lists on which stressors it applies. Also, --cpu -1 leads to total number of threads (24) whereas --cpu 0 uses 32 stressors in my case. I can't tell the relation, but it indeed works, unlike program refusing to run when no options provided (errors No stress workers invoked). Could you add your system for search engine people to compare?
    – cbugk
    Dec 13, 2023 at 21:24
  • I just ran it, and the difference between -1 and 0 seems to be number of configured and online threads. Understandable for an 5900x to behave like a cropped 5950x. That must be the relation.
    – cbugk
    Dec 13, 2023 at 21:31

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .