# rieMiner/Benchmarks

This page shows some rieMiner benchmark results in order to help comparing different processors, provide an idea on how to tune the parameters, or highlight some observations about current Riecoin mining.

## Ratios and blocks per day

As mentioned in the benchmarking guide and the Stella page, the ratio is an essential metric of Riecoin mining, the candidates/s metric alone does not mean much usually. Due to how the mining algorithm is constructed, it is actually possible to compute it using the formula

$r^{*}=\log(2^{D})\prod _{p=2{\text{ prime}}}^{L}{\frac {p-1}{p}}=D\log(2)\prod _{p=2{\text{ prime}}}^{L}{\frac {p-1}{p}}$ $D$ is the Difficulty (searched numbers will be around $2^{D}$ ), $L$ the Prime Table Limit. $\log(2)\approx 0.69314718056$ .

It is not obvious in normal circumstances that the ratios between $k$ and $(k+1)$ -tuples counts or rates are the same for any $k$ , though the tendency may be observed after long mining sessions or if generating very large numbers of tuples in a benchmark.

Here are some values of the product for various PrimeTableLimits.

$L$ Product
$2^{35}=34359738368$ 0.0231432770
$2^{34}=17179869184$ 0.0238239564
$2^{33}=8589934592$ 0.0245458897
$2^{32}=4294967296$ 0.0253129494
$2^{31}=2147483648$ 0.0261294878
$2^{30}=1073741824$ 0.0270004472

Calculated ratios will be used in the benchmarks below. The blocks/day is then given by

${\text{Blocks per day}}=86400{\frac {\text{Candidates per second}}{{r^{*}}^{k}}}$ $k$ is the constellation length, 7 since the second fork.

## Results

Except when mentioned, an AMD Ryzen R7 3700X was used for the benchmarks, using all the 16 threads, and default settings were used; the constellation pattern is 0, 2, 4, 2, 4, 6, 2 (7-tuples). The benchmarks were done during a Debian 10 Live USB session. rieMiner was recompiled for the machine during the live session just before the benchmarks.

### Different processors

Here are benchmarks with different CPUs.

• rieMiner 0.93 except if mentioned otherwise
• Difficulty 1024;
• 150 s Block Interval, during 16 minutes;
• Prime Table Limit $2^{31}$ . By default, 1 Sieve Worker and 25 Sieve Bits;
• The calculated ratio is used, $r^{*}\approx 1024\times \log(2)\times 0.0261294878\approx 18.546259$ .

The turbo/boost features were disabled and the CPU always ran at the mentioned frequency.

$a$ is a normalized metric, and corresponds to the candidates/s without HT/SMT divided by the number of cores and the GHz, yielding a result that can be interpreted as the architecture performance (speed of a single core at 1 GHz for this benchmark). This number is useful to make Riecoin profitability calculators like this one as various processors with the same architecture should have a similar $a$ . The list is sorted by this metric.

Lines with darker background are benchmarks done with actual hardware. Others were extrapolated.

Don't compare these values with the ones that you currently obtain while mining! To compare your CPU, you must run the Benchmark Mode in the same conditions as these benchmarks (see above)!

