Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
'BandInte' - Bandwidth & Integer prowess of your machine, GUI
#1
Here comes a CPU benchmark generating one picture with stats, screenshot-ready, hee-hee. Thus, every random machine can be evaluated.

Many times I need a tool reporting the transferring speed of uncached RAM and a metric for CPU's ability (across all cores) in supersimple integer calculations (inhere, factorizing numbers):

Code: (Select All)
    for (i = 2; i <= n; i++) {
        while (n % i == 0) {
            n /= i;
        }
    }

Cannot resist the simplicity and throwing this two-level loop to all available threads. Since it doesn't stress caches and uncached RAM, it serves as the closest equivalent to getting the RAW and CUMULATIVE power of the CPU in "MHz" i.e. frequency department. Meaning, the resultant number represents the ability of CPU to ... loop.

The used number is 4*4096 numbers for factorization, my slowest laptop (4 threads) calculates them in ~4000 seconds whereas my fastest (8 threads) in ~2000 seconds, it might seem unnecessarily big but it is not since a formidable Threadripper has 128 threads, the benchmark has to cover it.

My laptop 'Djudjeto':

   

My laptop 'Dzvertcheto':

   

So, I wrote two console tools in C doing that, utilizing all the availble cores, they are invoked by QB64PE GUI and using the superb @OldMoses MagScope, the resultant lines are easily viewable - on any monitor (including 1366x768 modes).

All the sourcecodes are included into the attached package, even though it is fully portable, in reality it is effective/useful only in Linux environment, simply latest GCC and CLANG generated too far away from one another code. CLANG, being 2x faster, didn't dig what causes this huge gap...

Oh, since the BANDWIDTH reporter sums all the QWORDS within the memory block it is some ~2GB/s below the value reported by the AIDA's Memory Read, once I asked one of the authors of their benchmarks few things, he said that AIDA uses hand-written highly optimized Assembler. I chose different path, using C summing all the QWORDS with all the threads within AVX2 vectors, this makes it less synthetic and more reliable.

The benchmark uses 4GB and 6GB with Celeron and AVX2 capable CPUs, respectively. So, 8GB RAM are needed.

Glad that one picture can tell thousand words.


Attached Files
.tar   Shefoxette_r1+.tar (Size: 37.36 MB / Downloads: 28)
"He learns not to learn and reverts to what the masses pass by."
Reply


Messages In This Thread
'BandInte' - Bandwidth & Integer prowess of your machine, GUI - by Sanmayce - 03-14-2024, 01:36 AM



Users browsing this thread: 1 Guest(s)