The Fastest Cryptonote CPU Miner ever, plus some tastes of GPU!
BitcoinTalk Topic: https://bitcointalk.org/index.php?topic=3281187.0
:heavy_exclamation_mark: Security Alert! Some hackers pack a Trojan in a fake JCE release, complete with the doc. :heavy_exclamation_mark: That's usually a small .rar when official JCE are big .zip\ Download JCE only from this Github page.
Here's the GPU version, which still offers the CPU mode, plus an OpenCL GPU mode.
Due to lack of dev time to provide legit implementations of the new forks (read: not just a rip of the reference code), I had to end the dev. The forks listed below are the last to be supported and notably Monero4 isn't and won't be supported. The miner itself can still be used, with good performance, on the supported forks, including BitTube, Stellite v8 and Turtle v2.
The GPU version being a superset of the CPU version, what applies to JCE CPU also applies to JCE GPU, notably the netcode, the forks or the security concerns, please take a look at the main documentation here https://github.com/jceminer/cn_cpu_miner
It's hard to compare GPU Miners. There are a lot of external parameters: the card itself, its memory, the biosmod, the drivers, the overclocking, the Power Limit...
However, according to the first feedbacks, here's the status on CN-v7:
On CN-v8:
On CN-Heavy/HVX/Tube:
The CPU part of JCE-GPU is the exact same than the CPU-only version.
Recommended drivers:
JCE lets the OpenCL driver allocate computing power progressively, and does not push the card at max immediately.\ It starts at ~80% speed and grows up to 100% in about 1 minute. So let the miner warm up before comparing its speed to other miners.
Current fees are:
If you mix CPU and GPU, fees are adjusted proportionally.\ If you mine with GPU only, disable CPU mining with --no-cpu or manually configure zero CPU, rather than pausing your CPU to avoid paying CPU related fees for nothing, and vice-versa.
JCE GPU is still incomplete. Here are the planned features to be added:
JCE provides an auto-config, with parameters:
If you need manual config, then all rely on the configuration file. You cannot configure CPU automatically and GPU manually, or vice-versa.\ The auto GPU config aims for safety and will probably be a decent but suboptimal configuration for your GPUs.
Here's an example of a complete config with CPUs and GPUs:
"cpu_threads_conf" :
[
{ "cpu_architecture" : "auto", "affine_to_cpu" : 0, "use_cache" : true, "multi_hash":1 },
{ "cpu_architecture" : "auto", "affine_to_cpu" : 1, "use_cache" : true, "multi_hash":1 },
{ "cpu_architecture" : "auto", "affine_to_cpu" : 2, "use_cache" : true, "multi_hash":1 },
{ "cpu_architecture" : "auto", "affine_to_cpu" : 3, "use_cache" : true, "multi_hash":1 },
],
"gpu_threads_conf" :
[
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : 0, "multi_hash":464 },
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : 0, "multi_hash":464 },
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : 1, "multi_hash":208 },
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : 1, "multi_hash":224 },
]
This is a real-life example from my pretty exotic and old rig:
mode : can be GPU and APU, but APU is not available yet, so keep GPU
worksize : exact same meaning than in other miners, that's the OpenCL parallelism level
the greeks : minor tuning values, in order of importance. Good values for alpha are 32, 64 or 128, and for beta 8 or 16.
index : the GPU number. Run JCE with parameter --probe
to get the list. It's in native OpenCL order, and GPU 0 is not always the main boot GPU, and may be an IGP if you have one.
multi_hash : often called intensity by other miners. Claymore parameter for it was -h
. Like for CPU, that's the number of hashes computed at the same time. While CPUs go from 1 to 6, GPUs go much higher. Often the higher the faster, but not that simple. Must be a multiple of 16.
HD7950 (Tahiti 3GB and more) Cryptonight v7
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : ..., "multi_hash":464 },
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : ..., "multi_hash":464 },
Twice the same to use the double-mem mode.
HD7950 (Tahiti 3GB and more) Cryptonight-Heavy/Haven/Tube
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : ..., "multi_hash":656 },
Double-mem should be avoided here
HD7790 (Bonaire 1GB) Cryptonight v7
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : ..., "multi_hash":208 },
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : ..., "multi_hash":224 },
Two threads to use the double-mem mode, but the little 1GB VRAM doesn't allow to use 224+224 so I use 208+224.
HD7870 or HD7850 (Pitcairn 2GB) Cryptonight v7
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : ..., "multi_hash":464 },
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : ..., "multi_hash":464 },
Twice the same to use the double-mem mode.
RX550 2GB Cryptonight v8
{ "mode" : "GPU", "worksize" : 16, "alpha" : 64, "beta" : 8, "index" : ..., "multi_hash":432 },
{ "mode" : "GPU", "worksize" : 16, "alpha" : 64, "beta" : 8, "index" : ..., "multi_hash":432 },
Twice the same to use the double-mem mode. Also try with worksize=8.
RX560 (Baffin 2GB) Cryptonight v7
{ "mode" : "GPU", "worksize" : 8, "alpha" : 128, "beta" : 8, "index" : ..., "multi_hash":464 },
{ "mode" : "GPU", "worksize" : 8, "alpha" : 128, "beta" : 8, "index" : ..., "multi_hash":464 },
Twice the same to use the double-mem mode. If a screen is plugged in the card, you may need to lower to 448 or 432
RX570 8G Cryptonight v7
{ "mode": "GPU", "worksize": 4, "alpha": 128, "beta": 8, "index": ..., "multi_hash": 1008 },
{ "mode": "GPU", "worksize": 4, "alpha": 128, "beta": 8, "index": ..., "multi_hash": 1008 },
Twice the same to use the double-mem mode.
RX580 4G Cryptonight v7
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : ..., "multi_hash": 944},
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : ..., "multi_hash": 944},
Twice the same to use the double-mem mode.
RX580 8G Cryptonight v7
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : ..., "multi_hash":1696 },
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : ..., "multi_hash":1696 },
Twice the same to use the double-mem mode.
RX580 8G Cryptonight v7
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : ..., "multi_hash":1696 },
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : ..., "multi_hash":1696 },
Twice the same to use the double-mem mode.
Vega56 Cryptonight-Heavy/Haven/Tube
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : ..., "multi_hash":896 },
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : ..., "multi_hash":896 },
Twice the same to use the double-mem mode.
RX580 8G Cryptonight-Heavy/Haven/Tube
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : ..., "multi_hash":832 },
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : ..., "multi_hash":832 },
Twice the same to use the double-mem mode.
Vega64 Cryptonight v7
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 16, "index" : ..., "multi_hash":1920 },
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 16, "index" : ..., "multi_hash":1920 },
or, alternative
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : ..., "multi_hash":1936 },
{ "mode" : "GPU", "worksize" : 8, "alpha" : 64, "beta" : 8, "index" : ..., "multi_hash":1936 },
Twice the same to use the double-mem mode.
If it's an APU or a nVidia card, they are not supported yet.\ On Windows 7 you will probably have no GPU detected at all. Windows 7 is not supported.
nVidia OpenCL driver and cards older than the HD6000 may cause such an error. They are not supported yet.\ The 0.2.10 error is partially fixed starting from 0.33b6\ Also better use only english characters in the path where you install JCE, russian and other non-ascii characters can cause such a problem.
Lower the parameters, and focus first on the multi_hash.\ In JCE Miner, the integrated GPU/IGP, even if it's an Intel one, even if embedded in the CPU, is often GPU0. If you experience a zero or very low hashrate on GPU0, ensure you're not mistakenly mining on your IGP. To fix, use a manual configuration and number your GPUs starting from 1.
Lower the parameters, focus first on the multi_hash, or unplug any screen (real or virtual) from the card.
The performance difference between JCE and other miners, may it be positive or negative, is rarely more than ~10%, and often closer to 5%. A huge difference is caused by a bad configuration. And a good configuration on miner X may be bad on JCE, and vice-versa.\ A notable exception is JCE against Claymore on 512M and 1G cards, where Claymore is an order of magnitude faster. JCE has been developed in 2018 and badly support old low-memory cards. But on 2G+ cards JCE is often faster.\ And again, keep in mind that JCE speed grows progressively from ~80% to 100% for 1min, so wait a bit before concluding JCE is slower.
First, press R to get JCE report about effective hashrate. If it's lower, that's just because of back luck, mining is a random game. If it's close to the theoretical value, the loss should be about 2%, 0.9% for fees and ~1% of stale shares. If you observe a huge difference between JCE reported effective hashrate and the pool hashrate, so the pool may be cheating you.\ Nicehash, which have a specific network protocol, tend to refuse a lot more stale shares than other pools, leading to a lower effective hashrate. In doubt, please test on a normal and reliable pool: a non-free non-marketplace pool with a normal difficulty level.
Intel GPUs are now enabled among AMD GPUs, ensure you're not applying a previous AMD configuration to an Intel GPU
Another symptom of a bad (or unwanted) Intel GPU/IGP configuration, see above.