jceminer / cn_gpu_miner

The GPU+CPU version of JCE
23 stars 12 forks source link

JCE Cryptonote CPU+GPU Miner

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.

End of development

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

The 0.33b8 and later offers a speed increase in most cases and a more stable hashrate, you're advised to upgrade even if you didn't experience problems on older versions. The 0.33b11+ is recommended.

Breaking change: starting with version 0.33, Intel GPUs (including the IGP) are detected, which may invalidate your previous configurations.

Index

Limitations

Speed

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.

Drivers

Recommended drivers:

Warming-up

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.

Fees

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.

Planned features

JCE GPU is still incomplete. Here are the planned features to be added:

Configuration

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.

Best known configurations

Troubleshooting

Q. My GPU is not even recognized

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.

Q. The OpenCL compilation fails

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.

Q. My hashrate is zero or almost zero

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.

Q. My hashrate starts good then drops to zero or almost zero

Lower the parameters, focus first on the multi_hash, or unplug any screen (real or virtual) from the card.

Q. My hashrate is a lot lower than other miner X

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.

Q. My pool reports a hashrate lower than the one displayed

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.

Q. I get error D:\qb\workspace\19992\src\vpg-compute-neo\runtime\os_interface\windows\wddm.cpp

Intel GPUs are now enabled among AMD GPUs, ensure you're not applying a previous AMD configuration to an Intel GPU

Q. I get error Abort was called at ... line in file ...

Another symptom of a bad (or unwanted) Intel GPU/IGP configuration, see above.