Processor (memory) Architecture c/s r* b/d a Remarks or specific parameters
AMD Ryzen R9 5950X @ 4 GHz (DDR4 3200 CL14) Zen 3 46137.3 18.546 5.282 554.0 Extrapolated from 3700X using 19% IPC improvement over Zen 2. 35456.6 c/s extrapolated without SMT (speedup 1.301x).
Intel Core i7-10900K @ 4 GHz (DDR4 3200 CL14) Skylake 21162.5 18.546 2.422 472.4 Extrapolated using old rieMiner benchmarks for 6700K. HT speedup assumed to be 1.12x (18895.1 c/s).
AMD Ryzen R7 3700X @ 4 GHz (DDR4 3200 CL14) Zen 2 19385.4 18.546 2.219 465.6 rieMiner 0.92, 4 Sieve Workers. 14897.8 c/s for 8 Threads (3 Sieve Workers), meaning that the SMT speedup is about 1.301x.
AMD Ryzen R7 2700X @ 4 GHz (DDR4 3200 CL14) Zen+ 16446.4 18.546 1.882 395.0 Extrapolated from 3700X using old rieMiner benchmarks. 12639.2 c/s extrapolated without SMT (speedup 1.301x).
AMD Ryzen R7 1800X @ 4 GHz (DDR4 3200 CL14) Zen 15663.2 18.546 1.793 376.2 Extrapolated from 2700X assuming 5% IPC improvement over Zen. 12037.3 c/s extrapolated without SMT (speedup 1.301x).
Intel Core i7-5775C @ 4 GHz (DDR3 1600 CL8) Broadwell 7614.8 18.546 0.872 427.5 rieMiner 0.92, 2 Sieve Workers. 6839.5 c/s for 4 Threads (1 Sieve Worker), meaning that the HyperThreading speedup is about 1.113x.
Intel Core i7-4790K @ 4 GHz (DDR3 1600 CL8) Haswell 6406.5 18.546 0.733 369.1 rieMiner 0.92, 2 Sieve Workers. 5905.0 c/s for 4 Threads (1 Sieve Worker), meaning that the HyperThreading speedup is about 1.0849x.
Intel Core i7-3770K @ 4 GHz (DDR3 1600 CL8) Ivy Bridge 5910.4 18.546 0.677 327.9 rieMiner 0.92, 2 Sieve Workers. 5245.7 c/s for 4 Threads (1 Sieve Worker), meaning that the HyperThreading speedup is about 1.127x.
Intel Core i7-2700K @ 4 GHz (DDR3 1600 CL8) Sandy Bridge 5628.9 18.546 0.644 312.2 Extrapolated from 3770K assuming 5% IPC improvement over Sandy Bridge. 4995.9 c/s extrapolated without HT (speedup 1.127x).
AMD Phenom II X6 1100T @ 13 x 0.3 = 3.9 GHz (DDR3 1600 CL8) K10 6933.53 18.546 0.794 296.2 2 Sieve Workers, 24 Sieve Bits.
Intel Core i7-875K @ 4 GHz (DDR3 1600 CL8) Nehalem 4690.8 18.546 0.537 261.8 Extrapolated from 2700K assuming 20% IPC improvement over Nehalem. HT speedup assumed to be 1.12x (4188.2 c/s).
AMD Athlon 64 X2 6400+ @ 3.2 GHz (DDR2 800 CL5) K8 1498.2 18.546 0.172 234.1 23 Sieve Bits.
Intel Core 2 Quad QX9650 @ 4 GHz (DDR3 1600 CL8) Core 2 3707.1 18.546 0.424 231.7 rieMiner 0.92
AMD FX-8350 @ 13.5 x 0.3 = 4.05 GHz (DDR3 1600 CL8) Piledriver 7308.9 18.546 0.837 225.7 2 Sieve Workers.
Broadcom BCM2711 @ 1.6 GHz Cortex-A72 918.1 18.546 0.105 143.5 rieMiner 0.92, Raspberry Pi 4, rieMinerL, Raspberry Pi OS 64 bits, 23 Sieve Bits, 24 Sieve Iterations
Intel Pentium D 965 @ 4 GHz (DDR3 1067 CL6) Netburst 806.6 18.546 0.0492 65.4 24 Sieve Bits. 523.3 c/s for 2 Threads, meaning that the HyperThreading speedup is about 1.54x.
Intel Atom D525 @ 1.8 GHz (DDR3 800 CL6) Bonnell 294.1 18.546 0.0336 40.1 24 Sieve Bits. 144.4 c/s for 2 Threads, meaning that the HyperThreading speedup is about 2x!

### Different memory speeds

We notice that memory speed does not matter much (despite rieMiner using a lot of memory) as much worse frequency and latency (DDR4 2400 CL18 vs 3200 CL14) is only about 3% slower.

