SChernykh
d13c77ddb9
Fix for 32-bit ARM compilation
2019-11-15 16:00:48 +01:00
SChernykh
74d6a35f1a
Fix function names for clang on Apple
2019-11-12 14:42:21 +01:00
SChernykh
321a0b882f
Optimized hashrate calculation
2019-11-09 17:29:12 +01:00
SChernykh
afff2f0a6f
Updated required API version
2019-11-05 23:27:15 +01:00
SChernykh
1a001aea29
RandomX: added support for dataset on host
2019-11-05 22:24:48 +01:00
SChernykh
b3740870b5
Fix VS2019 compilation
2019-10-26 13:32:30 +02:00
SChernykh
e8c1a8bdd0
Prefer sys_icache_invalidate on iOS
...
Also break compilation with error if clear cache is not available
2019-10-18 18:17:57 +02:00
SChernykh
c4ce4baa69
Fixed __builtin___clear_cache detection
2019-10-18 18:04:13 +02:00
SChernykh
a9a4f561ce
Force HAVE_BUILTIN_CLEAR_CACHE for GNU compilers
...
They always have __builtin___clear_cache
2019-10-18 17:39:57 +02:00
SChernykh
c67f2c2f51
Update jit_compiler_a64.cpp
2019-10-18 16:36:50 +02:00
SChernykh
c31f2bb92b
Update jit_compiler_a64.cpp
2019-10-18 16:32:01 +02:00
SChernykh
5af02671ee
Update jit_compiler_a64.cpp
2019-10-18 16:28:49 +02:00
SChernykh
ab1175a1a7
Fixed code cache cleanup on iOS/Darwin
2019-10-18 16:26:15 +02:00
SChernykh
0640950d44
Fix ARM64 code alignemtn
2019-10-18 16:18:45 +02:00
SChernykh
e7f137bd23
Sync with latest RandomX code
...
Fix a possible out-of-bounds access in superscalar generator
2019-10-13 22:13:29 +02:00
SChernykh
e766e11dfa
RandomX (Arqma variant) support
2019-10-08 19:00:19 +02:00
SChernykh
9314205de2
Refactored JIT compiler for x86, small RandomX speedup
2019-10-05 21:40:21 +02:00
SChernykh
1b33b073f3
Set scratchpad pointer to null by default
...
To avoid freeing random blocks of memory in some cases.
2019-09-24 08:53:00 +02:00
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
SChernykh and Vitalius 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