tevador / RandomX

Proof of work algorithm based on random code execution
BSD 3-Clause "New" or "Revised" License
1.43k stars 306 forks source link

Performance and portability testing #25

Closed tevador closed 5 years ago

tevador commented 5 years ago

Please post:

  1. Your CPU, RAM parameters, operating system and compiler (if you compiled yourself).
  2. Verification mode results.
  3. Mining mode results (optional).

Precompiled binaries are available for Windows 64-bit and Ubuntu/Debian x86-64. Download the latest release here: https://github.com/tevador/RandomX/releases

Verification mode

Run as:

randomx --verify --softAes

Mining mode

Mining mode is currently only supported on 64-bit x86 CPUs. Requires at least 2.25 GiB of RAM. Run as:

randomx --mine --init Q --threads T --nonces N
tevador commented 5 years ago

Raspberry Pi 3

ARM Cortex-A53, 1.2 GHz, 1 GB LPDDR2, Ubuntu 16.04 armv7l (32-bit), compiled with GCC 8.1.0

> bin/randomx --verify --softAes
Using software AES.
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 8.55579 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Reference result:  fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Performance: 578.734 ms per hash

AMD Ryzen 7 1700

Clocked at 3.35 GHz (Turbo disabled), 16 GB of DDR4-2933 (dual channel), Ubuntu 16.04 x86_64, compiled with GCC 8.1.0

> bin/randomx --verify --largePages
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 0.6282 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Reference result:  fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Performance: 55.5542 ms per hash
> bin/randomx --mine --largePages --init 16 --threads 8 --nonces 1000000
RandomX - mining mode
Initializing (16 threads) ...
Dataset (4 GiB) initialized in 9.40938 s
Initializing 8 virtual machine(s) ...
Running benchmark (1000000 nonces) ...
Calculated result: 9979734c3f8a2f665810851050aaf8a63d6bc9810cfecee9d55a3706a81266fd
Performance: 4124.02 hashes per second

Intel Core i7-8550U

Boosts to ~3.5 GHz at the beginning, then throttles down to ~2.4 GHz (mining mode). 16 GB of DDR4-2400 (dual channel), Windows 10 64-bit, compiled with Visual Studio 2017 15.8.3

>randomx.exe --verify --largePages
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 0.576263 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Reference result:  fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Performance: 28.8373 ms per hash
>randomx.exe --mine --largePages --init 8 --threads 4 --nonces 100000
RandomX - mining mode
Initializing (8 threads) ...
Dataset (4 GiB) initialized in 14.2439 s
Initializing 4 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: abe4b79b0439e54e2896e0134cc89c8bb1b7a378192095efc690f8f85699a225
Performance: 1678.74 hashes per second
SamsungGalaxyPlayer commented 5 years ago

Intel Core i7-7700HQ

16GB of DDR4. Base speed 2.8GHz. Boosts to ~3.5GHz in testing. L3 cache 6MB. Windows 10 64-bit. Used precompiled binaries.

./randomx.exe --verify RandomX - verification mode Initializing ... Cache (256 MiB) initialized in 0.906537 s Initializing 1 virtual machine(s) ... Running benchmark (1000 nonces) ... Calculated result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851 Reference result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851 Performance: 49.6185 ms per hash

./randomx.exe --mine --init 8 --threads 3 --nonces 100000 RandomX - mining mode Initializing (8 threads) ... Dataset (4 GiB) initialized in 20.02 s Initializing 3 virtual machine(s) ... Running benchmark (100000 nonces) ... Calculated result: abe4b79b0439e54e2896e0134cc89c8bb1b7a378192095efc690f8f85699a225 Performance: 753.452 hashes per second

./randomx.exe --mine --init 4 --threads 3 --nonces 100000 RandomX - mining mode Initializing (4 threads) ... Dataset (4 GiB) initialized in 30.4974 s Initializing 3 virtual machine(s) ... Running benchmark (100000 nonces) ... Calculated result: abe4b79b0439e54e2896e0134cc89c8bb1b7a378192095efc690f8f85699a225 Performance: 782.408 hashes per second

tevador commented 5 years ago

@SamsungGalaxyPlayer Can you try --largePages? With 16 GB, you should have no issues with contiguous memory.

ghost commented 5 years ago

Intel Core i5-8250U CPU @ 1.60GHz 8GB DDR4, L3 Cache 6 MB

$ ./randomx --verify
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 0.769388 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Reference result:  fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Performance: 42.6374 ms per hash
./randomx --mine --init 8 --threads 6 --nonces 100000
RandomX - mining mode
Initializing (8 threads) ...
Dataset (4 GiB) initialized in 20.5339 s
Initializing 6 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: abe4b79b0439e54e2896e0134cc89c8bb1b7a378192095efc690f8f85699a225
Performance: 1021.56 hashes per second

Compiled latest commit 18ca8b5, Arch Linux, gcc 8.2.1 20181127

theksk commented 5 years ago

Intel(R) Xeon(R) CPU E5506 @ 2.13GHz

./randomx --verify --softAes Using software AES. RandomX - verification mode Initializing ... Cache (256 MiB) initialized in 1.7613 s Initializing 1 virtual machine(s) ... Running benchmark (1000 nonces) ... Calculated result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851 Reference result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851 Performance: 132.288 ms per hash

hyc commented 5 years ago

AMD Ryzen Mobile Pro 2700U @ 2.20GHz, 32GB DDR4-2400 Ubuntu 18.10, gcc (Ubuntu 8.2.0-7ubuntu1) 8.2.0

vielle:/home/software/RandomX> bin/randomx --verify  --largePages
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 0.616493 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Reference result:  fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Performance: 60.0637 ms per hash
vielle:/home/software/RandomX> bin/randomx --mine --init 8 --threads 4 --nonces 100000 --largePages
RandomX - mining mode
Initializing (8 threads) ...
Dataset (4 GiB) initialized in 14.8269 s
Initializing 4 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: abe4b79b0439e54e2896e0134cc89c8bb1b7a378192095efc690f8f85699a225
Performance: 1372.41 hashes per second
hyc commented 5 years ago

Geekbox (Rockchip RK3368, 8xARM Cortex-A53 @ 1.5GHz, 2GB RAM) Debian Jessie, gcc (Debian/Linaro 4.9.2-10) 4.9.2

geekbox@geekbox:/home/software/RandomX$ bin/randomx --verify --softAes
Using software AES.
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 4.05107 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Reference result:  fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Performance: 447.505 ms per hash

I'm a bit overwhelmed with work at the moment, but I can get ARM AES working after my next conference is over in a couple weeks. Or someone else can beat me to it if they like.

