Bitcoin Forum
October 04, 2024, 05:52:52 AM *
News: Latest Bitcoin Core release: 27.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 ... 119 »
  Print  
Author Topic: [JCE]Fast & stable CN/v8/Heavy/Tube/XHV miner, CPU+GPU, Vega56 1800+ RX580 1200+  (Read 90822 times)
JCE-Miner (OP)
Member
**
Offline Offline

Activity: 350
Merit: 22


View Profile
April 08, 2018, 10:15:41 AM
Last edit: March 02, 2019, 05:26:45 PM by JCE-Miner
Merited by suchmoon (5), CjMapope (3), KriptoGuruTR (2), nsummy (1), ingvarfervent (1), heavyarms1912 (1), bitnod (1), PIOUPIOU99 (1)
 #1

JCE Cryptonote CPU+GPU Miner

Welcome to the Fastest Cryptonote CPU Miner ever! Now with GPU!

Github page: https://github.com/jceminer/cn_cpu_miner
You can download it from the GitHub page or directly here:
https://github.com/jceminer/cn_cpu_miner/raw/master/jce_cn_cpu_miner.windows.033q.zip
https://github.com/jceminer/cn_cpu_miner/raw/master/jce_cn_cpu_miner.linux.033q.zip

Try the GPU Version (includes the CPU miner), the fastest CN-Heavy/XHV/Tube miner!
https://github.com/jceminer/cn_gpu_miner

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.

Is that a Virus? No!

Like all miners, JCE gets detected as a virus by most Antiviruses, including Windows Defender. But it's not. Read more about Privacy and Security below.

Is it just yet-another fork of a common miner? No!

You're not losing your time testing a made-up rip of a common miner, JCE is brand new, using 100% new code.

Are the new Monero-V7, Cryptolight-V7, V8, Cryptonight-Heavy, IPBC/Bittube, Alloy, Arto/Fest/Hosp, MKT, B2N, Red, Fast/Masari, Haven, FreeHaven/Swap, UPX, Waltz, Turtle-V2, Dark and XTL forks supported? Yes!

The --variation parameter lets you choose the fork. More details below.

Recent history

0.33q CPU and 0.33b18 GPU
Quote
* TurtleCoin defaults to v2
* Fix possible Masari v8 bad shares
* Waltz/Graft fork as --variation 22

0.33b17 GPU
Quote
* Masari v8 support
* watchdog can restart the miner instead of quit, parameter --restart

0.33p CPU
Quote
* Native Stellite v8 and Masari v8 support

0.33b16 GPU
Quote
* Stellite v8
* Rig-id
* Light optim for mixed cpu/gpu mining

0.33n CPU
Quote
New fork: Stellite v8
Rig-id parameter (optional)

0.33b15 GPU
Quote
Backport of 0.33m CPU
New fork: Turtle v2, as --variation 20
New coin: DeroGold
Remote Managment through the HTTP server
IGP autoconfig fix

0.33m CPU
Quote
New fork: Turtle v2, as --variation 20
New coin: DeroGold
Remote Managment through the HTTP server

0.33k CPU
Quote
Separate assembly for Bulldozer x64 on v8 algo

0.33b14 GPU
Quote
uPlexa fork, as --variation 19
Backported CPU optim from 0.33j
--legacy now keeps the CPU idle when mining only with GPU

0.33j CPU (upgrade to this one or later for CPU mining highly recommended)
Quote
uPlexa fork, as --variation 19
Better/restored speed on v8
Updated a few shitcoins forks.

0.33i CPU
Quote
Big optimization for v8, for all CPUs +2%
Sumokoin wallets default to Ryo

0.33b13 GPU
Quote
Fix regression in b12 on old algos (masari, turtle, arto...)
New mode: --legacy to fix some speed regression in some card/algo combinations

0.33b12 GPU

0.33b11 GPU
Quote
New coin FredCoin
Better pool-side efficiency

0.33h CPU
Quote
New coin FredCoin
Little optim for Zen CPU on v8

0.33b10 GPU+CPU
Quote
Fixed possible bad shares
Little optim for RX on v8
Little optim for Zen CPU on v8
Warning when a non-AMD gpu is enabled to mine

0.33b9 GPU (upgrade to this one or later highly recommended)
Quote
Fixed Nicehash netcode
Very little optim for RX on Heavy/forks
Warmup now all automatic

0.33b8 GPU
Quote
More stable hashrate
Speed increase in most cases

0.33b7 GPU
Quote
Cryptonight-FreeHaven backported from CPU version
Cryptonight-Dark too
Fees lowered back to 0.9% for all algos
Little optims

0.33g CPU
Quote
Cryptonight-FreeHaven algo with --variation 18
MoneroOcean "algo_perf" configuration possible
Updated doc

0.33f CPU
Quote
Cryptolight-Dark algo with --variation 17
Parameterless config (service style)

0.33b6 GPU
Quote
More stable hashrate
Temperature watchdog
Fixed OpenCL bug 0-2.10
Updated doc
Very light perf boost

0.33b5 GPU
Quote
Crazy huge performance boost for Heavy/HVX/Tube + 20%
Respective fees increased to 2.1%
Very light perf boost for CN-v8

0.33b4 GPU
Quote
Huge performance boost on CN-v8
Graft now defaults to CN-v8

0.33d and 0.33e CPU
Quote
Performance optimization on Non-AES-64 and v8
More coins
Fix for possible stale shares after a long pause

0.33c CPU
Quote
Pool-managed autoswitch (à la MoneroOcean)
Light boost on v8 algo
new assemblies: generic_fpu and generic_sse4_fpu for old CPUs
fixed AVX detect on Vishera on other recent CPUs

