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
ccf13673aa
Fixed roundSize() usage in OCL/CUDA
2020-10-15 14:39:54 +02:00
SChernykh
2ffbf20f20
Make round size power of 2
2020-10-15 14:29:15 +02:00
SChernykh
6078052780
Benchmark: added more check hashes and a progress indicator
2020-10-15 08:23:47 +02:00
SChernykh
04ed885a65
Fixed compile errors in Linux
2020-10-14 21:03:21 +02:00
SChernykh
a046437d5f
Added benchmark and stress test
...
Easy to use and zero configuration embedded benchmark/stress test.
2020-10-14 19:45:05 +02:00
SChernykh
f8a0aa06c8
Added argon2/chukwav2 algorithm
...
New Turtlecoin algorithm. Source: https://github.com/turtlecoin/turtlecoin/blob/development/src/crypto/hash.h#L57
2020-10-12 08:26:57 +02:00
SChernykh
1f489ee378
Fixed total hashrate update
...
Don't add data points where one of the threads doesn't have hashrate data yet.
2020-10-10 17:00:30 +02:00
SChernykh
d21a911dd0
Fix HashrateInterpolator::addDataPoint
2020-10-10 11:22:19 +02:00
SChernykh
2af99c3d83
More precise hashrate calculation
...
- Use only steady timestamp counters to guarantee correctness
- CPU backend: directly measure total hashrate using raw hash counters from each thread; update data more often on ARM CPUs because they're slower
- GPU backends: directly measure total hashrate too, but use interpolator with 4 second lag to fix variance from batches of hashes
Total hashrate is now measured directly (realtime for CPU, 4 seconds lag for GPU), so it might differ a bit from the sum of all thread hashrates because data points are taken at different moments in time.
Overhead is reduced a lot since it doesn't have to go through all threads to calculate max total hashrate on every timer tick (2 times a second).
2020-10-10 11:18:01 +02:00
SChernykh
25d4142e39
Change to fetch_xor to make code simpler
2020-10-09 11:50:11 +02:00
SChernykh
151e1f7d77
Fix possible race condition in hashrate counting code
...
Use single atomic operation to switch between data points.
2020-10-09 10:29:18 +02:00
SChernykh
c370d54e74
Fix 32-bit compilation
2020-10-07 18:19:35 +02:00
SChernykh
7464c4df7c
Fixed ARM compilation
2020-10-07 18:09:42 +02:00
SChernykh
ba74d14728
Fix FreeBSD compilation
2020-10-07 18:00:36 +02: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
6a25fa75c7
RandomX: allocate 2 MB pages for generated code, if possible
...
+0.2% boost on Ryzen 7 3700X
2020-10-07 10:35:10 +02:00
SChernykh
d5dd4ce89f
RandomX: removed rx/loki
...
Loki forks to PoS on October 9th.
2020-10-02 17:02:52 +02:00
SChernykh
d498274ca9
RandomX: optimized soft AES code
...
Unrolled loop was 5-10% slower depending on CPU.
2020-09-29 21:22:11 +02:00
SChernykh
fbb8e955aa
RandomX: removed duplicate constatns in Blake2b
2020-09-27 11:50:08 +02:00
SChernykh
36592c2fe0
RandomX: isolate SSE4.1 code to fix crashes on old CPUs
2020-09-27 11:46:32 +02:00
SChernykh
411ba9f80d
Fixed SSE4.1 for old CPUs
...
Enable SSE4.1 only where it's needed.
2020-09-27 08:55:57 +02:00
SChernykh
c07ee768ed
KawPow: fixed OpenCL memory leak
2020-09-25 10:53:24 +02:00
SChernykh
c4a083aa8c
Fix for ARM compilation
2020-09-23 11:44:08 +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
60faba76e8
RandomX: AES improvements
...
- A bit faster hardware AES code when compiled with MSVC
- More reliable software AES benchmark
2020-09-21 17:51:08 +02:00
SChernykh
e94b92b2aa
Fixed Cryptonight OpenCL for AMD 20.7.2 drivers
...
Vega 64 + Windows 10 + AMD 20.7.2 drivers were broken on Cryptonight algorithms.
2020-09-19 23:12:05 +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
9a53285c5f
RandomX: added SSE4.1-optimized Blake2b
...
+0.15% on `rx/0`
+0.3% on `rx/wow`
2020-09-10 14:28:40 +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
1dca648537
Fixed self-select login sequence
...
In self-select mode, we only have pool wallet right after login.
2020-08-25 16:17:48 +02:00
SChernykh
07d9abc90e
RandomX JIT: optimized address mask calculation
2020-08-12 16:45:16 +02:00
SChernykh
3d78f30171
Try to allocate scratchpad from dataset's 1 GB huge pages, if normal huge pages are not available
2020-07-31 13:37:22 +02:00
SChernykh
5aae95eddc
Force 2 MB pages size in allocateLargePagesMemory() on Linux
2020-07-31 09:55:49 +02:00
SChernykh
3c383c59dc
Fixed crash in RelWithDbgInfo MSVC build
...
Same problem as in https://github.com/xmrig/xmrig/pull/1784 , fixed with compiler flags this time.
2020-07-29 10:39:58 +02:00
SChernykh
8c8a46acb8
Added mining on battery setting
2020-07-22 20:21:42 +02:00
SChernykh
51370682f3
Fixed RandomX initialization for VS debug builds
2020-07-21 10:10:07 +02:00
SChernykh
3180e242a9
Cryptonight OpenCL: fix for long input data
2020-07-16 10:39:32 +02:00
SChernykh
e8dbb8ca9f
Removed cache QoS warning at exit on unsupported CPUs
2020-07-13 20:43:49 +02:00
SChernykh
a3f4d91ad7
Cache QoS: fix for seting MSR
2020-07-13 20:30:44 +02: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
SChernykh
08d71d5144
RandomX: tweaked Ryzen code
...
Very small speedup
2020-07-05 16:06:59 +02:00
SChernykh
bb87e9008c
KawPow: fixed more duplicate share errors
2020-07-03 21:33:44 +02:00
SChernykh
119a065424
Fix typo
2020-07-02 14:29:52 +02:00
SChernykh
d2d8fd48b9
KawPow: fixed rare duplicate share errors
2020-07-02 11:36:31 +02:00
SChernykh
aa48c64a05
Fixed DAG initialization on slower AMD GPUs
...
Display driver could reset on GPUs with screen connected.
2020-06-30 16:53:56 +02:00
SChernykh
038629c093
Print error message when MSR mod fails
...
Make sure user knows that hashrate is worse than it could be.
2020-06-26 19:54:06 +02:00
SChernykh
683ca745a8
KawPow: optimized CPU share verification
...
- 2 times faster CPU share verification (11 -> 5 ms)
- 1.5 times faster light cache initialization
2020-06-26 12:31:26 +02:00
SChernykh
cf1ee9b3d4
Fixed AstroBWT OpenCL compilation on some systems
2020-06-23 13:55:43 +02:00
SChernykh
ccb6cce3f0
Fixed NiceHash disconnects for KawPow
2020-06-12 14:08:00 +02:00
SChernykh
5730b7fd27
Show GPU # when compute error happens
2020-06-11 19:48:53 +02:00
SChernykh
3292679e66
KawPow: fixed crash on old CPUs
...
- Use `popcnt` instruction only when it's supported
2020-06-10 21:49:43 +02:00
SChernykh
82e6e3df6f
Merge remote-tracking branch 'upstream/evo' into evo
2020-06-10 20:55:59 +02:00
SChernykh
c648e79c97
Merge remote-tracking branch 'upstream/evo' into evo
2020-06-10 08:19:36 +02:00
SChernykh
e6f454f37d
Fixed detection of AVX2/AVX512
2020-06-09 17:47:23 +02:00
SChernykh
4f0ff0c6b9
Disabled AVX-512F for Argon2
...
See #1722
2020-06-09 13:53:14 +02:00
SChernykh
63dd56831e
Fixed GCC 10.1 issues
...
- Fixed uninitialized `state->x` warning
- Fixed broken code with `-O3` or `-Ofast`
2020-06-07 16:23:17 +02:00
SChernykh
230b2a4b63
Fixed GCC 10.1 issues
...
- Fixed uninitialized `state->x` warning
- Fixed broken code with `-O3` or `-Ofast`
2020-06-07 16:16:09 +02:00
SChernykh
2ab164caf2
Conceal (CCX) support
2020-06-07 01:01:45 +02:00
SChernykh
9fd7f42e95
Reduced memory for KawPow
2020-06-05 14:01:49 +02:00
SChernykh
25685ebab1
Print errors from KawPow DAG initialization
2020-06-05 09:33:36 +02:00
SChernykh
afdf26616e
KawPow: reduced stale/expired shares
2020-05-31 18:22:21 +02:00
SChernykh
3723fa777d
Tuned KawPow OpenCL kernel
...
Removed unnecessary memory barrier.
2020-05-29 13:10:24 +02:00
SChernykh
9725e14a02
KawPow: fixed switch back from dev donate
2020-05-29 10:49:22 +02:00
SChernykh
50e1f7217e
Update EthStratumClient.cpp
2020-05-29 08:39:03 +02:00
SChernykh
d7c9d08614
Added listener verify callback
2020-05-29 08:36:59 +02:00
SChernykh
bf45453a0f
Fixed stratum login notification
2020-05-29 08:31:53 +02:00
SChernykh
474f97695e
Hashrate display fixes
2020-05-28 22:23:31 +02:00
SChernykh
ee4c5712e9
Merge remote-tracking branch 'upstream/evo' into evo
2020-05-28 22:06:10 +02:00
SChernykh
2f1940ca58
Fixed hashrate and diff display for KawPow
2020-05-28 22:03:28 +02:00
SChernykh
3d622ff2a9
KawPow fix for retarted AMD OpenCL compiler
2020-05-28 20:27:25 +02:00
SChernykh
7056f67726
KawPow performance fix for AMD Navi
2020-05-28 18:28:23 +02:00
SChernykh
3168919b83
KawPow: tuned work group size for OpenCL
2020-05-28 10:58:06 +02:00
SChernykh
f24da62db0
KawPow WIP
2020-05-27 16:19:57 +02:00
SChernykh
b8a706948a
Optimized RandomX dataset initialization
...
- Use single Argon2 implemenation
- Auto-select the fastest Argon2 implementation for RandomX
2020-05-03 20:44:59 +02:00
SChernykh
b2dcacc679
Improved JSON config error reporting
...
Show incorrect lines in config.json together with line number and position.
2020-04-29 11:08:45 +02:00
SChernykh
9a6baa375d
Refactored CFROUND
2020-04-21 15:44:04 +02:00
SChernykh
c43a848415
Fix code style
2020-04-09 14:31:42 +02:00
SChernykh
fe96036607
RandomX JIT refactoring
...
- Smaller memory footprint
- A bit faster overall
2020-04-09 14:24:54 +02:00
SChernykh
3d5a35885e
Fixed VM destruction
2020-04-08 08:31:53 +02:00
SChernykh
73cb010b5d
Fix off-by-one error
2020-04-07 18:53:08 +02:00
SChernykh
9bd78a9603
Fixed pool lock
2020-04-07 18:48:02 +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
SChernykh
e793dd3be2
AstroBWT CUDA support
2020-04-04 11:05:44 +02:00
SChernykh
2ac0f7fa24
Fixed AstroBWT OpenCL for NVIDIA GPUs
2020-03-24 15:55:54 +01:00
SChernykh
c2260215b3
AstroBWT OpenCL code
2020-03-22 22:36:21 +01:00
SChernykh
f9c84ac456
Fix MacOS compilation
2020-03-11 16:35:52 +01:00
SChernykh
838bd14948
AVX2 optimized code for AstroBWT
...
Added "astrobwt-avx2" parameter in config.json, it's turned off ("false") by default.
4-5% speedup on CPUs with proper AVX2 support (AMD Ryzen starting with Zen2, Intel Core starting with Haswell).
There will be no speedup on the following CPUs:
- Intel Pentium/Celeron don't support AVX2
- AMD Zen/Zen+ have only half-speed AVX
GCC compiled version is faster without AVX2, MSVC compiled version is faster with AVX2
2020-03-10 22:35:14 +01:00
SChernykh
ea14d937f8
Activate MSR mod only for RandomX algorithms
2020-03-09 19:10:26 +01:00
SChernykh
c565ed93cd
Fixed invalid AstroBWT hashes after algo switching
2020-03-07 16:41:33 +01:00
SChernykh
1db5a6d0b8
Fixed compilation withut randomx/argon2
2020-03-06 07:22:57 +01:00
SChernykh
19fc7b6f43
AstroBWT 20-50% speedup
...
Skips hashes with large stage 2 size. Added configurable `astrobwt-max-size` parameter, default value is 550, min 400, max 1200, optimal value ranges from 500 to 600 depending on CPU.
- Intel CPUs get 20-25% speedup
- 1st- and 2nd-gen Ryzens get 30% speedup
- 3rd-gen Ryzens get up to 50% speedup
2020-03-05 12:20:21 +01:00
SChernykh
c76bd4fc63
Fixed new block detection for Dero solo mining
2020-03-03 17:53:19 +01:00
SChernykh
1ccf408ba7
AstroBWT algorithm (DERO) support
...
To test:
- Download https://github.com/deroproject/derosuite/releases/tag/AstroBWT
- Run daemon with `--testnet` in command line
In config.json:
- "coin":"dero"
- "url":"127.0.0.1:30306"
- "daemon:"true"
2020-02-29 22:41:24 +01:00
SChernykh
c6e9e2308d
Optimized CFROUND
...
Shorter version using BMI2 instructionns
2020-02-21 19:00:58 +01:00
SChernykh
6f66a0375f
Fixed 32-bit compilation
2020-02-21 16:08:23 +01:00