klp18 commented 5 years ago

Xeon E5-2670v2 @ 2.50Ghz (2 processors), 128GB ECC DD3 Windows Server 2012 R2

C:\Users\Administrator\Desktop\randomx>randomx --verify
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 2.08985 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Reference result:  fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Performance: 88.0998 ms per hash

C:\Users\Administrator\Desktop\randomx>randomx --verify --largePages
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 1.50766 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Reference result:  fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Performance: 81.2674 ms per hash

C:\Users\Administrator\Desktop\randomx>randomx --mine --largePages --init 20 --threads 12 --nonces 100000
RandomX - mining mode
Initializing (20 threads) ...
Dataset (4 GiB) initialized in 11.2982 s
Initializing 12 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: abe4b79b0439e54e2896e0134cc89c8bb1b7a378192095efc690f8f85699a225
Performance: 3556.08 hashes per second

C:\Users\Administrator\Desktop\randomx>randomx --mine --largePages --init 40 --threads 25 --nonces 100000
RandomX - mining mode
Initializing (40 threads) ...
Dataset (4 GiB) initialized in 7.52452 s
Initializing 25 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: abe4b79b0439e54e2896e0134cc89c8bb1b7a378192095efc690f8f85699a225
Performance: 4986.93 hashes per second
tevador commented 5 years ago

Try mining mode with only 10 threads. It might run faster than 12 threads because of L2 cache size.

klp18 commented 5 years ago

You mean L3? It is 25Mb per CPU (plus 2.5Mb L2). So 12 threads should be ok.

C:\Users\Administrator\Desktop\randomx>randomx --mine --largePages --init 20 --threads 10 --nonces 100000
RandomX - mining mode
Initializing (20 threads) ...
Dataset (4 GiB) initialized in 11.0515 s
Initializing 10 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: abe4b79b0439e54e2896e0134cc89c8bb1b7a378192095efc690f8f85699a225
Performance: 3164.38 hashes per second
tevador commented 5 years ago

OK. Someone tested an 8 core Xeon with 20 MB of cache in https://github.com/tevador/RandomX/issues/22 and got better performance with 8 threads than 10. So your case is different I guess. In any case, since your system has NUMA, you should run 2 instances of RandomX (one for each CPU) for a total of ~7000 H/s.

Gingeropolous commented 5 years ago

Note that the only system where the binary worked was an ubuntu 18 box. Everything else i had to compile

gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.11) 
model name      : Intel(R) Core(TM) i7-2700K CPU @ 3.50GHz
stepping        : 7
microcode       : 0x28
cpu MHz         : 1651.425
cache size      : 8192 KB
physical id     : 0
siblings        : 8
core id         : 0
cpu cores       : 4

mondaemon@jdc-user:~/randomx_test_20190220/RandomX/bin$ ./randomx --verify
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 0.896662 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Reference result:  fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Performance: 52.4011 ms per hash

mondaemon@jdc-user:~/randomx_test_20190220/RandomX/bin$ time ./randomx --mine --init 4 --threads 4 --nonces 40000
RandomX - mining mode
Initializing (4 threads) ...
Dataset (4 GiB) initialized in 25.8137 s
Initializing 4 virtual machine(s) ...
Running benchmark (40000 nonces) ...
Calculated result: c7aa337763ce1e317fa85f76bc48fd698fbbc90c3811625d5d98080251e148e6
Performance: 1221.14 hashes per second

real    0m58.683s
user    3m49.432s
sys 0m1.640s
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.11) 
model name      : Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz
stepping        : 9
microcode       : 0x8e
cpu MHz         : 800.205
cache size      : 8192 KB
physical id     : 0
siblings        : 8
core id         : 0
cpu cores       : 4

fastpc@fastpc-desktop:~/randomx_test_20190220/RandomX/bin$ ./randomx --verify
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 0.539419 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Reference result:  fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Performance: 32.1323 ms per hash

fastpc@fastpc-desktop:~/randomx_test_20190220/RandomX/bin$ time ./randomx --mine --init 4 --threads 7 --nonces 50000
RandomX - mining mode
Initializing (4 threads) ...
Dataset (4 GiB) initialized in 25.4099 s
Initializing 7 virtual machine(s) ...
Running benchmark (50000 nonces) ...
Calculated result: 2ef104fc3715a3d6a5f1c3da808061ea7d70d3b9e3b5bf671c5dea9c07acf86a
Performance: 1509.77 hashes per second

Now here's an interesting case. This is a 4 core virtual machine on top of a .... some kind of opteron. 6138 or something. nproc spits out 4, but /proc/cpuinfo shows 1.

gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.11) 
model name      : AMD Opteron 23xx (Gen 3 Class Opteron)
stepping        : 1
microcode       : 0x1000065
cpu MHz         : 2100.040
cache size      : 512 KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1

main12@main12-kvm:~/randomx_test_20190220/RandomX/bin$ ./randomx --verify --softAes
Using software AES.
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 2.9437 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: 1913e746e9cdeb21ccc2130cbe11b053a41248b6aa9b2947b00eb7512932830e
Reference result:  fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Performance: 183.997 ms per hash

main12@main12-kvm:~/randomx_test_20190220/RandomX/bin$ time ./randomx --mine --init 4 --threads 4 --nonces 200 --softAes
Using software AES.
RandomX - mining mode
Initializing (4 threads) ...
Dataset (4 GiB) initialized in 148.164 s
Initializing 4 virtual machine(s) ...
Running benchmark (200 nonces) ...
Calculated result: ac2827fcdd2c8f42a2808bb1bdff41d0fe17f8493c373d8de696a863b554ec1c
Performance: 63.5885 hashes per second
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) 
model name      : Intel(R) Core(TM) i5-3450 CPU @ 3.10GHz
stepping        : 9
microcode       : 0x20
cpu MHz         : 3278.613
cache size      : 6144 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 4

gingerale@gingerale-Inspiron-1545:~/randomx_20190220_testing/RandomX/bin$ ./randomx --verify
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 0.83772 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Reference result:  fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Performance: 61.319 ms per hash

gingerale@gingerale-Inspiron-1545:~/randomx_20190220_testing/RandomX/bin$ time ./randomx --mine --init 4 --threads 5 --nonces 50000
RandomX - mining mode
Initializing (4 threads) ...
Dataset (4 GiB) initialized in 26.5661 s
Initializing 5 virtual machine(s) ...
Running benchmark (50000 nonces) ...
Calculated result: 2ef104fc3715a3d6a5f1c3da808061ea7d70d3b9e3b5bf671c5dea9c07acf86a
Performance: 1083.29 hashes per second
binary worked
2 gigs ram, mining didn't work

