Commit Graph

31 Commits

Author SHA1 Message Date
SChernykh
5bd0c4be25 RandomX: added BMI2 version for scratchpad prefetch
Saves 1 instruction and 1 byte in the main loop.
2021-05-19 17:52:16 +02:00
SChernykh
ac1e88882c Enabled IMUL_RCP optimization for light mode mining
Better fix for #2377
2021-05-17 11:26:40 +02:00
SChernykh
0319b5b622 Added config option for AVX2 dataset init
-1 = Auto detect
0 = Always disabled
1 = Enabled if AVX2 is supported
2020-12-19 16:18:49 +01:00
SChernykh
1865d31d0c RandomX: added huge-pages-jit config parameter
Set to false by default, gives 0.2% boost on Ryzen 7 3700X with 16 threads, but hashrate might be unstable on Ryzen between launches. Use with caution.
2020-10-07 17:42:55 +02:00
SChernykh
d5dd4ce89f RandomX: removed rx/loki
Loki forks to PoS on October 9th.
2020-10-02 17:02:52 +02:00
SChernykh
1e38eb3f4f RandomX refactoring, moved more stuff to compile time
Small x86 JIT compiler speedup.
2020-09-18 20:51:25 +02:00
SChernykh
f26d4274fc RandomX: added parameter for scratchpad prefetch mode
`scratchpad_prefetch_mode` can have 4 values:
0: off
1: use `prefetcht0` instruction (default, same as previous XMRig versions)
2: use `prefetchnta` instruction (faster on Coffee Lake and a few other CPUs)
3: use `mov` instruction
2020-09-04 16:16:07 +02:00
SChernykh
07d9abc90e RandomX JIT: optimized address mask calculation 2020-08-12 16:45:16 +02:00
SChernykh
08d71d5144 RandomX: tweaked Ryzen code
Very small speedup
2020-07-05 16:06:59 +02:00
SChernykh
fe96036607 RandomX JIT refactoring
- Smaller memory footprint
- A bit faster overall
2020-04-09 14:24:54 +02:00
SChernykh
5449dfbc91 Use node number instead of affinity 2020-04-07 18:46:22 +02:00
SChernykh
e5d43089df Pooled allocation of RandomX VMs
+0.5% speedup on Zen2 when the whole L3 cache is used (16 threads on 3700X/3800X, 32 threads on 3950X).
2020-04-07 18:31:35 +02:00
kevacoin
b02cc24ae1 Added Keva. 2020-03-04 16:23:33 -08: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
XMRig
a46c4f02e8 Removed "rx/v" algorithm. 2019-12-26 22:34:19 +07:00
Tony Butler
4c4b29d45c Add MoneroV (rx/v) algorithm [based on MoneroOcean/master] 2019-12-18 16:17:22 -07:00
SChernykh
9b5ccb55a5 RandomSFX (Safex Cash variant) support 2019-12-16 19:36:29 +01:00
SChernykh
7e724aa70d More optimizations for Ryzen 2019-12-09 20:29:05 +01:00
XMRig
280618a9eb Memory allocation refactoring. 2019-12-08 23:17:39 +07: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
0a5c12295d Added 1GB hugepages support for Linux 2019-12-05 19:39:47 +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
6e96a38a87 Use XMRIG_ARMv8 macro 2019-11-15 16:12:26 +01:00
SChernykh
d13c77ddb9 Fix for 32-bit ARM compilation 2019-11-15 16:00:48 +01:00
SChernykh
e766e11dfa RandomX (Arqma variant) support 2019-10-08 19:00:19 +02:00
SChernykh
46ef04a4cf Added JIT compiler for RandomX on ARMv8 2019-09-21 10:10:52 +02:00
XMRig
a3e66e94cf Fix compile warning, mostly struct/class inconsistency. 2019-09-13 18:21:05 +07: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
XMRig
54994d361b Resolved conflict between argon2 implementations. 2019-08-16 03:18:35 +07:00
XMRig
c8736cac5e Implemented unified cryptonight and RandomX scratchpad memory. 2019-07-17 04:33:11 +07:00
SChernykh
7d10b6b71f Integrated RandomX, added RandomXL (Loki) 2019-07-01 20:11:51 +02:00