Commit Graph

65 Commits

Author SHA1 Message Date
SChernykh
5d0bf95011 RandomX: optimized program generation 2023-05-21 17:44:20 +02:00
SChernykh
5e680fa82a RandomX: added MSR mod for Zen 4
+0.8% faster on Ryzen 9 7950X
2022-10-01 18:33:04 +02:00
SChernykh
029bc5926a RandomX: optimized CFROUND elimination more 2022-09-16 14:11:27 +02:00
SChernykh
5c39146ebe RandomX: optimized CFROUND elimination 2022-09-15 19:57:34 +02:00
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
Tony Butler
0e25666db9 Fixup RandomX naming consistency 2021-09-16 08:24:37 -06:00
SChernykh
5898413858 RandomX: rewrote dataset read code
Unified code for AMD and Intel
1% faster on Intel
0.15% faster on AMD Ryzen
2021-05-20 12:45:42 +02:00
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
3c9bb68880 Fixed broken light mode mining on x86 2021-05-15 21:41:39 +02:00
SChernykh
dcbd0bf8c4 RandomX: optimized IMUL_RCP instruction
+0.4% on AMD Zen2
+0.3% on AMD Zen3
+0.1% on Intel SandyBridge
+0.3% on rx/wow on Intel SandyBridge
2021-04-19 17:43:58 +02:00
xmrig
0da777bfe3 Merge pull request #2058 from SChernykh/dev
RandomX JIT x86: remove unnecessary instructions
2021-01-24 13:59:56 +07:00
SChernykh
787aad0d62 RandomX JIT x86: remove unnecessary instructions
Adopted from https://github.com/tevador/RandomX/pull/201
2021-01-23 22:28:50 +01:00
XMRig
8a64a827f7 Move Ryzen related fixes to RxFix class. 2021-01-23 00:27:56 +07:00
SChernykh
fac3902ae1 RandomX x86 JIT: remove redundant CFROUND 2021-01-07 16:20:00 +01:00
SChernykh
90760db1c9 Fix GCC warning 2020-12-19 19:50:52 +01: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
eae3a62345 Auto-detect the fastest code for dataset init 2020-12-19 13:59:28 +01:00
SChernykh
aaf1ed1c99 Dataset initialization with AVX2 (WIP) 2020-12-18 14:53:54 +01:00
SChernykh
b89d432b7d Fix alignment for Linux 2020-12-14 18:32:25 +01:00
SChernykh
e3dc83e383 Fix: secure JIT and huge pages are incompatible on Windows 2020-12-14 18:22:58 +01:00
XMRig
25a9fb2ab4 Fixed secure JIT on Linux and code cleanup. 2020-12-12 19:18:47 +07:00
XMRig
84443a4e8b Added generic secure JIT support for RandomX. 2020-12-11 23:17:54 +07:00
SChernykh
83d152f557 More static analysis fixes 2020-12-08 16:05:58 +01:00
SChernykh
d5f84a813d Fixed errors found by static analysis 2020-12-08 12:16:59 +01:00
XMRig
4569eea6f6 Move Profiler and more cleanup. 2020-12-04 09:23:40 +07:00
SChernykh
dfc4f40026 Optimized JIT compiler
More branch-free code
2020-11-29 14:05:50 +01:00
SChernykh
76c406ce63 Make single thread bench cheat-resistant
Each hash is dependent on the previous hash to make multi-threaded cheating impossible.
2020-11-15 20:38:27 +01:00
SChernykh
21022fe226 Also fix RelWithDebIfno build in Visual Studio 2020-10-27 14:25:43 +01:00
SChernykh
d822ffef36 Fixed Debug build in Visual Studio 2020-10-27 14:08:36 +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
b8d604bec4 RandomX improved performance of GCC compiled binaries
JIT compilator was slower compared to MSVC compiled binary. Up to +0.1% speedup on rx/wow in Linux.
2020-09-22 13:48:11 +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
3ef7c9b5e6 RandomX: returned old soft AES impl and auto-select between the two 2020-09-15 20:48:27 +02:00
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