model name      : AMD C-50 Processor
stepping        : 0
microcode       : 0x5000029
cpu MHz         : 800.216
cache size      : 512 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2

user@aspire1:~/randomx_test_20190220$ ./randomx --verify --softAes
Using software AES.
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 5.75274 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Reference result:  fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Performance: 381.602 ms per hash

user@aspire1:~/randomx_test_20190220$ ./randomx --mine --init 1 --threads 1 --nonces 2 --softAes
Using software AES.
RandomX - mining mode
Initializing (1 thread) ...
Dataset (4 GiB) initialized in 531.865 s
Initializing 1 virtual machine(s) ...
Running benchmark (2 nonces) ...
Calculated result: 5cd74da718d6d36db7a5b5d139d177b3b24264dc21cf41dff892b34fa2cee332
Performance: 0.00825968 hashes per second

And here's where I grumble about this 4 GB dataset again.

ubuntu 18 so  the bins work

model name      : Intel(R) Celeron(R) CPU G3900 @ 2.80GHz
stepping        : 3
microcode       : 0xc6
cpu MHz         : 800.136
cache size      : 2048 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2

monrig@monrig-MS-7977:~/randomx_test_20190220$ free -h
              total        used        free      shared  buff/cache   available
Mem:           3.8G        348M        3.1G         32K        351M        3.2G
Swap:          7.0G        731M        6.2G

monrig@monrig-MS-7977:~/randomx_test_20190220$ ./randomx --verify
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 0.799833 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Reference result:  fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Performance: 42.342 ms per hash

monrig@monrig-MS-7977:~/randomx_test_20190220$ ./randomx --mine --init 1 --threads 1 --nonces 1
RandomX - mining mode
Initializing (1 thread) ...
Dataset (4 GiB) initialized in 107.559 s
Initializing 1 virtual machine(s) ...
Running benchmark (1 nonces) ...
Calculated result: 007dd95406aa001eef124467fd37cea696ac84f5bc81dea789a5a22d8fb7cf76
Performance: 1.54605 hashes per second

I had to increase swap on the last one just to get it to mine. Is it going to require 8 GB of ram even if the box is just GPU mining? I mean, I'm definitely not pro GPU focused mining, but making every rig have a minimum of 8GB .... basically GPU miners try to get the things that run the GPUs as cheap as possible. Check the octominer. This thing maxes out at 8 GB ram. grumble grumble.

tevador commented 5 years ago

@Gingeropolous

model name      : AMD Opteron 23xx (Gen 3 Class Opteron)
...
Calculated result: 1913e746e9cdeb21ccc2130cbe11b053a41248b6aa9b2947b00eb7512932830e
Reference result:  fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851

Can you please do:

g++ -maes -march=native -O3 -DTRACE -c src/main.cpp -o obj/main.o
make
bin/randomx --verify --softAes

and pastebin the result?

And here's where I grumble about this 4 GB dataset again.

Even if those CPUs had enough RAM, I'm estimating the following hashrates:

Perhaps the Celeron G3900 would be worth it if you could find a cheap 4 GB stick to add to the system. But all these CPUs will have a very low performance per watt. My laptop can do ~1670 H/s at 30 W, so probably 5-10x the efficiency of these machines.

Trying to mine using the swap file is a pointless effort. If you insist to mine on a low-end system, you can mine in verification mode and at least get 5-25 H/s using just 256 MB of RAM.

lilyanatia commented 5 years ago

4x Xeon E5-4640 @ 2.5 GHz 128 GB ECC DDR3 (32 GB quad channel per node) Arch Linux, gcc 8.2.1

verification mode:

$ ./randomx --verify --largePages
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 1.17563 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Reference result:  fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Performance: 69.3351 ms per hash

mining mode:

$ seq 0 3 | xargs -P 0 -I node numactl -N node ./randomx --mine --largePages --nonces 1000000 --init 16 --threads 8
RandomX - mining mode
Initializing (16 threads) ...
RandomX - mining mode
Initializing (16 threads) ...
RandomX - mining mode
Initializing (16 threads) ...
RandomX - mining mode
Initializing (16 threads) ...
Dataset (4 GiB) initialized in 12.6244 s
Initializing 8 virtual machine(s) ...
Running benchmark (1000000 nonces) ...
Dataset (4 GiB) initialized in 13.1586 s
Initializing 8 virtual machine(s) ...
Running benchmark (1000000 nonces) ...
Dataset (4 GiB) initialized in 13.1965 s
Initializing 8 virtual machine(s) ...
Running benchmark (1000000 nonces) ...
Dataset (4 GiB) initialized in 13.3002 s
Initializing 8 virtual machine(s) ...
Running benchmark (1000000 nonces) ...
Calculated result: 9979734c3f8a2f665810851050aaf8a63d6bc9810cfecee9d55a3706a81266fd
Performance: 2554.73 hashes per second
Calculated result: 9979734c3f8a2f665810851050aaf8a63d6bc9810cfecee9d55a3706a81266fd
Performance: 2551.39 hashes per second
Calculated result: 9979734c3f8a2f665810851050aaf8a63d6bc9810cfecee9d55a3706a81266fd
Performance: 2543.19 hashes per second
Calculated result: 9979734c3f8a2f665810851050aaf8a63d6bc9810cfecee9d55a3706a81266fd
Performance: 2517 hashes per second

total hashrate: 10166.31 hashes per second

best result with a single process:

$ numactl -i all ./randomx --mine --largePages --nonces 1000000 --init 64 --threads 32
RandomX - mining mode
Initializing (64 threads) ...
Dataset (4 GiB) initialized in 9.44417 s
Initializing 32 virtual machine(s) ...
Running benchmark (1000000 nonces) ...
Calculated result: 9979734c3f8a2f665810851050aaf8a63d6bc9810cfecee9d55a3706a81266fd
Performance: 6940.36 hashes per second
lilyanatia commented 5 years ago

2x Xeon E5-2450L @ 2 GHz 6 GB ECC DDR3 (3 GB, triple channel per node) Arch Linux, gcc 8.2.1

$ ./randomx --verify --largePages
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 1.25896 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Reference result:  fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Performance: 80.4889 ms per hash
$ numactl -i all ./randomx --mine --largePages --nonces 100000 --init 32 --threads 16
RandomX - mining mode
Initializing (32 threads) ...
Dataset (4 GiB) initialized in 9.72395 s
Initializing 16 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: abe4b79b0439e54e2896e0134cc89c8bb1b7a378192095efc690f8f85699a225
Performance: 3961.66 hashes per second
Gingeropolous commented 5 years ago