CPU Speed

In short, JCE is:

  • Crazy fast on non-AES 64-bits, usually 35-40% faster than other miners
  • Compared to other 32-bits miners, still faster on non-AES 32-bits, sometimes beating even the other miners 64-bits versions
  • And still comparatively faster on non-AES 32-bits Cryptonight-Heavy, with usually +50% speed.
  • Slightly faster than the other best on AES 64-bits, beating them by ~1% on CN-classic, +2.8% on v7 fork, +2% on v8, +4% on Cryptonight-Heavy
  • A lot faster than any other miner when mining BitTube v2, on any processor, with ~30% extra speed.
  • Also a lot faster on AES 32-bits, but it's a rare case (mostly seen on Intel Atom tablets)
   
Third Party integration

If you're a Mining Tool dev (like Forager or Awsome Miner...) and want to integrate JCE, here's a good command to spawn JCE. Most parameters are similar to other common miners.

Code:
jce_cn_cpu_miner64 --auto --any --forever --variation FORK --low -o POOL:PORT -u WALLET -p PASSWORD --mport MONITOR SSL

And replace:

    FORK by the Fork number, see list below, or set 0 for automatic
    POOL:PORT by the pool address (name or IP):(port), e.g. pool.minexmr.com:4444
    WALLET by the miner wallet
    PASSWORD by the miner password
    MONITOR by the local HTTP monitor server port
    SSL by either nothing, or "--ssl" if SSL is to be used

To monitor the miner, read http (not https!) at localhost:MONITOR and you'll get some simple JSON like

Code:
{
  "hashrate":
  {
    "thread_0": 13.75,
    "thread_1": 18.29,
    "thread_2": 21.19,
    "thread_3": 18.85,
    "thread_all": [13.75, 18.29, 21.19, 2.71, 18.85],
    "total": 72.06
  },
  "result":
  {
     "pool": "pool.minexmr.com:4444",
     "ssl": false,
     "currency": "Monero (XMR/XMV/XMC/XMO)",
     "difficulty": 23684,
     "shares": 5,
     "hashes": 84473,
     "uptime": "0:08:28",
     "effective": 166.29
  }
}

Quite self-explanatory,
"effective" is the net effective hashrate, fees, outdated and invalid shares deduced,
"total" is the instant physical hashrate

XMRStak mode

If your mining tool does not support JCE yet, you can get a XMR-Stak compatible json by adding parameter --stakjson
In such case, the JSON will be like:

Code:
{"version":"jce/0.27c/cpu","hashrate":{"threads":[[28.0,28.0,28.0],[25.7,25.7,25.7],[26.3,26.3,26.3],[26.5,26.5,26.5]],"total":[106.5,106.5,106.5],"highest":106.5},"results":{"diff_current":15000,"shares_good":1,"shares_total":1,"avg_time":12.0,"hashes_total":15000,"best":[118228,0,0,0,0,0,0,0,0,0],"error_log":[]},"connection":{"pool": "pool.minexmr.com:4444","uptime":12,"ping":0,"error_log":[]}}

Getting started

If you're new at mining Cryptonight, here's the simplest way:

  • Choose the coin to mine, see the list below. The most common is Monero.
  • Get a wallet, that's a ~95 character long identifier. If you don't have one yet, you can create it here
  • Choose a pool to mine on, and its port. For example Pool pool.minexmr.com and port 4444
  • Edit the start.bat that's shipped in the .zip
  • * Change the example POOL by yours
  • * Change the example PORT by yours
  • * Change the example WALLET by yours
  • * You can leave the default password x
  • (Optional) If your coin is exotic, maybe you also need to change FORK=0 to another number. See the list in the start.bat
  • Run start.bat


Basic topics

Q. Is it free (as in beer, as in freedom)?
No and no. It has fees, and is not open source. But the program itself is free to distribute.

Q. How much cost the fees?
Current fees are:

    3.0% when using at least one mining thread with non-AES architecture, or 32-bits
    1.5% when using only 64-bits AES architecture
    0.9% when using GPU

The fees are twice higher in non-AES mode and/or 32-bits because JCE offers a huge performance gain here.

Q. Can I avoid fees?
Not really. I plan to offer a paying per-licence-no-fee (pay-once-for-all) version, but it's a lot more complicated to set up than a fee-based miner.
Also, JCE never takes any fee during the first minute, so if you run it, and kill it after one minute, and repeat again and again, then you'll never pay any fee, but JCE takes a few seconds to start, and your Pool probably won't let your reconnect continuously.

Q. Will it work on my computer?
Minimum is Windows Vista 32-bits, or Linux, with a SSE2 capable CPU. 64-bits is faster, prefer it.
For best performance, Large Pages must be enabled, JCE will try to auto-configure them, but it may work or not depending on your Windows version and security configuration.