• Difficulty 1024;
• PrimeTableLimit $2^{31}$ , 4 Sieve Workers, 150 s Block Interval, during 16 minutes;
• The calculated ratio is used, $r^{*}\approx 1024\times \log(2)\times 0.0261294878\approx 18.546259$ .
Memory Speed c/s r* b/d
DDR4 3200 CL14 19385.4 18.546 2.219
DDR4 3200 CL18 19025.1 18.546 2.178
DDR4 2400 CL14 19011.2 18.546 2.176
DDR4 2400 CL18 18794.4 18.546 2.152

The prime table generation is more sensitive to memory performance (especially the frequency).

Memory Speed Prime table generation time (s)
DDR4 3200 CL14 5.37404
DDR4 3200 CL18 5.63299
DDR4 2400 CL14 6.31868
DDR4 2400 CL18 6.55031

### Different Difficulties

The notable observation is that the ratio is proportional to the difficulty and follows the formula above. It also gives an idea about how the candidates/s metric depends on the difficulty, though the relation is difficult to establish. It can be approximated by the assumption that it is proportional to about $D^{-2.2}$ - $D^{-2.6}$ ($D^{-2.3}$ is used in the Riecoin protocol).

• Benchmark Mode;
• PrimeTableLimit $2^{31}$ , 1 Sieve Worker (except for 1024 where 4 are needed), no blocks, during 15 minutes;
• r is the actual ratio, r* the calculated ratio, the latter is used to calculate the blocks/day.
Difficulty c/s r r* b/d Inverse c/s factor ($\log _{\frac {D}{1024}}$ )
8192 100.2 156.58 148.370 0.00000000547 197.537 (2.542)
6144 205.0 111.10 111.278 0.0000000839 96.541 (2.551)
4096 561.4 74.04 74.185 0.00000392 35.260 (2.570)
3072 1256.7 56.47 55.639 0.0000658 15.751 (2.509)
2048 3703.0 37.10 37.093 0.00331 5.346 (2.418)
1536 7909.3 27.75 27.819 0.0530 2.503 (2.263)
1024 19795.2 18.54 18.546 2.266 1.000

For example, mining at difficulty 3072 is about $3^{k+2.509}$ times harder than at difficulty 1024.

### Different Prime Table Limits

These benchmarks highlight the importance of the PrimeTableLimit parameter and that it is important to not just look at the candidates/s metric. They were run at Difficulty 2048 as there is no CPU Underuse with only 1 Sieve Worker in every case. The higher the PrimeTableLimit is, the lower is the ratio, but also the candidates per second.

• Difficulty 2048;
• 1 Sieve Worker, no blocks, during 15 minutes;
• r is the ratio, r* the calculated ratio, the latter is used to calculate the blocks/day.
PrimeTableLimit c/s r r* b/d
$2^{34}=17179869184$ 3334.6 33.95 33.820 0.005693
$2^{33}=8589934592$ 3536.9 34.89 34.844 0.004900
$2^{32}=4294967296$ 3641.8 35.96 35.933 0.004068
$2^{31}=2147483648$ 3703.7 37.10 37.093 0.003312
$2^{30}=1073741824$ 3738.7 38.38 38.329 0.002658
$2^{24}=16777216$ 3806.8 47.81 47.911 0.000567
$2^{16}=65536$ 3843.1 71.99 71.849 0.000033

Despite the candidates/s being lower at higher difficulties, the blocks/days are better.

### Different Constellation Patterns

• Difficulty 2048;
• No blocks, during 15 minutes;
• Prime Table Limit $2^{31}$ . By default, 1 Sieve Worker and 25 Sieve Bits;
• The calculated ratio is used, $r^{*}\approx 2048\times \log(2)\times 0.0261294878\approx 37.092517$ .
Length Pattern c/s r* b/d Remarks
5 0, 2, 6, 8, 12 3778.6 37.093 4.649
6 0, 4, 6, 10, 12, 16 3767.9 37.093 0.125
7 0, 2, 6, 8, 12, 18, 20 3703.7 37.093 0.00331
8 0, 2, 6, 8, 12, 18, 20, 26 3534.3 37.093 0.0000852
9 0, 2, 6, 8, 12, 18, 20, 26, 30 3002.0 37.093 0.00000195 3 Sieve Workers