@tevador , it was just grumbling.

Here's the results... i had to use pastebin

http://paste.debian.net/1069321/

tevador commented 5 years ago

@Gingeropolous Sorry, I missed some options on the command line.

Try again this:

g++ -std=c++11 -maes -march=native -O3 -DTRACE -flto -c src/main.cpp -o obj/main.o
make
bin/randomx --verify --softAes
Gingeropolous commented 5 years ago

@tevador ,

https://www.moneroworld.com/logs/randomx_test_20190221.txt

Gingeropolous commented 5 years ago

@tevador , i fixed it on that VM. When i changed the makefile earlier today i didn't make clean, so yeah. I

main12@main12-kvm:~/randomx_test_20190220/RandomX$ bin/randomx --verify --softAes
Using software AES.
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 3.03045 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Reference result:  fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851
Performance: 193.019 ms per hash
SChernykh commented 5 years ago

AMD Ryzen 5 2600 (6 cores), DDR4 2666 MHz (all stock), Windows 10.

Precompiled binary:

RandomX - mining mode
Initializing (12 threads) ...
Dataset (4 GiB) initialized in 10.3716 s
Initializing 6 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: abe4b79b0439e54e2896e0134cc89c8bb1b7a378192095efc690f8f85699a225
Performance: 3966.78 hashes per second

Binary compiled with GCC 8.2.0 on msys64:

RandomX - mining mode
Initializing (12 threads) ...
Dataset (4 GiB) initialized in 10.4535 s
Initializing 6 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: abe4b79b0439e54e2896e0134cc89c8bb1b7a378192095efc690f8f85699a225
Performance: 3967.49 hashes per second
tevador commented 5 years ago