Q. What currency can I mine? On which pools?
You can mine any coin on any pool.
If your coin is listed, all is automatic.
Run the miner with --coins parameter to get the up-to-date list. Current list is:
  Aeon (AEON)
  Alloy (XAO)
  ArQmA (ARQ)
  ArtoCash (RTO)
  B2BCoin (B2B)
  Bitcoin2network (B2N)
  BBSCoin (BBS)
  Bitcoal (COAL)
  BitcoiNote (BTCN)
  Bitsum (BSM)
  BlackRose (BLR)
  Bloc (BLOC)
  BitTube (TUBE)
  BlueberriesCoin (BBC)
  Bytecoin (BCN)
  Caliber (CAL)
  Catalyst (XAT)
  Citadel (CTL)
  Citicash (CCH)
  Constella (XCC)
  Crepcoin (CREP)
  CryoNote (XCN)
  Dero (DERO)
  DeroGold (DEGO)
  Dinastycoin (DCY)
  DragonGlass (DRGL)
  Electronic Dollar (EDL)
  Electroneum (ETN)
  Elya (ELYA)
  Fonero (FNO)
  FreeHaven (XFH)
  FreelaBit (FBF)
  FuryCoin (FURY)
  Gadcoin (GAD)
  Graft (GRFT)
  Haven (XHV)
  HospitalCoin (HOSP)
  Iridium (IRD)
  Italo (ITA)
  KashKoin (KHK)
  Karbowanec (KRB)
  Lethean (LTHN)
  Leviarcoin (XLC)
  Lines (LNS)
  Loki (LOK)
  Lumeneo (LMO)
  MarketCash (MKT)
  Masari (MSR)
  Minergate
  MiningPoolHub
  MiningRigRentals
  Monero (XMR/XMV)
  MoneroOcean
  Mox (MOX)
  Nicehash
  Niobio (NBR)
  Ombre (OMB)
  ParsiCoin (PARS)
  Plenteum (PLE)
  Pluracoin (PLURA)
  PrivatePay (XPP)
  PyrexCoin (PYX)
  Qwertycoin (QWC)
  Remix (RMX)
  Saronite (XRN)
  Solace (SOL)
  Stellite (XTL)
  Sumokoin (SUMO)
  SuperiorCoin (SUP)
  Suprnova
  Swap (SWAP)
  TaxfreeCoin (TXC)
  Tritanium (TTNZ)
  Triton (TRIT)
  Truckcoin (TRKC)
  Turtlecoin (TRTL)
  UltraNote (XUN)
  UPlexa (UPX)
  Veronite (XVV)
  VideoGamesCoin (VGC)
  Wownero (WOW)
  Xaria (XARI)
  X-Cash (XCA)
  zBucks (ZBK)
  Zelerius (ZLS)

Otherwise, if your coin is not listed, or your wallet not recognized, use the --variation N parameter, with N the fork number, see list below. The fork detection is automatic on known coins, but manual on unknown coins. The coin list is periodically updated.

Q. Is Nicehash supported?
Yes, see list above. The Nicehash-specific Nonce is then automatically enabled.

Q. Is SSL supported?
Yes, with parameter --ssl

Q. I get only bad shares, what happens?
Your coin has probably forked. Add --variation N parameter, with N as listed below, until you find the one that works.

Q. What if my wallet is not recognized, or as a different coin?
Some coins use a wallet syntax so close that they're hard to differenciate, like Lines and Loki. If JCE fails to detect the coin, force it with --any --variation N (with N as listed below) and let the miner run. It will still display the wrong coin but mine the good one. And of course proof-check pool side that you correctly get the shares.

Q. Is there a HTTP server to monitor the miner?
Modern pools provide all you need to monitor your miners (average hashrate, worker-id...). Monitoring is now a pool's job. Still, a minimal HTTP Json server is available with parameter --mport P (P the port number) to ease integration of JCE into mining tools, but not intended for human reading. Forager was the first tool to integrate JCE, take a look!
For more compatibility, with extra parameter --stakjson, the JSON will be in XMR-Stak format.

Advanced topics

Q. Are there requirements or dependencies?
No. JCE is just a big standalone executable.

Q. Is there a Linux version?
Yes, starting from version 0.29

Q. Is there a GPU version?
Yes, starting from version 0.30

Q. Is there a 32-bits version?
Yes, both 32 and 64 are always in the same release, for both Linux and Windows.

Q. How many threads can I setup?
Maximum is 256 threads on 256 CPUs.

Q. Do I get a discount on fees if I use SSL?
I'm not Claymore.

Q. What is that value logged when I find a share?
The amount of hashes your pool will credit you. This is not the amount of crypto-coins.

Q. How is developed JCE?
The network and stratum handling is C++14, and the mining algos are assembly (to be precise, GNU Extended Assembly). Hence the speed increase.

Q. Can I plug it to a stratum proxy?
No, it must mine on a real pool on Internet.

Q. Is it really new? It looks familiar to me...
Yes it is. But it reuses, on purpose, some de-facto conventions from other common miners, like a XMRStak-style cpu configuration, and the colors of Claymore (green=share, red=error, blue=hashrate, yellow=status).

