Commit graph

503 commits

Author SHA1 Message Date
XMRig
3055e03b7e
Cleanup 2020-12-03 19:45:16 +07:00
XMRig
8686e08336
Fixed, benchmark validation on NUMA hardware produced incorrect results in some conditions. 2020-11-25 09:35:11 +07:00
XMRig
09b68f3cdb
Added BenchStatePrivate class. 2020-11-24 17:59:40 +07:00
XMRig
edf7885172
Fixed benchmark progress logging. 2020-11-23 21:41:51 +07:00
XMRig
75f18c9b31
Use static RandomX seed for benchmark. 2020-11-20 08:15:04 +07:00
XMRig
a2a0defeef
Submit top benchmark diff. 2020-11-17 07:33:20 +07:00
XMRig
e2ea11ffeb
Remove benchmark size from Job class. 2020-11-17 05:28:42 +07:00
XMRig
d8f9501ac8
Added DNS cache for online benchmark. 2020-11-17 04:59:26 +07:00
XMRig
f7f07ce42c
Fixed build. 2020-11-16 16:37:57 +07:00
XMRig
c1d99bfa09
Benchmark refactoring, zero delay submit and unified HTTP layer. 2020-11-16 16:22:34 +07:00
XMRig
be8245fc92
Unlock benchmark size for debug builds. 2020-11-16 08:56:35 +07:00
XMRig
926871cbe1
Removed non thread safe access to config. 2020-11-16 07:58:28 +07:00
SChernykh
ee677ef5c9 Added reference hashes for 1T offline benchmark 2020-11-16 00:57:00 +01:00
SChernykh
c10ec90b60 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
XMRig
aa284c6a3a
Added warning about libcpuid deprecation. 2020-11-15 04:23:59 +07:00
XMRig
6379d1f90e
Add static_assert 2020-11-15 04:13:40 +07:00
SChernykh
9a1e867da2 Fixed MSR mod names in JSON API 2020-11-14 19:55:43 +01:00
XMRig
e3727f01b8
Added 250K and 500K offline benchmarks. 2020-11-12 11:15:43 +07:00
XMRig
f08887180d
Added --token command line option. 2020-11-10 21:29:13 +07:00
SChernykh
44054ac7eb Added CPUID info to JSON report 2020-11-10 12:15:52 +01:00
SChernykh
c8c0abdb00 Separate MSR mod for Zen/Zen2 and Zen3
Another +0.5% speedup for Zen2
2020-11-08 19:40:44 +01:00
XMRig
99e9073993
Fixed build without HTTP. 2020-11-03 00:21:22 +07:00
XMRig
51690ebad6
#1918 Fixed check for 1GB huge pages on ARM Linux. 2020-11-02 21:26:35 +07:00
XMRig
3910cf9e69
Added vendor to ARM CPUs name and added "arch" field. 2020-11-01 12:06:35 +07:00
XMRig
5f314edb2f
Print benchmark url 2020-10-30 23:24:01 +07:00
XMRig
4914fefb1f
Added "msr" field for CPU backend. 2020-10-25 16:36:37 +07:00
XMRig
03cd56ed73
Implemented PATCH requests. 2020-10-25 13:41:39 +07:00
XMRig
79c96418c7
Implemented BenchClient. 2020-10-24 19:43:23 +07:00
XMRig
36c1cb23e0
Implemented static benchmark verification (--bench --seed --hash) 2020-10-24 13:53:49 +07:00
XMRig
6860450147
Removed legacy CUDA plugin API. 2020-10-20 18:04:56 +07:00
XMRig
328f985e07
Added Benchmark class. 2020-10-17 04:03:42 +07:00
XMRig
7fc7b976bf
Removed m_bench field from Job class. 2020-10-16 20:29:11 +07:00
XMRig
36b1523194
Code cleanup. 2020-10-16 19:35:36 +07:00
XMRig
5155139e9a
Improve some benchmark log messages. 2020-10-16 04:11:50 +07:00
XMRig
a152d6be42
Added CMake option WITH_BENCHMARK. 2020-10-16 02:18:07 +07:00
cohcho
5b4648339a WorkerJob: fix calls of add/nextRound
WorkerJob::nextRound() doesn't require roundSize to be power of 2
Use CudaWorker::intensity(), OclWorker::intensity() to get device batch size
Sync nonce and device iteration
2020-10-15 14:56:37 +00:00
SChernykh
8c45e3226d Fixed roundSize() usage in OCL/CUDA 2020-10-15 14:39:54 +02:00
SChernykh
c4db1435b2 Make round size power of 2 2020-10-15 14:29:15 +02:00
SChernykh
722e468bd9 Benchmark: added more check hashes and a progress indicator 2020-10-15 08:23:47 +02:00
SChernykh
144f9c4409 Fixed compile errors in Linux 2020-10-14 21:03:21 +02:00
SChernykh
2ecece7b3d Added benchmark and stress test
Easy to use and zero configuration embedded benchmark/stress test.
2020-10-14 19:45:05 +02:00
xmrig
581d004568
Merge pull request #1890 from SChernykh/dev
Added argon2/chukwav2 algorithm
2020-10-13 14:54:34 +07:00
SChernykh
4f7186cb0e 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
xmrig
f85efd163c
Merge pull request #1887 from SChernykh/dev
Fixed total hashrate update
2020-10-10 22:07:37 +07:00
SChernykh
793a2454ad 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
cohcho
4a74ce3242 CPU: use raw counter 2020-10-10 13:28:14 +00:00
SChernykh
22a69f70da Fix HashrateInterpolator::addDataPoint 2020-10-10 11:22:19 +02:00
SChernykh
3fbf2ac3d4 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
cohcho
17795e3d7b Worker: specify default value 2020-10-09 14:28:36 +00:00
SChernykh
858463ceba Change to fetch_xor to make code simpler 2020-10-09 11:50:11 +02:00
SChernykh
a4550f55ea 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
xmrig
1289942567
Merge pull request #1876 from SChernykh/dev
RandomX: added `huge-pages-jit` config parameter
2020-10-07 22:48:57 +07:00
SChernykh
44dcded866 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
a705ab775b RandomX: align args
tempHash/output must be 16-byte aligned for randomx_calculate_hash{,_first,_next}
2020-10-07 14:47:18 +00:00
SChernykh
ebf259fa7c RandomX: removed rx/loki
Loki forks to PoS on October 9th.
2020-10-02 17:02:52 +02:00
SChernykh
bef9031b03 KawPow: fixed OpenCL memory leak 2020-09-25 10:53:24 +02:00
SChernykh
768a4581e0 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
c7476e076b RandomX refactoring, moved more stuff to compile time
Small x86 JIT compiler speedup.
2020-09-18 20:51:25 +02:00
cohcho
30be1cd102 reserve at most 1 bit for wrapping detection 2020-09-13 18:42:16 +00:00
xmrig
adf833b60a
Merge pull request #1827 from cohcho/nonce_iteration_without_tests
nonce iteration optimization
2020-09-10 19:33:23 +07:00
SChernykh
4a9db89527 RandomX: added SSE4.1-optimized Blake2b
+0.15% on `rx/0`
+0.3% on `rx/wow`
2020-09-10 14:28:40 +02:00
cohcho
060c1af4c4 fix nonce mask 2020-09-09 19:39:52 +00:00
cohcho
b826985d05 nonce iteration optimization
efficient and correct nonce iteration without duplicates
2020-09-09 10:03:37 +00:00
XMRig
ff13675d31
Improved CUDA loader error reporting and fixed plugin load on Linux. 2020-08-23 21:30:12 +07:00
XMRig
4b682b6633
Better scripts/build.*.sh compatibility. 2020-08-23 15:46:56 +07:00
XMRig
a354e9d217
Fixed tag in OclLib. 2020-08-21 08:21:51 +07:00
XMRig
950b5fa75e
Disable GPU backends with static build on Linux. 2020-08-20 15:02:31 +07:00
XMRig
206b675892
Always use all available threads on ARM. 2020-08-16 17:36:38 +07:00
XMRig
cac48cdd27
Added ARM CPU name detection based on lscpu code. 2020-08-16 15:47:29 +07:00
SChernykh
abb78302b8 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
XMRig
1acd88ed39
Cleanup 2020-07-22 21:27:40 +07:00
SChernykh
bd8cf54a0b Cryptonight OpenCL: fix for long input data 2020-07-16 10:39:32 +02:00
SChernykh
c83429c55c 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
5e92acab34
Merge pull request #1763 from SChernykh/dev
KawPow: fixed more duplicate share errors
2020-07-04 02:37:03 +07:00
SChernykh
935b8a1106 KawPow: fixed more duplicate share errors 2020-07-03 21:33:44 +02:00
XMRig
bf32802a82
#1754 Fixed GPU health readings for pre Vega GPUs. 2020-07-03 21:14:21 +07:00
SChernykh
70d7fe9b59 Fix typo 2020-07-02 14:29:52 +02:00
SChernykh
39ed25cf7b KawPow: fixed rare duplicate share errors 2020-07-02 11:36:31 +02:00
SChernykh
08ca51ec4c Fixed DAG initialization on slower AMD GPUs
Display driver could reset on GPUs with screen connected.
2020-06-30 16:53:56 +02:00
XMRig
03e9797b92
Merge branch 'dev' of https://github.com/SChernykh/xmrig into dev 2020-06-23 19:12:34 +07:00
SChernykh
38cf5b6324 Fixed AstroBWT OpenCL compilation on some systems 2020-06-23 13:55:43 +02:00
XMRig
16863763d3
#1742 Fixed crash when use HTTP API. 2020-06-23 16:17:06 +07:00
XMRig
a83f2c809c
Merge branch 'dev' into evo 2020-06-18 11:18:30 +07:00
XMRig
416c9eff69
Fixed AMD GPU health readings on Linux. 2020-06-18 11:16:26 +07:00
SChernykh
5324761e06 Show GPU # when compute error happens 2020-06-11 19:48:53 +02:00
SChernykh
dc0aee1432 KawPow: fixed crash on old CPUs
- Use `popcnt` instruction only when it's supported
2020-06-10 21:49:43 +02:00
XMRig
69a6111a4f
Merge branch 'dev' into evo 2020-06-10 00:58:29 +07:00
SChernykh
2d2f3d4eb2 Fixed detection of AVX2/AVX512 2020-06-09 17:47:23 +02:00
SChernykh
7f00cb59d2 Conceal (CCX) support 2020-06-07 01:01:45 +02:00
XMRig
f18bfeb77d
Merge branch 'evo' of https://github.com/SChernykh/xmrig into pr1713 2020-06-05 19:17:01 +07:00
XMRig
ba017708bb
Add tag to error message. 2020-06-05 19:02:32 +07:00
SChernykh
0dbf41f761 Reduced memory for KawPow 2020-06-05 14:01:49 +02:00
SChernykh
ba405d1984 Print errors from KawPow DAG initialization 2020-06-05 09:33:36 +02:00
XMRig
4209aeb94d
Change API version for CUDA plugin. 2020-06-03 19:01:21 +07:00
XMRig
bbd3f05bf6
Implemented donate for KawPow. 2020-06-01 00:56:26 +07:00
SChernykh
9cbdb7f1f2 KawPow: reduced stale/expired shares 2020-05-31 18:22:21 +02:00
XMRig
169fad3a5c
Fix compile warnings. 2020-05-29 20:02:57 +07:00
SChernykh
297ff13810 Tuned KawPow OpenCL kernel
Removed unnecessary memory barrier.
2020-05-29 13:10:24 +02:00
SChernykh
c9730faa49 Hashrate display fixes 2020-05-28 22:23:31 +02:00
SChernykh
2e3d087750 Merge remote-tracking branch 'upstream/evo' into evo 2020-05-28 22:06:10 +02:00
SChernykh
6676126376 Fixed hashrate and diff display for KawPow 2020-05-28 22:03:28 +02:00
XMRig
eb1ed497e7
Log cleanup. 2020-05-29 02:11:29 +07:00
SChernykh
734f142b47 KawPow fix for retarted AMD OpenCL compiler 2020-05-28 20:27:25 +02:00
SChernykh
fb0ce0bf61 KawPow performance fix for AMD Navi 2020-05-28 18:28:23 +02:00
XMRig
7a3233ab4b
Use long tags. 2020-05-28 20:32:41 +07:00
xmrig
0ad4257113
Merge pull request #1697 from SChernykh/evo
KawPow: tuned work group size for OpenCL
2020-05-28 16:58:18 +07:00
SChernykh
e3d727cdb6 KawPow: tuned work group size for OpenCL 2020-05-28 10:58:06 +02:00
XMRig
df24b25b64
Fixed code style. 2020-05-27 23:30:17 +07:00
XMRig
15000e2c22
Fix Linux build. 2020-05-27 22:08:23 +07:00
SChernykh
22b937cc1c KawPow WIP 2020-05-27 16:19:57 +02:00
XMRig
0a7324f500
Merge branch 'dev' 2020-05-23 11:08:53 +07:00
Bohan Yu
a797d808b5 Change cases of Windows include file and link library
When cross-compiling on case sensitive systems, such as Linux, there will be an Error.
2020-05-13 21:00:52 +08:00
XMRig
3cbf0dc0ee
Removed code duplicate. 2020-05-09 01:13:46 +07:00
XMRig
85af4e27ec
Fix ARM build. 2020-05-08 23:42:53 +07:00
XMRig
a7caf4cc66
Fix build. 2020-05-08 23:05:44 +07:00
XMRig
628506e266
ICpuInfo refactoring. 2020-05-08 22:25:13 +07:00
SChernykh
80d944bf82 Optimized RandomX dataset initialization
- Use single Argon2 implemenation
- Auto-select the fastest Argon2 implementation for RandomX
2020-05-03 20:44:59 +02:00
XMRig
8aeba61706
Add 3rdparty prefix to all rapidjson includes. 2020-04-29 14:55:04 +07:00
XMRig
46e49cde0b
Update base. 2020-04-29 14:17:33 +07:00
XMRig
0cc90b152d
Move CnAlgo 2020-04-23 12:34:26 +07:00
XMRig
2d95a394a6
Code cleanup. 2020-04-12 19:50:11 +07:00
xmrig
1a495e351c
Merge pull request #1641 from SChernykh/dev
RandomX JIT refactoring
2020-04-09 19:34:31 +07:00
SChernykh
680e4dd865 Fix code style 2020-04-09 14:31:42 +02:00
SChernykh
abb3340cc7 RandomX JIT refactoring
- Smaller memory footprint
- A bit faster overall
2020-04-09 14:24:54 +02:00
xmrig
70a3a83c26
Merge pull request #1635 from SChernykh/dev
Pooled allocation of RandomX VMs
2020-04-08 17:04:25 +07:00
SChernykh
69cbfd682a Use node number instead of affinity 2020-04-07 18:46:22 +02:00
SChernykh
6ae37a9519 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
XMRig
2e6c518a1c
Code style cleanup 2020-04-04 17:19:23 +07:00
SChernykh
7f01c5c6f3 AstroBWT CUDA support 2020-04-04 11:05:44 +02:00
xmrig
618ca6525b
Merge pull request #1605 from SChernykh/dev
Fixed AstroBWT OpenCL for NVIDIA GPUs
2020-03-25 03:58:07 +07:00
SChernykh
c0f7e881ba Fixed AstroBWT OpenCL for NVIDIA GPUs 2020-03-24 15:55:54 +01:00
XMRig
382bfb0957
Fixed gcc build. 2020-03-23 05:30:11 +07:00
SChernykh
fbedf197ab AstroBWT OpenCL code 2020-03-22 22:36:21 +01:00
XMRig
92a258f142
Added command line option --astrobwt-avx2 2020-03-12 00:04:07 +07:00
SChernykh
e22f798085 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
XMRig
16a83a9f61
Move files. 2020-03-09 01:22:34 +07:00
XMRig
6cb27e9662
Added command line option --astrobwt-max-size 2020-03-08 00:13:47 +07:00
XMRig
1f36ea2a8e
Added "coin": "keva" and post PR cleanup. 2020-03-07 20:38:44 +07:00
XMRig
ab90af37b3
Merge branch 'master' of https://github.com/kevacoin-project/xmrig into feature-rx-keva 2020-03-07 17:13:08 +07:00
XMRig
4a5493e12f
Added the wizard suggestion. 2020-03-07 03:24:35 +07:00
XMRig
6a45d5dcc9
Update year. 2020-03-06 12:57:21 +07:00
kevacoin
56e88f57fb Fixed scratchpad L2/L3 bit, from 18, 21 to 17 and 20. 2020-03-05 11:23:49 -08:00
SChernykh
eeadea53e2 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
kevacoin
0528ccd01e Added Keva. 2020-03-04 16:23:33 -08:00
SChernykh
14ef99ca67 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
887c891ab2 Refactored fma_soft() in randomx_vm.cl
Fixes #1554 (hopefully)
2020-02-18 18:19:03 +01:00
XMRig
311d3e1c18
Fixed wrong OpenCL platform on macOS. 2020-02-15 04:32:32 +07:00
XMRig
d23e5e15ba
Added AMD GPUs health information for Linux (via sysfs). 2020-02-14 23:37:44 +07:00
XMRig
5ad52192fe
Update year. 2020-02-14 02:41:21 +07:00
SChernykh
7fa5e8706e Added RandomX JIT for AMD Navi GPUs 2020-02-13 20:15:08 +01:00