I have pushed a new release with a different form of division instruction (issue #26). Slight performance increase can be expected (1-5%).

myself42 commented 5 years ago

i5-4310U 12GB (hp840G1 mint19.1)

numactl -i all ./randomx --mine --nonces 100000 --init 1 --threads 1

RandomX - mining mode
Initializing (1 thread) ...
Dataset (4 GiB) initialized in 108.793 s
Initializing 1 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: 5ae89ddb121558190540372d3b93189b490ba44435dee8c72ebde7cd976d8a5e
Performance: 304.541 hashes per second

numactl -i all ./randomx --mine --nonces 100000 --init 1 --threads 2

RandomX - mining mode
Initializing (1 thread) ...
Dataset (4 GiB) initialized in 112.114 s
Initializing 2 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: 5ae89ddb121558190540372d3b93189b490ba44435dee8c72ebde7cd976d8a5e
Performance: 513.354 hashes per second

numactl -i all ./randomx --mine --nonces 100000 --init 2 --threads 1

RandomX - mining mode
Initializing (2 threads) ...
Dataset (4 GiB) initialized in 60.5406 s
Initializing 1 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: 5ae89ddb121558190540372d3b93189b490ba44435dee8c72ebde7cd976d8a5e
Performance: 298.663 hashes per second

numactl -i all ./randomx --mine --nonces 100000 --init 2 --threads 2

RandomX - mining mode
Initializing (2 threads) ...
Dataset (4 GiB) initialized in 60.4542 s
Initializing 2 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: 5ae89ddb121558190540372d3b93189b490ba44435dee8c72ebde7cd976d8a5e
Performance: 502.217 hashes per second
Minervp commented 5 years ago

Intel Xeon E5-2651 v2 1.80GHz (2 processors) 8Gb Memory

RandomX - verification mode Initializing ... Cache (256 MiB) initialized in 1.23143 s Initializing 1 virtual machine(s) ... Running benchmark (1000 nonces) ... Calculated result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26 851 Reference result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26 851 Performance: 85.3171 ms per hash

RandomX - mining mode Initializing (12 threads) ... Dataset (4 GiB) initialized in 21.3293 s Initializing 24 virtual machine(s) ... Running benchmark (100000 nonces) ... Calculated result: abe4b79b0439e54e2896e0134cc89c8bb1b7a378192095efc690f8f85699a 225 Performance: 3717.61 hashes per second

myself42 commented 5 years ago

i5-4310U 12GB (hp840G1 mint19.1)

randomx --verify

RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 0.890826 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: d3ae5a9365196ed48bb98ebfc3316498e29443ea7f056ecbd272f749c6af7730
Reference result:  d3ae5a9365196ed48bb98ebfc3316498e29443ea7f056ecbd272f749c6af7730
Performance: 46.1011 ms per hash

randomx --verify --softAes

Using software AES.
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 0.918776 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: d3ae5a9365196ed48bb98ebfc3316498e29443ea7f056ecbd272f749c6af7730
Reference result:  d3ae5a9365196ed48bb98ebfc3316498e29443ea7f056ecbd272f749c6af7730
Performance: 45.9135 ms per hash
myself42 commented 5 years ago

i5-8500 8GB (Windows10beta1803)

randomx --verify

RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 0.643638 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: d3ae5a9365196ed48bb98ebfc3316498e29443ea7f056ecbd272f749c6af7730
Reference result:  d3ae5a9365196ed48bb98ebfc3316498e29443ea7f056ecbd272f749c6af7730
Performance: 31.3919 ms per hash

randomx --verify --softAes

Using software AES.
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 0.640813 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: d3ae5a9365196ed48bb98ebfc3316498e29443ea7f056ecbd272f749c6af7730
Reference result:  d3ae5a9365196ed48bb98ebfc3316498e29443ea7f056ecbd272f749c6af7730
Performance: 33.0118 ms per hash

randomx --mine --nonces 100000 --init 1 --threads 4

RandomX - mining mode
Initializing (1 thread) ...
Dataset (4 GiB) initialized in 82.6982 s
Initializing 4 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: 5ae89ddb121558190540372d3b93189b490ba44435dee8c72ebde7cd976d8a5e
Performance: 1498.43 hashes per second

randomx --mine --nonces 100000 --init 4 --threads 4

RandomX - mining mode
Initializing (4 threads) ...
Dataset (4 GiB) initialized in 23.553 s
Initializing 4 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: 5ae89ddb121558190540372d3b93189b490ba44435dee8c72ebde7cd976d8a5e
Performance: 1491.41 hashes per second

randomx --mine --nonces 100000 --init 6 --threads 6

RandomX - mining mode
Initializing (6 threads) ...
Dataset (4 GiB) initialized in 17.3481 s
Initializing 6 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: 5ae89ddb121558190540372d3b93189b490ba44435dee8c72ebde7cd976d8a5e
Performance: 1706.28 hashes per second

randomx --mine --nonces 100000 --init 6 --threads 5

RandomX - mining mode
Initializing (6 threads) ...
Dataset (4 GiB) initialized in 17.3604 s
Initializing 5 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: 5ae89ddb121558190540372d3b93189b490ba44435dee8c72ebde7cd976d8a5e
Performance: 1648.45 hashes per second

randomx --mine --nonces 100000 --init 6 --threads 8

RandomX - mining mode
Initializing (6 threads) ...
Dataset (4 GiB) initialized in 17.2848 s
Initializing 8 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: 5ae89ddb121558190540372d3b93189b490ba44435dee8c72ebde7cd976d8a5e
Performance: 1700.84 hashes per second
ghost commented 5 years ago

AMD Ryzen 6 9850 (128 cores) 256Gb Memory

RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 0.27183 s
Initializing 128 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: fs3leefd7ed1cecl73e87c06b4b66b38e58b23ab255e8f9c6b62745e43a26851
Reference result: fs3leefd7ed1cecl73e87c06b4b66b38e58b23ab255e8f9c6b62745e43a26851
Performance: 1.3281 ms per hash
OpticFlowX commented 5 years ago

HP DL580 G7: 4x E7-4830 (24M Cache, 2.13 GHz, 8 core) 64 GB DDR3-1066 (16 modules x 4GB, 16GB quad channel per node) Ubuntu Server 18.04

verification mode:

$ ./randomx --verify --largePages
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 1.6193 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: d3ae5a9365196ed48bb98ebfc3316498e29443ea7f056ecbd272f749c6af7730
Reference result:  d3ae5a9365196ed48bb98ebfc3316498e29443ea7f056ecbd272f749c6af7730
Performance: 113.487 ms per hash

mining mode (Power Reading at iLO3 = 726 Watts; Idle = 323 Watts)

$ seq 0 3 | xargs -P 0 -I node numactl -N node ./randomx --mine --largePages --nonces 1000000 --init 16 --threads 8
RandomX - mining mode
Initializing (16 threads) ...
RandomX - mining mode
Initializing (16 threads) ...
RandomX - mining mode
Initializing (16 threads) ...
RandomX - mining mode
Initializing (16 threads) ...
Dataset (4 GiB) initialized in 23.0033 s
Initializing 8 virtual machine(s) ...
Running benchmark (1000000 nonces) ...
Dataset (4 GiB) initialized in 23.0544 s
Initializing 8 virtual machine(s) ...
Running benchmark (1000000 nonces) ...
Dataset (4 GiB) initialized in 23.1518 s
Initializing 8 virtual machine(s) ...
Running benchmark (1000000 nonces) ...
Dataset (4 GiB) initialized in 23.2302 s
Initializing 8 virtual machine(s) ...
Running benchmark (1000000 nonces) ...
Calculated result: b13f5038492d3abfd14da6671f92c28456d96c29a5ffb120edac924abe5aabe9
Performance: 1968.31 hashes per second
Calculated result: b13f5038492d3abfd14da6671f92c28456d96c29a5ffb120edac924abe5aabe9
Performance: 1966.13 hashes per second
Calculated result: b13f5038492d3abfd14da6671f92c28456d96c29a5ffb120edac924abe5aabe9
Performance: 1961.65 hashes per second
Calculated result: b13f5038492d3abfd14da6671f92c28456d96c29a5ffb120edac924abe5aabe9
Performance: 1951.87 hashes per second

Single process mining (Power Reading at iLO3 = 704 Watts):

$ numactl -i all ./randomx --mine --largePages --nonces 1000000 --init 64 --threads 32
RandomX - mining mode
Initializing (64 threads) ...
Dataset (4 GiB) initialized in 8.9006 s
Initializing 32 virtual machine(s) ...
Running benchmark (1000000 nonces) ...
Calculated result: b13f5038492d3abfd14da6671f92c28456d96c29a5ffb120edac924abe5aabe9
Performance: 6774.47 hashes per second
tevador commented 5 years ago

@kdovijak

AMD Ryzen 6 9850 (128 cores)

AFAIK there is no such CPU and also your result doesn't match any version of RandomX. Can you please fix your comment and include the whole command line?

Minervp commented 5 years ago

Intel i7-4770 @3.4Ghz

RandomX - verification mode Initializing ... Cache (256 MiB) initialized in 0.6833 s Initializing 1 virtual machine(s) ... Running benchmark (1000 nonces) ... Calculated result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851 Reference result: fe31e8fd7ed1cec773e87c0684b66b38e58b23ab255e8f9c6b62745e43a26851 Performance: 31.9503 ms per hash

RandomX - mining mode Initializing (8 threads) ... Dataset (4 GiB) initialized in 16.6505 s Initializing 4 virtual machine(s) ... Running benchmark (100000 nonces) ... Calculated result: abe4b79b0439e54e2896e0134cc89c8bb1b7a378192095efc690f8f85699a225 Performance: 1821.36 hashes per second

ghost commented 5 years ago

I am sorry for that. Can you remove it please? It do not belong here, My mistake. I've never been here

@kdovijak AFAIK there is no such CPU and also your result doesn't match any version of RandomX. Can you please fix your comment and include the whole command line?

JustFranz commented 5 years ago

I am sorry for that. Can you remove it please? It do not belong here, My mistake. I've never been here

@kdovijak AFAIK there is no such CPU and also your result doesn't match any version of RandomX. Can you please fix your comment and include the whole command line?

What a curious thing to generate and post here

i7 3770K (cores boosted to 3.7-3.9 GHz during the test) ram is 16GB (4x4) dual channel DDR3 1866MHz 11-11-11-32

(randomx.exe --verify --largePages) RandomX - verification mode Initializing ... Cache (256 MiB) initialized in 0.695975 s Initializing 1 virtual machine(s) ... Running benchmark (1000 nonces) ... Calculated result: d3ae5a9365196ed48bb98ebfc3316498e29443ea7f056ecbd272f749c6af7730 Reference result: d3ae5a9365196ed48bb98ebfc3316498e29443ea7f056ecbd272f749c6af7730 Performance: 51.3777 ms per hash

(randomx.exe --mine --init 4 --threads 4 --nonces 10000 --largePages) RandomX - mining mode Initializing (4 threads) ... ERROR: allocLargePagesMemory - VirtualAlloc: Insufficient system resources exist to complete the requested service.

Anyone know what the problem is? Task manager shows 5GB of 16GB RAM used.

edit tried again after PC reboot and now results in BSOD


MEMORY_MANAGEMENT (1a)

Any other values for parameter 1 must be individually examined.

Arguments: Arg1: 0000000000061941, The subtype of the bugcheck. Arg2: 000001a080000000 Arg3: 000000000000000f Arg4: fffff98644f87b00

Debugging Details:

KEY_VALUES_STRING: 1

STACKHASH_ANALYSIS: 1

TIMELINE_ANALYSIS: 1

DUMP_CLASS: 1

DUMP_QUALIFIER: 400

BUILD_VERSION_STRING: 17763.1.amd64fre.rs5_release.180914-1434

DUMP_TYPE: 2

BUGCHECK_P1: 61941

BUGCHECK_P2: 1a080000000

BUGCHECK_P3: f

BUGCHECK_P4: fffff98644f87b00

BUGCHECK_STR: 0x1a_61941

CPU_COUNT: 8

CPU_MHZ: db6

CPU_VENDOR: GenuineIntel

CPU_FAMILY: 6

CPU_MODEL: 3a

CPU_STEPPING: 9

CUSTOMER_CRASH_COUNT: 1

DEFAULT_BUCKET_ID: WIN8_DRIVER_FAULT

PROCESS_NAME: randomx.exe

CURRENT_IRQL: 0

ANALYSIS_SESSION_HOST: DESKTOP-UDEN2FS

ANALYSIS_SESSION_TIME: 02-23-2019 19:22:26.0824

ANALYSIS_VERSION: 10.0.17763.132 x86fre

LAST_CONTROL_TRANSFER: from fffff8011604ae94 to fffff80115fb4440

STACK_TEXT:
fffff98644f87958 fffff8011604ae94 : 000000000000001a 0000000000061941 000001a080000000 000000000000000f : nt!KeBugCheckEx fffff98644f87960 fffff80115fc1f83 : ffffad0e654ac080 ffffad0e65918080 0000000000000000 ffffad0e65e42d60 : nt!MmAccessFault+0x142864 fffff98644f87b00 00007ff6f7d173cb : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : nt!KiPageFault+0x343 000000289e5ff870 0000000000000000 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : 0x00007ff6`f7d173cb

THREAD_SHA1_HASH_MOD_FUNC: 1feb98d5c6601cfab1575099bc1303f202ec7478

THREAD_SHA1_HASH_MOD_FUNC_OFFSET: 37bfc2bc4e861c90c544e608469bfd3b3b1f7f1d

THREAD_SHA1_HASH_MOD: 2a7ca9d3ab5386d53fea7498e1d81b9c4a4c036b

SYMBOL_NAME: ANALYSIS_INCONCLUSIVE

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: Unknown_Module

IMAGE_NAME: Unknown_Image

DEBUG_FLR_IMAGE_TIMESTAMP: 0

STACK_COMMAND: .thread ; .cxr ; kb

FAILURE_BUCKET_ID: 0x1a_61941_ANALYSIS_INCONCLUSIVE!unknown_function

BUCKET_ID: 0x1a_61941_ANALYSIS_INCONCLUSIVE!unknown_function

PRIMARY_PROBLEM_CLASS: 0x1a_61941_ANALYSIS_INCONCLUSIVE!unknown_function

TARGET_TIME: 2019-02-23T17:04:54.000Z

OSBUILD: 17763

OSSERVICEPACK: 316

SERVICEPACK_NUMBER: 0

OS_REVISION: 0

SUITE_MASK: 272

PRODUCT_TYPE: 1

OSPLATFORM_TYPE: x64

OSNAME: Windows 10

OSEDITION: Windows 10 WinNt TerminalServer SingleUserTS

OS_LOCALE:

USER_LCID: 0

OSBUILD_TIMESTAMP: unknown_date

BUILDDATESTAMP_STR: 180914-1434

BUILDLAB_STR: rs5_release

BUILDOSVER_STR: 10.0.17763.1.amd64fre.rs5_release.180914-1434

ANALYSIS_SESSION_ELAPSED_TIME: 822

ANALYSIS_SOURCE: KM

FAILURE_ID_HASH_STRING: km:0x1a_61941_analysis_inconclusive!unknown_function

FAILURE_ID_HASH: {5deef4f7-7ffd-da2a-fbcb-ad563ba13c90}

Followup: MachineOwner

tevador commented 5 years ago

@JustFranz Try running memtest86. RandomX definitely cannot cause BSOD. It looks like defective memory.

JustFranz commented 5 years ago

Just finsished memtest86, 4 passes 0 errors. My BIOS is latest for mobo. My ram is in 4x4 GB configuration. Windows is up to date. Correction to RAM speed 1866 MHz 11-11-11-32

Just tested if BSOD was fluke, its reproducible 2/2.

Tried again in safe mode to rule out anything with windows, BSOD

have not used linux in my life (technically a lie), but going to give it a shot. What is a good USB bootable version?

tevador commented 5 years ago

What is a good USB bootable version?

Ubuntu 18.04 LTS.

The cause of the BSOD can be either:

JustFranz commented 5 years ago

./randomx --mine --init 4 --threads 4 --nonces 400000 --largePages RandomX - mining mode Initializing (4 threads) ... ERROR: allocLargePagesMemory - mmap failed

./randomx --mine --init 4 --threads 4 --nonces 400000 RandomX - mining mode Initializing (4 threads) ... Dataset (4 GiB) initialized in 23.9515 s Initializing 4 virtual machine(s) ... Running benchmark (400000 nonces) ... Calculated result: 655eec9f61d57e27b435ea1b6aed50c56e90f586e1fa786349ce4758c2cfc318 Performance: 1340.1 hashes per second

Large pages is failing for some reason, I was under the impression that it was enabled by default for linux. What is the command to enter into terminal to properly enable it?

result in windows without --largePages RandomX - mining mode Initializing (4 threads) ... Dataset (4 GiB) initialized in 23.9145 s Initializing 4 virtual machine(s) ... Running benchmark (400000 nonces) ... Calculated result: 655eec9f61d57e27b435ea1b6aed50c56e90f586e1fa786349ce4758c2cfc318 Performance: 1348.07 hashes per second

I have largePages enabled, lock pages in memory has Administrators, MyUserName and *S-1-5-32-500 Why the BSOD? Any ideas?

sfc /scannow found 1 corrupt file and repaired it, still BSOD

lilyanatia commented 5 years ago

Large pages is failing for some reason, I was under the impression that it was enabled by default for linux. What is the command to enter into terminal to properly enable it?

https://github.com/fireice-uk/xmr-stak/blob/master/doc/FAQ.md#error-memory-alloc-failed-mmap-failed

note that RandomX will require larger numbers than xmr-stak (2304 for vm.nr_hugepages and 4718592 for ulimit -l should be enough).

maogo commented 5 years ago

AMD Ryzen 1800X 3.6GHs, 8GB Single 2400MHz, Windows 10 64bit

D:\RandomX-windows-x64-v0.3.1-beta>randomx.exe --verify RandomX - verification mode Initializing ... Cache (256 MiB) initialized in 0.754375 s Initializing 1 virtual machine(s) ... Running benchmark (1000 nonces) ... Calculated result: d3ae5a9365196ed48bb98ebfc3316498e29443ea7f056ecbd272f749c6af7730 Reference result: d3ae5a9365196ed48bb98ebfc3316498e29443ea7f056ecbd272f749c6af7730 Performance: 56.095 ms per hash

seizahub commented 5 years ago

TR1950X @3.9Ghz RandomX - verification mode Initializing ... Cache (256 MiB) initialized in 0.679985 s Initializing 1 virtual machine(s) ... Running benchmark (1000 nonces) ... Calculated result: d3ae5a9365196ed48bb98ebfc3316498e29443ea7f056ecbd272f749c6af7730 Reference result: d3ae5a9365196ed48bb98ebfc3316498e29443ea7f056ecbd272f749c6af7730 Performance: 53.2547 ms per hash

init 32 --threads 16 --nonces 1000000 --largePages RandomX - mining mode Initializing (32 threads) ... Dataset (4 GiB) initialized in 5.08343 s Initializing 16 virtual machine(s) ... Running benchmark (1000000 nonces) ... Calculated result: b13f5038492d3abfd14da6671f92c28456d96c29a5ffb120edac924abe5aabe9 Performance: 8917.85 hashes per second

lilyanatia commented 5 years ago

@seizahub you should try running two mining processes at once with 8 threads each, one process on each numa node.

tevador commented 5 years ago

I have pushed a new release which fixes some portability issues of the interpreter.

No impact on performance.

ghost commented 5 years ago

Intel Core i5-8250U CPU @ 1.60GHz 8GB DDR4, L3 Cache 6 MB

$ ./randomx --verify
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 0.78788 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006
Reference result:  e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006
Performance: 41.3737 ms per hash
./randomx --mine --init 8 --threads 6 --nonces 100000
RandomX - mining mode
Initializing (8 threads) ...
Dataset (4 GiB) initialized in 20.712 s
Initializing 6 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: 6b75c9504202c15bc58d3579bb37f029c3fa711bad4a8182d7284ff612dc08f2
Performance: 1031.32 hashes per second

Compiled commit d9bc6cf (tag/0.3.2-beta), Arch Linux, gcc 8.2.1 20181127

tevador commented 5 years ago

RandomX v0.3.2 release binaries

Intel Core i7-8550U

boosts to 4 GHz when verifying

>randomx.exe --verify --largePages
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 0.580229 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006
Reference result:  e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006
Performance: 27.93 ms per hash

boosts to 2.6 GHz when mining

>randomx.exe --mine --largePages --init 8 --threads 4 --nonces 100000
RandomX - mining mode
Initializing (8 threads) ...
Dataset (4 GiB) initialized in 14.2677 s
Initializing 4 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: 6b75c9504202c15bc58d3579bb37f029c3fa711bad4a8182d7284ff612dc08f2
Performance: 1718.28 hashes per second

AMD Ryzen 1700

3.35 GHz

> bin/randomx --mine --largePages --init 16 --threads 8 --nonces 1000000
RandomX - mining mode
Initializing (16 threads) ...
Dataset (4 GiB) initialized in 9.46747 s
Initializing 8 virtual machine(s) ...
Running benchmark (1000000 nonces) ...
Calculated result: 38f1097eb1f1a77973559d8142273db7de8e679303b6cdb6c46ea9e6420c5e8d
Performance: 4194.87 hashes per second
umma08 commented 5 years ago

Ubuntu 16.04 LTS

erk@erk-PORTEGE-R830:~/.grin/main$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 42
Model name:            Intel(R) Core(TM) i7-2620M CPU @ 2.70GHz
Stepping:              7
CPU MHz:               1074.740
CPU max MHz:           3400.0000
CPU min MHz:           800.0000
BogoMIPS:              5382.61
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              4096K
NUMA node0 CPU(s):     0-3
erk@erk-PORTEGE-R830:~/Brain/RandomX/RandomX/bin$ ./randomx --mine --init 4 --threads 2 --nonces 100000 --largepages
RandomX - mining mode
Initializing (4 threads) ...
Dataset (4 GiB) initialized in 34.483 s
Initializing 2 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: 6b75c9504202c15bc58d3579bb37f029c3fa711bad4a8182d7284ff612dc08f2
Performance: 505.33 hashes per second
nioroso-x3 commented 5 years ago

It's broken on powerpc big endian, little endian seems to be working now.

Added "|| define(powerpc)" to trigger the ifdef for rotr in softAes.cpp Powermac G5 (PPC970 BE) jribeiro@powermagi ~/Development/RandomX/bin $ ./randomx --verify --softAes --largePages Using software AES. RandomX - verification mode Initializing ... Cache (256 MiB) initialized in 4.43579 s Initializing 1 virtual machine(s) ... Running benchmark (1000 nonces) ... Calculated result: 883c628e4f5045c4cfcdfead388640e2dfe3e81400f8566fd7b3d3e1d1f98626 Reference result: e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006 Performance: 513.212 ms per hash IBM 821LC (POWER8 LE) Using software AES. RandomX - verification mode Initializing ... Cache (256 MiB) initialized in 1.2094 s Initializing 1 virtual machine(s) ... Running benchmark (1000 nonces) ... Calculated result: e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006 Reference result: e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006 Performance: 208.994 ms per hash And power8 running 80 threads in 10 cores:

Using software AES. RandomX - verification mode Initializing ... Cache (256 MiB) initialized in 1.04643 s Initializing 80 virtual machine(s) ... Running benchmark (1000 nonces) ... Calculated result: e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006 Reference result: e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006 Performance: 6.64076 ms per hash

tevador commented 5 years ago

@nioroso-x3 Thanks. I will prepare a diagnostic version of RandomX, so we can find the cause of the issue on big endian systems.

Minervp commented 5 years ago

Tevador,

Looks like moving to W10 helps. and the sweet spot is 19 Threads. 2x Xeons E5-2651 v2 1.80Ghz server

RandomX - verification mode Initializing ... Cache (256 MiB) initialized in 1.35356 s Initializing 1 virtual machine(s) ... Running benchmark (1000 nonces) ... Calculated result: e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006 Reference result: e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006 Performance: 93.7652 ms per hash

RandomX - mining mode Initializing (24 threads) ... Dataset (4 GiB) initialized in 18.8612 s Initializing 19 virtual machine(s) ... Running benchmark (100000 nonces) ... Calculated result: 6b75c9504202c15bc58d3579bb37f029c3fa711bad4a8182d7284ff612dc08f2 Performance: 5005.93 hashes per second

osensei commented 5 years ago

Here are my test results. All binaries compiled by myself using latest commit (d9bc6cf - v0.3.2-beta).

CPU: Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz, 400 MHz - 3.5 GHz RAM: 2x8 GB DDR4 2133 MHz OS: Ubuntu 16.04 GCC version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.11)

./randomx --verify

RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 0.658071 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006
Reference result:  e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006
Performance: 33.8129 ms per hash

./randomx --verify --largePages

RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 0.550309 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006
Reference result:  e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006
Performance: 30.0763 ms per hash

./randomx --mine --largePages --threads 2 --init 4 --nonces 100000

RandomX - mining mode
Initializing (4 threads) ...
Dataset (4 GiB) initialized in 25.2313 s
Initializing 2 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: 6b75c9504202c15bc58d3579bb37f029c3fa711bad4a8182d7284ff612dc08f2
Performance: 1020.34 hashes per second

./randomx --mine --largePages --threads 4 --init 4 --nonces 100000

RandomX - mining mode
Initializing (4 threads) ...
Dataset (4 GiB) initialized in 25.2198 s
Initializing 4 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: 6b75c9504202c15bc58d3579bb37f029c3fa711bad4a8182d7284ff612dc08f2
Performance: 1064.74 hashes per second

./randomx --mine --threads 2 --init 4 --nonces 100000

RandomX - mining mode
Initializing (4 threads) ...
Dataset (4 GiB) initialized in 27.1011 s
Initializing 2 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: 6b75c9504202c15bc58d3579bb37f029c3fa711bad4a8182d7284ff612dc08f2
Performance: 680.794 hashes per second

./randomx --mine --threads 4 --init 4 --nonces 100000

RandomX - mining mode
Initializing (4 threads) ...
Dataset (4 GiB) initialized in 27.1022 s
Initializing 4 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: 6b75c9504202c15bc58d3579bb37f029c3fa711bad4a8182d7284ff612dc08f2
Performance: 909.257 hashes per second

CPU: Intel(R) Core(TM) i3 CPU M 370 @ 2.40GHz, 933 MHz - 2.4 GHz RAM: 2x4 GB DDR3 1066MHz OS: Ubuntu 16.04 GCC version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.11)

./randomx --verify --softAes

Using software AES.
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 1.58066 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006
Reference result:  e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006
Performance: 117.928 ms per hash

./randomx --verify --softAes --largePages

Using software AES.
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 1.42848 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006
Reference result:  e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006
Performance: 112.494 ms per hash

./randomx --mine --init 4 --threads 2 --nonces 100000 --softAes

Using software AES.
RandomX - mining mode
Initializing (4 threads) ...
Dataset (4 GiB) initialized in 76.4672 s
Initializing 2 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: 6b75c9504202c15bc58d3579bb37f029c3fa711bad4a8182d7284ff612dc08f2
Performance: 221.167 hashes per second

./randomx --mine --init 4 --threads 2 --nonces 100000 --softAes --largePages

Using software AES.
RandomX - mining mode
Initializing (4 threads) ...
Dataset (4 GiB) initialized in 72.725 s
Initializing 2 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: 6b75c9504202c15bc58d3579bb37f029c3fa711bad4a8182d7284ff612dc08f2
Performance: 257.854 hashes per second

./randomx --mine --init 4 --threads 4 --nonces 100000 --softAes

Using software AES.
RandomX - mining mode
Initializing (4 threads) ...
Dataset (4 GiB) initialized in 76.8335 s
Initializing 4 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: 6b75c9504202c15bc58d3579bb37f029c3fa711bad4a8182d7284ff612dc08f2
Performance: 271.51 hashes per second

./randomx --mine --init 4 --threads 4 --nonces 100000 --softAes --largePages

Using software AES.
RandomX - mining mode
Initializing (4 threads) ...
Dataset (4 GiB) initialized in 72.7733 s
Initializing 4 virtual machine(s) ...
Running benchmark (100000 nonces) ...
Calculated result: 6b75c9504202c15bc58d3579bb37f029c3fa711bad4a8182d7284ff612dc08f2
Performance: 309.146 hashes per second

NanoPi M3 CPU: Samsung S5P6818 Octa-Core Cortex-A53, 400M Hz - 1.4G Hz RAM: 1GB DDR3 OS: Armbian Bionic 18.04 GCC version 7.3.0 (Ubuntu/Linaro 7.3.0-27ubuntu1~18.04)

./randomx --verify --softAes

Using software AES.
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 3.79737 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006
Reference result:  e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006
Performance: 444.42 ms per hash

./randomx --verify --softAes --largePages

Using software AES.
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 3.68037 s
Initializing 1 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006
Reference result:  e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006
Performance: 403.769 ms per hash
tevador commented 5 years ago

@nioroso-x3

I found one case when endianness was not properly handled. Could you retest latest master on big endian?

If the result still doesn't match, please run

./randomx --genAsm --nonces 42

and compare the output with file src/program.inc. It should be the same code.

tevador commented 5 years ago

I ran a longer verification test (~40 hours) on Raspberry Pi 3 (ARMv7+Neon). Result matches x86.

bin/randomx --verify --softAes --threads 4 --nonces 1000000
Using software AES.
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 8.67455 s
Initializing 4 virtual machine(s) ...
Running benchmark (1000000 nonces) ...
Calculated result: 38f1097eb1f1a77973559d8142273db7de8e679303b6cdb6c46ea9e6420c5e8d
Performance: 145.724 ms per hash
lilyanatia commented 5 years ago

Raspberry Pi 3 running 64-bit Arch Linux

$ ./randomx --verify --softAes --largePages --threads 4
Using software AES.
RandomX - verification mode
Initializing ...
Cache (256 MiB) initialized in 6.91513 s
Initializing 4 virtual machine(s) ...
Running benchmark (1000 nonces) ...
Calculated result: e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006
Reference result:  e1b4144293ff9ab5aa4c98f2389bb18950d8c3fd874891ac64628e028a286006
Performance: 231.564 ms per hash