Commit Graph

61 Commits

Author SHA1 Message Date
SChernykh
f329375360 RandomX: added Blake2 AVX2 version
+0.1% speedup on AMD Zen2/Zen3 and Intel CPUs which support AVX2.
2022-08-25 20:39:54 +02:00
SChernykh
fa9b5c7b6e GhostRider algorithm (Raptoreum) support 2021-11-23 08:14:01 +01:00
XMRig
22f68bda8d Code cleanup based on Clang-Tidy. 2021-08-25 18:45:15 +07:00
XMRig
48a43b9274 Implemented stable algorithm ids. 2021-08-11 03:46:34 +07:00
SChernykh
3e9755c8c8 Optimized cn-heavy for Zen3
- Uses scratchpad interleaving to access only the closest L3 slice from each CPU core.
- Also activates MSR mod for cn-heavy because CPU prefetchers get confused with interleaving
- 7-8% speedup on Zen3
2021-02-07 22:05:11 +01:00
XMRig
61d5f1aacb Added RxMsr class. 2021-01-23 23:23:39 +07:00
XMRig
8a64a827f7 Move Ryzen related fixes to RxFix class. 2021-01-23 00:27:56 +07: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
XMRig
4569eea6f6 Move Profiler and more cleanup. 2020-12-04 09:23:40 +07:00
SChernykh
78dba13722 Fix RandomX init when switching to other algo and back 2020-11-29 22:02:48 +01:00
XMRig
34a9aaf358 Added "msr" field for CPU backend. 2020-10-25 16:36:37 +07: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
cohcho
a5f4548b27 soft_aes: fix previous optimization
Previously removed unrolled variant is faster on some CPUs
Some CPUs are faster with added unrolled variant
The best variant depends on number of threads on some CPUs
2020-10-04 14:47:58 +00:00
SChernykh
3ef7c9b5e6 RandomX: returned old soft AES impl and auto-select between the two 2020-09-15 20:48:27 +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
XMRig
b2b54cbe82 Cleanup 2020-07-22 21:27:40 +07:00
XMRig
da244e7acf Fixed build without MSR support. 2020-07-16 05:15:35 +07:00
SChernykh
5af50b854c RandomX: added cache QoS support
False by default. If set to true, all non-mining CPU cores will not have access to L3 cache.
2020-07-13 17:23:18 +02:00
XMRig
306dfe8d6a Use long tags. 2020-05-28 20:32:41 +07:00
SChernykh
ea14d937f8 Activate MSR mod only for RandomX algorithms 2020-03-09 19:10:26 +01:00
XMRig
cbcf033ebe Code style cleanup. 2019-12-28 01:45:54 +07:00
SChernykh
a1f223dcb0 Fix for 1st-gen Ryzen crashes 2019-12-27 12:40:38 +02:00
XMRig
efb63d15e1 Added support for write custom MSR. 2019-12-17 02:27:07 +07:00
SChernykh
5cf846b28d MSR mod for Windows 2019-12-14 16:04:37 +01:00
XMRig
86e5ab861b Don't build Rx_linux.cpp on ARM. 2019-12-11 21:20:37 +07:00
XMRig
f960d1cf16 Added RandomX option "wrmsr" with command line equivalent --randomx-wrmsr=N. 2019-12-10 23:57:29 +07:00
XMRig
fbd39ca49d Move "1gb-pages" option to "randomx" object. 2019-12-09 21:42:40 +07:00
XMRig
280618a9eb Memory allocation refactoring. 2019-12-08 23:17:39 +07:00
XMRig
0c926c5f57 #1385 "max-threads-hint" option now also limit RandomX dataset initialization threads. 2019-12-07 22:18:06 +07:00
XMRig
5d6abe4ae6 #1386 Added priority for RandomX dataset initialization threads. 2019-12-06 22:17:04 +07:00
SChernykh
0a5c12295d Added 1GB hugepages support for Linux 2019-12-05 19:39:47 +01:00
XMRig
b7e1d97d93 Added option "mode" (or --randomx-mode) for RandomX. 2019-11-29 13:00:17 +07:00
XMRig
3d262d82a0 Added class RxQueue, class Rx now thin static wrapper on top of RxQueue. 2019-10-06 07:47:41 +07:00
XMRig
5058da3f29 Fixed exit. 2019-10-05 11:24:22 +07:00
XMRig
93a70f4bbe Added RxNUMAStorage stub. 2019-10-04 18:43:03 +07:00
XMRig
473b98ae68 Extended "numa" option for RandomX. 2019-10-04 10:49:55 +07:00
XMRig
f9f5b8a716 Added interface IRxStorage and RxBasicStorage class. 2019-10-04 08:45:13 +07:00
XMRig
8b14b414a4 More cleanup. 2019-10-03 07:45:25 +07:00
XMRig
4a80dfa349 Added class RxSeed. 2019-10-03 04:48:36 +07:00
XMRig
c452846a6a #1212 Fixed RandomX dataset re-initialization. 2019-10-02 06:35:49 +07:00
XMRig
dea1f983f0 Merge branch 'dev' into evo 2019-10-01 07:26:18 +07:00
XMRig
aaddfbe779 Fixed support for systems where total count of NUMA nodes not equal usable count. 2019-10-01 07:19:13 +07:00
XMRig
e9b20fff81 Implemented VM mode for OpenCL RandomX. 2019-09-12 00:01:03 +07:00
XMRig
c4b49d4213 OpenCL RandomX WIP 2019-09-11 15:48:02 +07:00
XMRig
be5caf0701 Added OpenCL source. 2019-08-25 23:06:04 +07:00
XMRig
b8982a4652 Start mining threads only after RandomX dataset initialization. 2019-08-25 20:28:15 +07:00
XMRig
e49300b11d Uniform signature for hugePages method. 2019-08-10 13:14:20 +07:00
XMRig
e40b9deb6d Always stop mining threads in RandomX dataset change upcoming. 2019-08-02 16:44:55 +07:00
XMRig
98378d072d Optimized RandomX initialization and switching. 2019-08-01 20:37:05 +07:00
XMRig
93001f6418 Use std::thread and std:mutex instead of uv_thread_t and uv_mutex_t. 2019-07-30 21:25:27 +07:00