Q. How is the hashrate calculated?
That's the average speed of the last 512 hashes (not shares found, computed hashes), rounded at 0.01. And it's fair, the displayed number has no tweak, and includes the fees. The total is first summed from exact per-thread values, then rounded (said differently, it's a rounded sum, not sum of rounded).

Q. Can I get a long-time speed average?
Better look at your pool's reports, but JCE also gives the average effective net hashrate when pressing R. It's usually slightly lower than the physical hashrate because of outdated shares and fees.

Q. Can I do multi-pool auto-switch in case of failure? Or periodically?
Not directly, but the -q and/or the --autoclose parameters, with the help of a simple .bat, can do the job. The .zip comes with an example, open and edit it to match your needs.

Q. What if the Architecture codename is wrong (e.g. my CoffeLake is detected as Core2)?
It may be because of an option in your BIOS Max CPUID or the microcode is not up-to-date. However the codename displayed is mostly cosmetical and JCE will still choose the good assembly based on your CPU instruction set. If a normally available instruction set is missing (e.g. your Westmere has no AES) again, that's to be unlocked in your BIOS.

Q. Can I mix architectures when mining (i.e. thread 1 uses core2, thread 2 uses pentium4)?
It sounds strange, but yes. However, that's mostly useful for tests.

Q. Can I mix coins when mining (i.e. thread 1 mines XMR, thread 2 mines ETN)?
No.

Q. Can I mix simple-hash and multi-hash?
Yes, and it's a very common case when mining TurtleCoin or Aeon.

Q. Why doesn't the miner use all my cores?
The limiting factor is both the cores and the cache. But while some old CPUs had a core limit (Core2-Quad had 8M or 12M of cache for only 4 cores) recent CPU are more often limited by the cache, that's why the best configuration is rarely to enable all possible cores. Unused cores should stay unused or may mine as uncached, see below.

Q. What is "use_cache":false useful for?
The no-cache mode means the cache is mostly bypassed, depending on your hardware. When using a lot of cache but few cores (typically when mining Cryptonight-Heavy) assigning unused physical cores to no-cache mining can give you a few extra h/s for free. However mixing cache and no-cache of logical CPUs of the same physical core causes terrible performance.

Q. What a great job! Can I make a donation?
Thanks bro. You can, with the --donate parameter which raise the fees to 80%, or by sending coins to the donation wallet (the one in the start.bat file included).

Cryptonight Forks

All current forks are supported:
    N=0 Automatic
    N=1 Original Cryptonight
    N=2 Original Cryptolight
    N=3 Cryptonight V7 fork of April-2018
    N=4 Cryptolight V7 fork of April-2018
    N=5 Cryptonight-Heavy
    N=6 Cryptolight-IPBC (obsolete)
    N=7 Cryptonight-XTL
    N=8 Cryptonight-Alloy
    N=9 Cryptonight-MKT/B2N
    N=10 Cryptonight-ArtoCash/Fest/Hosp
    N=11 Cryptonight-Fast (Masari)
    N=12 Cryptonight-Haven
    N=13 Cryptonight-Bittube v2
    N=14 Cryptolight-Red
    N=15 Cryptonight V8
    N=16 Pool-selected autoswitch algo
    N=17 Cryptolight-Dark
    N=18 Cryptonight-FreeHaven/Swap/Ultrafast
    N=19 Cryptolight-uPlexa
    N=20 Cryptolight-Turtle v2
    N=21 Cryptonight-Stellite v8
    N=22 Cryptonight-Waltz/Graft

To use the new forks, set the --variation N parameter, with N as stated above.
If you mine an unlisted coin so you have to provide the --variation parameter with N>=1, otherwise JCE cannot choose the good fork.

Configuration

Almost everything is configured with command-line parameters. The config file is for cpu fine tuning only. See the embedded .bat for an example.
Mandatory parameters are:

    -u the Wallet/Login
    -p the password ("x" usually works)
    -o the pool:port
    --auto or -c for CPU configuration

Important extra parameters are:

    --ssl if you use SSL
    --low not to freeze your PC if you mine with all cores
    --variation to use one of the new Cryptonight forks

Type --help to get the complete list.

Super Easy CPU configuration

Use --auto and you're good.

Normal Easy CPU configuration

Use --auto with:

    --archi to set the CPU architecture (if you force SSE4 or AES on a CPU with no support, it will crash).
    and/or -t to set the number of threads.

The list of architectures is in the config.example.txt file in the Zip.

Advanced CPU configuration

Use -c
See the config.example.txt file in the Zip for details.

Parameterless file-based configuration

This special mode is helpful for integration of the miner into external managment tools, to run it as a Windows Service, or for the remote managment.

The principle is:
  • Write all parameters you need to pass into a text file named serviceconfig.txt, in the same order, with quotes, separated by commas.
  • Put that file in the current directory of the JCE executable.
  • Run the executable with no parameters.

Example of serviceconfig.txt content:
Code:
"--auto", "--low", "-t", "4", "--keepalive", "-p", "x", ....
Note that each param must be separated, so you write "-t", "4" and not "-t 4"
The JCE package comes with a full example.

Dual-thread mining

This is an exclusive feature of JCE!
It is not like the double-hash found on Stak, with one thread on two hashes. That's two threads on two hashes, but sharing the cache and the Huge Page, for CPUs with very low cache.
The principle is closer to Claymore Dual: use the smooth parts of the Cryptonight algo to let another thread use the cache and memory, then take it back. It allows the main thread to run at ~90% and the side thread at ~25%, totaling a speed increase of ~15%.
However, if this mode is powerful, it offers a gain only on some rare, old CPU:

  • With no hardware AES (hardware AES is so fast that the master thread has no time to share)
  • Not using Cryptonight-Heavy (it's so... heavy that the master thread has no resource to share)
  • With low cache but decent compute power (read: no Atom or antique P4)

Remains some entry-level Core2, Athlons and Celeron/Pentium.
See the example config file config.example.txt in the .zip for details.

Multi-hash

This is what some other miners call low-power mode. It's about using the same CPU to mine several hashes at the same time, using several time the amount of memory and cache. Triple hash for Monero involves 3x2=6M cache and memory per CPU for example.
JCE allows fine-tuning of what mode is used on what CPU, mixing is possible, and often desirable. Autoconfig may enable multi-hash in some cases, but it's mostly used with manual config with -c parameter. Here's an example:

Code:
"cpu_threads_conf" :
[
     { "cpu_architecture" : "auto", "affine_to_cpu" : 0, "use_cache" : true, "multi_hash":2 },
     { "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 },
     { "cpu_architecture" : "auto", "affine_to_cpu" : 4, "use_cache" : true, "multi_hash":1 },
     { "cpu_architecture" : "auto", "affine_to_cpu" : 5, "use_cache" : true, "multi_hash":1 },
     { "cpu_architecture" : "auto", "affine_to_cpu" : 6, "use_cache" : true, "multi_hash":2 },
     { "cpu_architecture" : "auto", "affine_to_cpu" : 7, "use_cache" : true, "multi_hash":1 },
     { "cpu_architecture" : "auto", "affine_to_cpu" : 8, "use_cache" : true, "multi_hash":1 },
     { "cpu_architecture" : "auto", "affine_to_cpu" : 9, "use_cache" : true, "multi_hash":1 },
     { "cpu_architecture" : "auto", "affine_to_cpu" :10, "use_cache" : true, "multi_hash":1 },
     { "cpu_architecture" : "auto", "affine_to_cpu" :11, "use_cache" : true, "multi_hash":1 },
]

This is the best configuration to mine Cryptolight, TurtleCoin or IPBC on a Ryzen 1600/1600X (12 logical CPUs, 16M cache).
By using simple hash, the 12 core would have used 12M cache, because that algo requires 1M per thread. The unused 4M can be involved into mining by turning some thread to double-hash (this is: "multi_hash":2). Curiously, Using 4 double-threads to use the whole 16M cache offers less performance, the best is 10 simple, and 2 double. It may worth to test for your specific CPU, all CPU tend to have a different optimal configuration.

The value of "multi_hash" goes from 1 (default) to 6.

No-cache mode

Another exclusive feature of JCE! (available only in Windows version)
This is the reciprocal of multi-hash: for cases when your have wasted CPU cores, typically when mining Cryptonight Heavy. If you have a Ryzen 1700, 8 physical cores, 16 logical CPUs, 16M cache, the naive configuration would be 4 threads on 4 cores, 4M cache each, total 16M.

Code:
"cpu_threads_conf" :  
[  
     { "cpu_architecture" : "ryzen", "affine_to_cpu" :  1, "use_cache" : true },
     { "cpu_architecture" : "ryzen", "affine_to_cpu" :  5, "use_cache" : true },
     { "cpu_architecture" : "ryzen", "affine_to_cpu" :  9, "use_cache" : true },
     { "cpu_architecture" : "ryzen", "affine_to_cpu" : 13, "use_cache" : true },
]

But 8 logical CPUs would be unused. Enabling them would flood the cache and lead to worse performance. What to do is making them mine, but with no cache, direct to memory. They will mine slowly, but won't disturb other threads, and add some performance for free.

Code:
"cpu_threads_conf" :  
[  
     { "cpu_architecture" : "ryzen", "affine_to_cpu" : 1, "use_cache" : true },
    
     { "cpu_architecture" : "ryzen", "affine_to_cpu" : 2, "use_cache" : false },
     { "cpu_architecture" : "ryzen", "affine_to_cpu" : 3, "use_cache" : false },
 
     { "cpu_architecture" : "ryzen", "affine_to_cpu" : 5, "use_cache" : true },
 
     { "cpu_architecture" : "ryzen", "affine_to_cpu" : 6, "use_cache" : false },
     { "cpu_architecture" : "ryzen", "affine_to_cpu" : 7, "use_cache" : false },
 
     { "cpu_architecture" : "ryzen", "affine_to_cpu" : 9, "use_cache" : true },
 
     { "cpu_architecture" : "ryzen", "affine_to_cpu" : 10, "use_cache" : false },
     { "cpu_architecture" : "ryzen", "affine_to_cpu" : 11, "use_cache" : false },
 
     { "cpu_architecture" : "ryzen", "affine_to_cpu" : 13, "use_cache" : true },
 
     { "cpu_architecture" : "ryzen", "affine_to_cpu" : 14, "use_cache" : false },    
     { "cpu_architecture" : "ryzen", "affine_to_cpu" : 15, "use_cache" : false },    
]

Note how we added no-cache threads on free physical cores, but not on otherwise unused free logical CPUs. That's for AMD. On Intel, you often can add no-cache threads on all free CPUs, logical or not, to get extra performance.

Pool-managed Autoswitch

This is a new feature introduced in JCE 0.33c
This mode, activated with --variation 16, allows your pool to change the mining algorithm on the fly to always target the most profitable coin. The best example is MoneroOcean, and all tests have been done on this pool. Also the Autoswitch is enabled by default when mining there.

If you use the --auto configuration, that's it, everything is automatic, and your pool will be allowed to mine all existing algorithms. Otherwise, the manual configuration is more complicated than for the legacy Single-algo mode, but allows control on what the pool can mine.

The algorithms are sorted in three classes:

* The Cryptolight class (Turtle, Mox, Aeon...)
* The Cryptonight class (Monero, Stellite, Masari...)
* The CN-Heavy class (Loki, Tube, Haven...)

Three new configuration arrays are introduced, one for each class. Not the three are mandatory, only one is, the missing other will make their respective class never mined. For example, if you do NOT setup the array for CN-Heavy, so no CN-Heavy algo will be mined. JCE does not make the Cryptonight class mandatory, but most Algo-switching pool do, and MoneroOcean does.

* The CPU array for Cryptolight class is: "cryptolight_cpu_threads_conf"
* The CPU array for Cryptonight class is: "cryptonight_cpu_threads_conf"
* The CPU array for CN-Heavy class is: "cn_heavy_cpu_threads_conf"

The legacy "cpu_threads_conf" is used when and only when normal Single-Algo mode is used.
The new three are used when and only when Autoswitch mode is used.

It depends on your processor, but the Cryptolight tends to have twice more threads that Cryptonight, and CN-Heavy twice less.
The content of the arrays is the exact same as in the legacy "cpu_threads_conf".
All four arrays (the legacy "cpu_threads_conf" and the new three) are independent and can be stored in the same config file, even if I advise to use separate files for Single-algo and Pool-selected Algo mining, for clarity.

Note: if you use dual-thread mining, the index in "dual_mine_with" in array-local.

Performance hint

MoneroOcean, and probably some other pools, can use a hint about the performances on each algo to select the best algo based on the coins prices and the efficiency of your computer. Configure it as a separate node algo_perf in the config file, see the example below. If missing or not mining with the Pool-managed Autoswitch, it is simply ignored.

Below is an example for a fictional 4-Core 4M-Cache CPU:

Code:
/* This is the configuration when Cryptolight class algo is mined */
"cryptolight_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 },
],

/* This is the configuration when Cryptonight class algo is mined */
"cryptonight_cpu_threads_conf" :
[
     { "cpu_architecture" : "auto", "affine_to_cpu" : 0, "use_cache" : true, "multi_hash":1 },
     { "cpu_architecture" : "auto", "affine_to_cpu" : 2, "use_cache" : true, "multi_hash":1 },
],

/* This is the configuration when CN-Heavy class algo is mined */
"cn_heavy_cpu_threads_conf" :
[
     { "cpu_architecture" : "auto", "affine_to_cpu" : 0, "use_cache" : true, "multi_hash":1 },
],

/* You can also add a performance hint for each algo code (optional) */
"algo_perf":
{
    "cn/xtl": 205.17,
    "cn/2": 160,
    "cn/msr": 300.15,
    "cn-lite": 510.73,
    "cn-lite/1": 499.12,
    "cn-heavy": 90.44,
    "cn-heavy/tube": 88.53,
    "cn-heavy/xhv": 89.31
},
At login, and each time the pool changes the algorithm, the new algorithm is logged.
Each of the three algorithm have then their dedicated threads, both with auto or manual configuration, and the disabled threads are ignored when measuring the hashrate. When the algorithm class changes (when switching from Haven to Graft for example) the respective dedicated threads stop and start.

Large Pages

Large Pages, also called Huge Pages (Linux) or Locked Pages (Windows) is an hardware feature which allow a x86 CPU to access small portions of dedicated memory faster. It's however disabled by default on both Linux and Windows.
The Windows version of JCE will try to enable them, and it will probably succeed when running as admin (parameter --elevate) on a Windows 10 Pro. On other versions, it may depend on your Windows configuration. On Linux, it has to be enabled manually.

Guide for Linux
Guide for Windows
Another guide for Windows
Yet another guide for Windows

JCE uses the Large Pages the same way as any other miner, so if you already configured Large Pages for XMrig, XMRStak or any other, so it will work fine with JCE too.
JCE logs all Large Pages allocations at startup, and cleanly free them at close. If it fails to enable/allocate Large Pages, it will fallback to normal memory, which is 10% slower.

Remote Managment

Starting from JCE 0.33m, a very simplified remote managment through HTTP is available.
To enable it, use the HTTP server parameter --mport P where P is the port number. The server is disabled by default.

Assuming your rig address is righost and the port is 1234, simply navigate (using any web brower or a dedicated tool) to those pseudo-pages:

http://righost:1234/ to get the miner status in JSON format.
http://righost:1234/pause to pause the miner.
http://righost:1234/resume to resume the miner.
http://righost:1234/pause-cpu to pause all CPUs.
http://righost:1234/pause-gpu to pause all GPUs.
http://righost:1234/pause-gpu-N to pause GPU N (N decimal or hexa).
http://righost:1234/stop to kill the miner.
http://righost:1234/restart to restart the miner.

All commands received by the miner are logged, even if they don't make sense, like resuming an already running miner or pausing a GPU you don't have or don't use. In such case they do nothing else than being logged.

You can stop or restart the miner even when it's in paused state.
Internally, a page is considered navigated when the HTTP server receives a GET request. Doing such with a web browser is both trivial and non-intuitive, this feature is designed to be used through an external tool or html shortcuts.

The restart allows you to do an indirect coin/pool switch: by configuring the miner only with external files (typically with the serviceconfig.txt parameter file) you can:

  • Edit the config files
  • Send the restart command
  • Let the miner restart and connect to the potentially new pool, to mine a potentially new coin etc.

Privacy and Security

Q. Is it a virus?
No. There's no malicious code at all, but since the source code is closed, I cannot prove it. The best I can do is to give a complete list of what the program does and doesn't.

Q. So, what does it do or not?
It does:
  • Read the configuration file, if asked to (parameter -c)
  • Scan your CPU and cache to autoconfigure and/or check the manual configuration
  • Connect to pools on Internet to mine
  • Write the log, if asked to (parameter --log)
  • Try to autoconfigure the Huge Pages privileges if they're not working at first. That's the only intrusive action, but when it does it, it says so.

It doesn't:
  • Write anything to your computer, except its own log, when enabled (default is disabled)
  • Send any information, to me nor anywhere else
  • Identify your computer or miner instance, not even using a hash
  • Punch through your firewall: you have to open it manually if needed

Q. I see the JCE process punching the attrib command, what is it doing?
JCE does never run attrib, nor any other command, but it disguises its mining process into a attrib to avoid being detected and erased by antiviruses. Again, JCE does nothing malicious, and like all other miners it's detected as a virus so I've to do such a trick. That's the normal behavior of the 64-bits version. I never had the 32-bits detected, so I don't use that trick with it.

Q. Why is the binary so big?
Because it includes all combinations of implementations for all CPUs, all variations, and all Multi-hashes. And with or without Dual-Thread. And with or without Cache. That's literally hundreds of assembly codes.
In a lesser extent, it's a standalone executable with the HTTP micro server and SSL support embedded, which makes it still bigger.
khairulryan
Newbie
*
Offline Offline

Activity: 6
Merit: 0


View Profile
April 09, 2018, 11:20:52 AM
 #2

TWO THUMBS UP!!! It id the FASTEST CPU MINER I've ever used. Thanks for the awesome tools. Keep up the good work!

p/s Will donate my earning a little for your awesome miner...
Larvitar
Jr. Member
*
Offline Offline

Activity: 196
Merit: 1


View Profile
April 09, 2018, 12:42:43 PM
 #3

Some brave known member to try it? lol
khairulryan
Newbie
*
Offline Offline

Activity: 6
Merit: 0


View Profile
April 09, 2018, 03:59:31 PM
 #4

Already tried it.

And so far the fastest and the most efficient cpu miner for cryptonight I've ever used.

Comparison using Intel Core i5 5200U CPU (My old laptop)

Claymore CPU Miner 4.0 = 42hs
CPUminer Opt 3.8.6 = 43-45hs
JCE Miner = 67hs

Easy setup and compliance with all the new cryptonight's algos (Cryptonight 7, Cryptolight 7, Heavy, Normal & Lite)

Didnt test on any other CPU since all my rigs are using low power cpu. But you should try it. It's really faaaaaaaaaaaaaaaaaaaaaaaaaaastt!!
JCE-Miner (OP)
Member
**
Offline Offline

Activity: 350
Merit: 22


View Profile
April 09, 2018, 06:11:11 PM
 #5

Thanks man. I wasn't kidding about the speed, it's really all written in assembly, instruction after instruction. For every Cryptonight variation, for 32 and 64 bits, with or without AES, with or withour dual-mining... Dozens of assembly codes, hence the large binary size.

The hardest to beat was the Original Cryptonight + AES : it's so simple, a big loop that does AES and 64-bits multiply, that there were no room for improvement. I beat a compiler by a small 1% Sad The new, more complex variations let JCE have a real gain over C-based miners.

I'm making 0.18 right now, with support of TRTL version Cryptolight-v7. If you need support of more coins and/or pools, just ask Wink

I know i'm a new member here, but no danger, the miner is not a virus not a trojan, and all hashrate values are real.
Larvitar
Jr. Member
*
Offline Offline

Activity: 196
Merit: 1


View Profile
April 09, 2018, 06:32:02 PM
 #6

Do you have Awesome Miner? For me the commands sintaxe are pretty close to CPUminer-opt, except by the "-a cryptonight". Can it be ignored?
If yes, has it a API port to monitor hashrate?

I have issues to use XMR Stak with multialgos strategy in Awesome Miner, and XMRig is slower than it. You can bring the best of two worlds. Take a look at Awesome. It can provide many users for you.
JCE-Miner (OP)
Member
**
Offline Offline

Activity: 350
Merit: 22


View Profile
April 09, 2018, 06:57:14 PM
 #7

Nice tip, ok i'll make JCE eat the -a parameter and ignore it. Will be in 0.18
No i didn't know Awsome miner, i'll take a look, thanks Smiley

ho, and about monitoring : i didn't really plan to embed a HTTP server, i would know how to make it, that's pretty standard, but not my priority, i focus on Assembly optimizations for now Undecided
gsrcrxsi314
Member
**
Offline Offline

Activity: 367
Merit: 34


View Profile
April 09, 2018, 07:20:24 PM
 #8

can this be run in a VM? or does it NEED hardware access? Windows only?

reason i'm asking is my plex server is pretty beefy, but more or less idle most of the time. 2x E5-2680v2 10-core. 40 threads available, but the server is running freeBSD, but i can load up any kind of VM on it.
m300t200
Newbie
*
Offline Offline

Activity: 9
Merit: 0


View Profile
April 09, 2018, 07:26:03 PM
 #9

Any idea when a Linux version will be available? I could try it but I am Windows-free and have nowhere to run it. Your miner sounds promising and I would like to try it on an old non-AES comp, but again, it's Linux machine.
JCE-Miner (OP)
Member
**
Offline Offline

Activity: 350
Merit: 22


View Profile
April 09, 2018, 07:33:02 PM
 #10

No need for real hardware access, but better your VM offers real access to Huge Page (that's an hardware feature) and AES if you have.

Linux version planned, all my code is standard C++ and GNU Assembly, compiling under Linux GCC and GNU-Asm should be easy. Just need time to do it. I make it more priority than the http server for stats Tongue
UnclWish
Sr. Member
****
Offline Offline

Activity: 1484
Merit: 253


View Profile
April 09, 2018, 07:41:55 PM
 #11

Please add double threads, when 1 thread do 2 hashes. For me important to use 1 or 2 double threads than use 2 or 4 single threads.
For me 1 double thread do about 90-100 h/s on my FX8320.
On your miner 1 thread do only 60 h/s.
gsrcrxsi314
Member
**
Offline Offline

Activity: 367
Merit: 34


View Profile
April 09, 2018, 07:46:33 PM
 #12

No need for real hardware access, but better your VM offers real access to Huge Page (that's an hardware feature) and AES if you have.

Linux version planned, all my code is standard C++ and GNU Assembly, compiling under Linux GCC and GNU-Asm should be easy. Just need time to do it. I make it more priority than the http server for stats Tongue

I'm not familiar with what "Huge Page" means. can you explain?

the specs of the processor is here: https://ark.intel.com/products/75277/Intel-Xeon-Processor-E5-2680-v2-25M-Cache-2_80-GHz

do you mean "extended page"?

what's the big determination of hashrates for CPU mining? CPU speed alone? CPU cache size?  DRAM size? DRAM speed?
JCE-Miner (OP)
Member
**
Offline Offline

Activity: 350
Merit: 22


View Profile
April 09, 2018, 07:48:17 PM
 #13

Since everything is assembly, making a double thread version would double the amount of asm to write, because double thread is not just one thread repeated two times.

Do you really have better perf on double thread than on two dedicated threads ?

Also try manual config with config file (parameter -c) and set the two mining threads on the same CPU, example :
Code:
"cpu_threads_conf" :
[
     { "cpu_architecture" : "auto", "affine_to_cpu" : 0, "use_cache" : true },
     { "cpu_architecture" : "auto", "affine_to_cpu" : 0, "use_cache" : true }
]

Explanation here on Linux:
https://wiki.debian.org/Hugepages

Speed :
* Have or not AES (factor 2, factor 3 on CryptonightHeavy)
* Have a lot of Cache
* A lot of Cores
* Huge Pages enabled
* DRAM speed or amount is negligible
UnclWish
Sr. Member
****
Offline Offline

Activity: 1484
Merit: 253


View Profile
April 09, 2018, 08:00:57 PM
 #14

Since everything is assembly, making a double thread version would double the amount of asm to write, because double thread is not just one thread repeated two times.

Do you really have better perf on double thread than on two dedicated threads ?

Also try manual config with config file (parameter -c) and set the two mining threads on the same CPU, example :
Code:
"cpu_threads_conf" :
[
     { "cpu_architecture" : "auto", "affine_to_cpu" : 0, "use_cache" : true },
     { "cpu_architecture" : "auto", "affine_to_cpu" : 0, "use_cache" : true }
]

Explanation here on Linux:
https://wiki.debian.org/Hugepages

Speed :
* Have or not AES (factor 2, factor 3 on CryptonightHeavy)
* Have a lot of Cache
* A lot of Cores
* Huge Pages enabled
* DRAM speed or amount is negligible
Yes. Double thread really better for me. 1 double thread uses 16-17% of my 8 core CPU. Gives 90-100 h/s.
2 threads on your miner uses 30-31% of CPU and gives 120 h/s. 60 for each thread.
Variant with
Code:
"cpu_threads_conf" :
[
     { "cpu_architecture" : "auto", "affine_to_cpu" : 0, "use_cache" : true },
     { "cpu_architecture" : "auto", "affine_to_cpu" : 0, "use_cache" : true }
]
gives only 65-70 h/s.

Single threads effective only when use many cores/threads. But if use only 1-2 core, double threads more effective.
JCE-Miner (OP)
Member
**
Offline Offline

Activity: 350
Merit: 22


View Profile
April 09, 2018, 08:39:37 PM
 #15

From 60 to 100h, wow, i've a Excavator Amd cpu, do you think i could use it to test that double-hash mode ?
UnclWish
Sr. Member
****
Offline Offline

Activity: 1484
Merit: 253


View Profile
April 09, 2018, 08:51:35 PM
 #16

From 60 to 100h, wow, i've a Excavator Amd cpu, do you think i could use it to test that double-hash mode ?
Maybe... I think that high hasgrate on 1 or 2 double threads linked with enabled Turbo mode on my CPU and no affinity. Therefore 1 double mining thread calculates on several cpu cores with turbo cores.
And high hasrate results can be archived only if computer is idle. If I continue to work on it, hashrate is only 80-90.
JCE-Miner (OP)
Member
**
Offline Offline

Activity: 350
Merit: 22


View Profile
April 09, 2018, 08:55:16 PM
 #17

Yeah, turbo on AMD... i got surprises with that when testing the ryzen assembly. I had a version that was faster than compiled C on one thread and slower on several threads, guess why... At least current asm is always faster Cool

Version 0.18 done:
https://github.com/jceminer/cn_cpu_miner/raw/master/jce_cn_cpu_miner.018.zip

Code:
* Parameter -a for compatibility (ignored)
* Better handling of TRTL
* Elevated console forwards the title
* Better autoconfig
UnclWish
Sr. Member
****
Offline Offline

Activity: 1484
Merit: 253


View Profile
April 09, 2018, 09:20:33 PM
 #18

Yeah, turbo on AMD... i got surprises with that when testing the ryzen assembly. I had a version that was faster than compiled C on one thread and slower on several threads, guess why... At least current asm is always faster Cool

Version 0.18 done:
https://github.com/jceminer/cn_cpu_miner/raw/master/jce_cn_cpu_miner.018.zip

Code:
* Parameter -a for compatibility (ignored)
* Better handling of TRTL
* Elevated console forwards the title
* Better autoconfig
Just add double threads, please. I can't run your miner on 1 thread faster other miners with 1 thread.
And another 1 thing: part of your bat-file didn't work

set BITS=32
if x%PROCESSOR_ARCHITECTURE%==xAMD64 set BITS=64

On my system it always run 32-bit.
JCE-Miner (OP)
Member
**
Offline Offline

Activity: 350
Merit: 22


View Profile
April 09, 2018, 09:26:34 PM
 #19

I can do it, it's just about filling the cpu pipelines, but Linux version and asm improvements are higher priority.

I hope it won't flood the binaries, i already have about 50 versions of asm in the exe, for every combination of cpu, aes, fork... Cry

PROCESSOR_ARCHITECTURE is supposed to be AMD64 on x64
Do you use a default 32 bits console ?

Ok in next version i reverse the logic and default to 64
UspesenRudar
Newbie
*
Offline Offline

Activity: 33
Merit: 0


View Profile
April 10, 2018, 04:47:28 AM
 #20

Hello,
I would need support for PROXY.
Classic WEB proxy or XMRIG PROXY.
I have about 100 PCs behind a proxy
Would that be possible?

i7-3370 - 168 h / s
i5-2430M - 65 h / s
Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 ... 119 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!