Commit Graph

31 Commits

Author SHA1 Message Date
SChernykh
f126fa112e RandomX: added performance profiler (for developers)
Also optimized Blake2b SSE4.1 code size to avoid code cache pollution.
2020-09-12 23:07:52 +02:00
SChernykh
07d9abc90e RandomX JIT: optimized address mask calculation 2020-08-12 16:45:16 +02:00
XMRig
3eaa27e0ff Small cleanups. 2020-05-03 13:38:34 +07:00
SChernykh
9a6baa375d Refactored CFROUND 2020-04-21 15:44:04 +02:00
SChernykh
fe96036607 RandomX JIT refactoring
- Smaller memory footprint
- A bit faster overall
2020-04-09 14:24:54 +02:00
XMRig
7144fb01bf #1572 Fix compile warning. 2020-03-01 11:59:53 +07:00
SChernykh
c6e9e2308d Optimized CFROUND
Shorter version using BMI2 instructionns
2020-02-21 19:00:58 +01:00
SChernykh
c7b4a89832 Tuned JIT compiler
0.3-0.4% speedup depending on CPU.
2020-02-20 20:59:22 +01:00
SChernykh
209d7e3223 Optimized CFROUND 2020-01-22 20:11:00 +01:00
SChernykh
eaaf157997 Added support for BMI2 instructions 2020-01-21 19:44:56 +01:00
SChernykh
efdbda40f0 Optimizations for AMD Bulldozer
- Added support for XOP instructions
- Enabled Ryzen code for Bulldozer because it's faster there too
2020-01-15 13:04:26 +01:00
SChernykh
716df54ac0 JIT compiler: removed unnecessary memcpy from generateProgram() 2020-01-13 18:00:41 +01:00
SChernykh
a976379f19 JIT compiler tweaks 2020-01-06 13:57:48 +01:00
SChernykh
07e36a6cf0 Refactor Ryzen fix to fix compilation issues 2019-12-31 11:55:07 +02:00
XMRig
82d4a1b3c9 Fix build. 2019-12-28 02:00:08 +07:00
SChernykh
a1f223dcb0 Fix for 1st-gen Ryzen crashes 2019-12-27 12:40:38 +02:00
SChernykh
18ceec0022 Fixed crash with GCC compiler 2019-12-18 17:32:57 +01:00
SChernykh
3bb6b332db Fixed AVX detection 2019-12-18 12:20:21 +01:00
SChernykh
4237ed6fad Add vzeroupper for processors with AVX
To avoid false dependencies on upper 128 bits of YMM registers.
2019-12-18 09:12:25 +01:00
SChernykh
7e724aa70d More optimizations for Ryzen 2019-12-09 20:29:05 +01:00
SChernykh
8a1679ec89 Fixed indentation 2019-12-08 16:20:46 +01:00
SChernykh
2ed2629653 Optimized dataset read for Ryzen CPUs
Removed register dependency in dataset read, +0.8% speedup on average.
2019-12-08 16:14:02 +01:00
SChernykh
4b0f3fab83 RandomX fixes
Intel JCC erratum fix and various other improvements, see more here: https://www.phoronix.com/scan.php?page=article&item=intel-jcc-microcode&num=1
2019-12-01 08:46:35 +01:00
SChernykh
9314205de2 Refactored JIT compiler for x86, small RandomX speedup 2019-10-05 21:40:21 +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
e2e4fe5f8c Optimized CFROUND
One less micro-op
2019-09-04 20:47:47 +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
XMRig
54994d361b Resolved conflict between argon2 implementations. 2019-08-16 03:18:35 +07:00
XMRig
402e497813 Fixed warnings. 2019-07-17 05:33:13 +07:00
SChernykh
7d10b6b71f Integrated RandomX, added RandomXL (Loki) 2019-07-01 20:11:51 +02:00