Pages:
Author

Topic: [XMR] JCE Miner Cryptonight/forks, now with GPU! - page 119. (Read 90815 times)

member
Activity: 367
Merit: 34
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.
member
Activity: 350
Merit: 22
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
jr. member
Activity: 196
Merit: 1
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.
member
Activity: 350
Merit: 22
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.
newbie
Activity: 6
Merit: 0
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!!
jr. member
Activity: 196
Merit: 1
Some brave known member to try it? lol
newbie
Activity: 6
Merit: 0
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...
member
Activity: 350
Merit: 22
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.032h.zip
https://github.com/jceminer/cn_cpu_miner/raw/master/jce_cn_cpu_miner.linux.032g.zip

Try the GPU Prototype
https://github.com/jceminer/cn_gpu_miner

Recent history

0.32h CPU
Quote
More coins
Better GPU log
Reworked warmup

0.32g CPU
Quote
Netcode fixes

0.32b GPU
Quote
Light change on CN-Heavy

0.32 GPU
Quote
Very experimental version
Ultra-fast start
fixed RX550 performance (to be confirmed)

0.31f GPU
Quote
Light Vega performance increase

0.31e GPU
Quote
Autoconfig GPU
Ignore non-AMD device
Heavy-like share counter fix
Per-GPU pause fix

0.31c GPU
Quote
New parameter --doublecheck to use CPU to re-check shares
Pause per GPU
GPU detection blind fixes
Little optimization Heavy/Haven ~1% depends on the card
ETN back to CN-Classic


Fork status:
Code:
XTL fork supported, now enabled by default
MKT for support enabled by default
ETN forked to a slightly modified CN-v7, supported and enabled by default on 0.29b and later
ITA defaults to CN-Heavy starting from 0.29b
Elya defaults to CN-v7
Niobio and Bixbite defaults to CN-Heavy
MSR fork supported, enabled by default
Haven fork supported, enabled by default
Bittube v2 fork supported, enabled by default



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, Cryptonight-Heavy, IPBC/Bittube, Alloy, MKT, Fast/Masari, Haven and XTL forks supported? Yes!

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

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 faster on non-AES 32-bits Cryptonight-Heavy, with usually +50% speed.
  • Barely faster than the other best on AES 64-bits, beating them by ~1%, +2.8% on V7 fork, +4% on Cryptonight-Heavy
  • Also a lot faster on AES 32-bits, but it's a rare case (mostly seen on Intel Atom tablets)
   
Here's a benchmark against three other common miners.
The test is fair: run on the exact same Win10 Pro computer, all Huge Pages enabled, no background task, best configuration.

  • XMRStak means: the released Unified binary from github (not recompiled myself)
  • XMRig means: the respective best released binary gcc (32-bits) and msvc (64-bits) from github (not recompiled myself)
  • Claymore means: best Claymore CPU (3.4 for 32-bits, 3.9 for 64-bits)
  • When not supported, score is zero, if not tested yet, score is ?
  • Fees are included in the score

Core2 Quad 2.666 GHz 12M, 4 threads, 64-bits, Cryptonight
JCEXMRStakXMRigClaymore
116808557

Core2 Quad 2.666 GHz 12M, 4 threads, 32-bits, Cryptonight
JCEXMRStakXMRigClaymore
9306850

Ryzen 1600, 8 threads, 64-bits, Cryptonight
JCEXMRStakXMRigClaymore
506502502443

Ryzen 1600, 8 threads, 32-bits, Cryptonight
JCEXMRStakXMRigClaymore
4340327275

Ryzen 1600, 8 threads, 64-bits, Cryptonight V7
JCEXMRStakXMRigClaymore
503492491?

Ryzen 1600, 8 threads, 32-bits, Cryptonight V7
JCEXMRStakXMRigClaymore
4240320?

Core2 Quad 2.666 GHz 12M, 4 threads, 64-bits, Cryptonight Heavy
JCEXMRStakXMRigClaymore
5033360

Ryzen 1600, 4 threads, 64-bits, Cryptonight Heavy
JCEXMRStakXMRigClaymore
2521692500

Ryzen 1600, 4 threads, 32-bits, Cryptonight Heavy
JCEXMRStakXMRigClaymore
19101740

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:

    Monero (XMR)
    Monero-V (XMV)
    Electroneum (ETN)
    Karbowanec (KRB)
    Bytecoin (BCN)
    Sumokoin (SUMO)
    Bitcoal (COAL)
    Bitcedi (BXC)
    Dinastycoin (DCY)
    Leviarcoin (XLC)
    Fonero (FNO)
    Turtlecoin (TRTL)
    Graft (GRFT)
    Dero (DERO)
    Stellite (XTL)
    UltraNote (XUN)
    Intense (INTS)
    Crepcoin (CREP)
    Pluracoin (PLURA)
    Haven (XHV)
    FreelaBit (FBF)
    BlueberriesCoin (BBC)
    B2BCoin (B2B)
    Bitsum (BSM)
    Masari (MSR)
    SuperiorCoin (SUP)
    EDollar (EDL)
    Interplanetary Broadcast (IPBC)
    Alloy (XAO)
    BBSCoin (BBS)
    BitcoiNote (BTCN)
    Elya (ELYA)
    Iridium (IRD)
    Italo (ITA)
    Lines (LNS)
    Niobio (NBR)
    Ombre (OMB)
    Solace (SOL)
    Triton (TRIT)
    Truckcoin (TRKC)
    Qwertycoin (QWC)
    Loki (LOK)
    Gadcoin (GAD)
    MarketCash (MKT)
    ArtoCash (RTO)
    Bloc (BLOC)
    Wownero (WOW)
    PrivatePay (XPP)
    Nicehash Cryptonight
    Minergate Cryptonight
    MiningPoolHub Cryptonight
    MiningRigRentals Cryptonight
    Suprnova Cryptonight

Otherwise, if your coin is not listed, or your wallet not recognized, use the --any parameter, plus 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 (for AEON)
    N=3 Cryptonight V7 fork of April-2018
    N=4 Cryptolight V7 fork of April-2018
    N=5 Cryptonight-Heavy
    N=6 Cryptolight-IPBC
    N=7 Cryptonight-XTL
    N=8 Cryptonight-Alloy
    N=9 Cryptonight-MKT
    N=10 Cryptonight-Arto
    N=11 Cryptonight-Fast Masari
    N=12 Cryptonight-Haven
    N=13 Cryptonight-BitTube-v2
   
The current Automatic mode behaves the old way on alt-coins:

    Monero, Monero-V, Wownero, Graft, Elya and Intense are now Cryptonight V7,
    SuperiorCoin, BBSCoin, Electroneum and Lines are Cryptonight V7 too,
    Loki, Ombre, Italo, Bixbite, Niobio, Saronite are now Cryptonight-Heavy,
    Aeon and TurtleCoin are now Cryptolight-v7
    Interplanetary Broadcast has is own Cryptolight-IPBC
    Stellite has is own Cryptonight-XTL
    Alloy has is own Cryptonight-Alloy
    MarketCash has is own Cryptonight-MKT
    ArtoCash has is own Cryptonight-Arto
    Masari has is own Cryptonight-Masari
    Haven has is own Cryptonight-Haven
    Everything else is still assumed Cryptonight


More will be updated as more coins forks.

To use the new forks right now, set the --variation N parameter, with N as stated above.
If you mine an unlisted coin with --any, 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.

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.

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.

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.
Pages:
Jump to: