Commit Graph
100 Commits
Author SHA1 Message Date
SChernykh 4c8413f584 Fixed generic OpenCL code for AMD Navi 2020-02-10 22:00:40 +01:00
SChernykh 9e76b6d672 Workaround for new AMD drivers (OpenCL) 2020-02-04 23:11:46 +01:00
SChernykh e7c3bb7ba6 Crash fix for Bullodzer CPUs 2020-02-02 17:16:59 +01:00
SChernykh d6d6d8b350 Fixed setThreadAffinity()
Added 1 ms sleep to guarantee thread rescheduling to the correct CPU core before returning.
2020-01-28 19:39:02 +01:00
SChernykh fda20ff798 Removed MSR mod for Bulldozer
It turned out to be useless: https://www.reddit.com/r/MoneroMining/comments/et7s7w/psa_amd_opteronfxa6a8a10_owners_needed_to_test/
2020-01-27 09:39:39 +01:00
SChernykh 94ff5d1e49 Fix compile error 2020-01-24 14:09:07 +01:00
SChernykh 0ce4ac9a90 Fix crash on Linux 2020-01-24 13:34:12 +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 aac5ce39a4 MSR preset for Bulldozer CPUs
Also fixed verbose output for MSR presets with masks.
2020-01-14 19:27:34 +01:00
SChernykh 716df54ac0 JIT compiler: removed unnecessary memcpy from generateProgram() 2020-01-13 18:00:41 +01:00
SChernykh b4b2a19b33 Update MSR preset for Intel
As per https://github.com/xmrig/xmrig/issues/1433#issuecomment-572126184
2020-01-09 08:10:36 +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
SChernykh 58472d0674 Cleanup 2019-12-30 20:55:03 +02:00
SChernykh 467fbfdc77 Auto-config for mobile Ryzen APUs 2019-12-30 20:53:21 +02: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 5492d9270f Update jit_compiler_x86_static.S 2019-12-18 09:13: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 fc3c995ec2 Added bit masks for MSR registers 2019-12-17 23:55:22 +01:00
SChernykh 9b5ccb55a5 RandomSFX (Safex Cash variant) support 2019-12-16 19:36:29 +01:00
SChernykh a1d359f045 Use unique service name for WinRing0 driver
To avoid error 1072
2019-12-15 19:28:14 +01:00
SChernykh 53919c1281 Fixed thread count for MSR mod 2019-12-14 16:30:46 +01:00
SChernykh 5cf846b28d MSR mod for Windows 2019-12-14 16:04:37 +01:00
SChernykh 203fdbc0fd RandomX boost script for Linux 2019-12-12 18:25:28 +01:00
SChernykh 9629001fe4 Update jit_compiler_x86_static.S 2019-12-09 20:30:37 +01:00
SChernykh 7e724aa70d More optimizations for Ryzen 2019-12-09 20:29:05 +01:00
SChernykh e35ce64e14 Fixed assembly selection for RandomX when it's on Auto 2019-12-09 18:59:49 +01:00
SChernykh 08eef1bf9a Fix GCC compilation 2019-12-08 16:51:37 +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 46e3823d3f Fixed compilation on systems without 1GB pages support 2019-12-06 13:55:33 +01:00
SChernykh c188d885ee Fix ARM compilation 2019-12-06 13:43:59 +01:00
SChernykh 0a5c12295d Added 1GB hugepages support for Linux 2019-12-05 19:39:47 +01:00
SChernykh 7050eaa272 Merge remote-tracking branch 'upstream/dev' into dev 2019-12-05 16:33:45 +01:00
SChernykh 823857fc72 Merge remote-tracking branch 'upstream/dev' into dev 2019-12-04 10:24:10 +01:00
SChernykh 8c853ea8f2 Update VirtualMemory_unix.cpp 2019-12-03 20:25:51 +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 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
SChernykhandVitalius 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