Commit Graph
50 Commits
Author SHA1 Message Date
SChernykh d346994fbd Workaround for a bug in binutils-2.32-1 on ARM
ldr/madd instruction sequence makes compiled binary crash, so separate them.
2019-09-23 23:12:40 +02:00
SChernykh 8fd7ae54b1 Update CMakeLists.txt 2019-09-21 10:48:14 +02:00
SChernykh 46ef04a4cf Added JIT compiler for RandomX on ARMv8 2019-09-21 10:10:52 +02:00
SChernykh a2b5acc127 RandomX config generator for OpenCL
Also fixed compilation errors on VS2019
2019-09-13 21:05:00 +02:00
SChernykh 3b411255f1 Merge remote-tracking branch 'upstream/evo' into evo 2019-09-13 15:27:14 +02:00
SChernykh 5fffeed646 RandomX: optimized loading from scratchpad
Prefetches scratchpad data as soon as possible to calculate data address for the next load.

Up to ~1.4% speedup on Ryzen 7 3700X @ 4.1 GHz, RAM 3200 MHz 14-14-14-28 with optimized sub-timings:
Variant|Before H/S|After H/S
-------|----------|---------
rx/0|8663|8777
rx/wow|9867|10009
rx/loki|8652|8731
2019-09-11 19:10:01 +02:00
SChernykh 0e34221026 Fix for 272 initialization threads 2019-09-09 08:15:46 +02:00
SChernykh e2e4fe5f8c Optimized CFROUND
One less micro-op
2019-09-04 20:47:47 +02:00
SChernykh fffe3c2e10 RandomX optimizations
- Optimized soft AES code, up to +30% hashrate on CPU without AES support
- Added prefetch for the first dataset access, up to +0.1% hashrate
2019-09-04 19:24:12 +02:00
SChernykh 682e893388 Fixed race condition in RandomX thread init
Thread could deadlock if it started before dataset struct was allocated.
2019-08-28 18:28:04 +02:00
SChernykh ab5d1a6cc9 Reverted intrin_portable.h 2019-08-28 07:20:01 +02:00
SChernykh d8f78c1d19 Optimized RandomX JIT compiler
Hashrate improved by 0.5-1.5% depending on RandomX version and CPU.
2019-08-27 20:18:56 +02:00
SChernykh fc670b2a58 Updated RandomX 2019-08-27 16:12:13 +02:00
SChernykh ea9dd70527 Merge remote-tracking branch 'upstream/evo' into evo 2019-08-13 19:50:33 +02:00
SChernykh 2fb3b8b376 Fix Mac OS X compilation
Thanks to @cjdelisle
2019-07-31 10:01:32 +02:00
SChernykh 8a896c97e5 Correct buffer size for fillAes4Rx4
More bytes than needed were filled.
2019-07-25 16:38:33 +02:00
SChernykh d53ca8714e Fixed MingGW compilation 2019-07-01 20:48:51 +02:00
SChernykh 7d10b6b71f Integrated RandomX, added RandomXL (Loki) 2019-07-01 20:11:51 +02:00
SChernykh 599586399e Fixed RandomX for CPUs without AES 2019-06-19 12:45:05 +02:00
SChernykh c39fa7d085 Merge remote-tracking branch 'upstream/feature-randomx' into random_wow 2019-06-18 19:53:26 +02:00
SChernykh a66bc6b66c RandomX fixes
- Fixed possible infinite loop when updating RandomX dataset
- Fixed used memory display
- Allocate dataset and VM for RandomX only when it's actually used
2019-06-18 19:53:11 +02:00
SChernykh 5949789f91 Fixed cmake for Linux 2019-06-15 23:52:39 +02:00
SChernykh 93f6e8ec7d Fixed auto-config 2019-06-15 23:50:31 +02:00
SChernykh aeba4aeea3 Fixed gcc compilation 2019-06-15 23:29:13 +02:00
SChernykh a46d190b54 RandomWOW support 2019-06-15 22:53:03 +02:00
SChernykh 2ca1fe20b8 Unified ASM functions signature 2019-03-13 22:00:44 +01:00
SChernykh 14da8c5ccf Algo switch at Graft fork 2019-03-05 18:05:19 +01:00
SChernykhandVitalius Parubochyi be7b1db754 CryptoNight v8 ReverseWaltz (+asm code and all test vectors)
Co-Authored-By: Vitalius Parubochyi <eddragonwolf@users.noreply.github.com>
2019-03-04 19:57:33 +01:00
SChernykh 8355ef8142 Merge remote-tracking branch 'upstream/dev' into dev 2019-03-04 17:43:22 +01:00
SChernykh 4bad9fab39 Optimized cn/r asm code
Average over 100 block heights:
Coffee Lake +0.1%
Ryzen +0.4%
Sandy Bridge +1.5%
2019-03-04 17:39:49 +01:00
SChernykh 28a2d6ea00 Fixed compilation error in Linux 2019-02-24 20:23:52 +01:00
SChernykh 5f6b6abc98 Optimized soft AES implementations
cn-pico: +6.7%
cn/half: +6.2%
cn/2: +4.3%
cn-heavy: +9.1%
cn/wow, cn/r: 2.4-2.6 times faster
2019-02-24 20:04:09 +01:00
SChernykh a5670fe4be Use public name CryptonightR for Monero's variant 4 2019-02-18 08:03:41 +01:00
SChernykh 4e24ccdb2b Support for Cryptonight variant 4 (Monero) 2019-02-17 18:17:14 +01:00
SChernykh b109070288 Fixed ARM code 2019-02-10 16:04:24 +01:00
SChernykh 384a5c3b76 Removed unused variable 2019-02-10 15:46:55 +01:00
SChernykh dd29a6db73 Fixed ARM compilation 2019-02-10 15:34:31 +01:00
SChernykh 4baa8ee4b5 CryptonightR support for Wownero 2019-02-10 15:21:17 +01:00
SChernykh 01cb2d9a11 Make JIT memory read-only after patching is done 2019-01-19 11:22:54 +01:00
SChernykh 4e998e3223 Correct FP rounding mode for cn/half 2019-01-17 00:49:48 +01:00
SChernykh 49431e7a01 Fixed compilation error on Windows 2019-01-16 00:24:34 +01:00
SChernykh 62bf59dd09 Fixed crash in patchCode() on Linux 2019-01-16 00:09:00 +01:00
SChernykh c552280ed5 Fixes for Visual Studio 2019-01-14 16:38:28 +01:00
SChernykh 745dbbb908 Added ASM code patching when loading
For CNv2 variants with different iterations and memory size.
2019-01-14 15:34:55 +01:00
SChernykh cc361d1784 Added asm optimized code for AMD Bulldozer 2018-10-21 18:29:03 +02:00
SChernykh 71d73d4077 Cryptonight variant 2 - final version
Reference code: https://github.com/monero-project/monero/pull/4404

I tested it on x86 with av=1-10 and on ARM with av=1-4, self test passed.
2018-09-22 17:21:32 +02:00
SChernykh 58a3d51038 Fixed spaces 2018-08-29 20:27:17 +02:00
SChernykh 177993cea1 Fixed performance degradation for v0 & v1 2018-08-29 20:15:08 +02:00
SChernykh 723f46e709 Removed excess code for v0 & v1 2018-08-29 19:52:33 +02:00
SChernykh 1852eb95a2 Cryptonight variant 2 support
Reference code: https://github.com/monero-project/monero/pull/4218
2018-08-28 23:42:15 +02:00