Monday, February 3, 2014

Vertcoin Settings, Optimal Thread Concurrency, and HW Errors

Not surprisingly, given the current prices [which I predicted about ten days ago!] people are starting to pull their hair out when trying to tune their configuration files to work with Vertcoin (VTC). In fact, I have been one of those people, so naturally I decided it would be best to adapt my previous work to get things running with the new version of cgminer.exe. This round, I have two different versions of the batch file to run, one for Radeon R9 290 and R9 290X, and one for earlier GPUs.

You can download my test scripts from Dropbox.

The key items to change before running are all in the two following files. Note that I'm using the custom version of cgminer found here, as opposed to the slightly different version of cgminer named vertminer found here. I don't know if there's really much of a difference, but I started tuning on the first version (linked from before hearing about Vertminer (linked from -- go figure). It sounds like some people are getting fewer HW errors with Vertminer, but at least initially I lost about 50 KHash on my 3x7950 rig so I'm staying with the first miner for now. Anyway, the main files to look at are:
As you can hopefully guess, the r9version is for R9 290/290X (it's not necessary on R9 270/280X as those are basically just rebranded 7000-series hardware); technically this version should work for any GPU, but I've found it can be a bit... flaky. Basically every few restarts of cgminer.exe, one or more GPUs will stop working properly and you'll need to reboot the PC. So hopefully we can get a fixed EXE for R9 systems sooner rather than later (and if you have such an EXE, please email me).

Here's the short list of settings to change, and below I'll have some recommendations based on running these scripts on my own hardware. All of the settings below are for both versions, except "roundtime" which comes from the non-R9 version, and "shares" which comes from the non-R9 batch file:
Starting thread concurrency. Note that if file "CURRENTTC.TXT" exists, that will override this value!
set threadconcurrency=6000

GPU engine and core clock(s). If you want to set different clocks, use commas with quotation marks around the set (e.g. gpuclock="1000,975,950" for three GPUs)
set gpuclock=900
set memclock=1450

GPU fan speed range (can use multiple sets with quotes as above if needed)
set gpufan=50-95

GPU voltage tends to only work on older GPUs (5000 and 6000 series, and some 7000)
set gpuvolt=1.071

PowerTune setting can specify for multiple GPUs with quotes; only supported on 6000 and newer GPUs.
set gpupowertune=10

Intensity setting for mining
set intensity=18

Number of GPU threads
set gputhreads=1

Number of shares to mine on each TC setting before moving on. If you have a high share difficulty, lower values may be useful.
set shares=60

How much to increment thread concurrency each round -- for Vertcoin mining, I've found steps of as small as 1 to be potentially useful!
set threadincrement=4

Number of seconds to mine on each round.
set roundtime=300

Number of GPUs being used -- the output includes performance from each GPU on a separate line, hence the need for this setting.
set numgpus=3
The instructions for using the batch files are pretty simple: extract the above files into your cgminer-vertcoin folder, then edit the appropriate batch file and change the above settings as appropriate. In general, that means you should tweaks the GPU clocks, the starting thread concurrency, and potentially the intensity and gputhreads settings. The number of shares and/or roundtime can be adjusted; I'd generally recommend increasing these values rather than going any lower, as the more time you spend hashing at each TC the better the overall estimate will be.

There are just a few disclaimers before I wrap up. First, I take no responsibility if any of these files mess up your PC or kill your GPU. They should be safe, but you never know. Second, the R9 version seems to be a bit less stable, and it seems to cause the GPU drivers to crash, especially in multi-GPU systems. You might have better luck than I did, of course. Finally, every system is different, so what works really well on one PC may not work well at all on another -- and I've found in general that it's very difficult to find a setting where you get optimal hash rates without getting any HW errors; mostly, I just try to keep HW errors below 1%.

Donations as always are (very!) welcome. I'd appreciate just an hour or so of your mining time if you don't mine, or you can donate to any of the following addresses:

VTC:  VaNuRCj73JVAwR1YMnt8CXaqoiPgykiMTk
BTC:  153qS9Ze32hnV3fwirZLWNka4wBAowc21E
LTC:  LfCLyykrNFftzpdWejR73hf478ZtBzQ9jE
DOGE: DD9iTWf8diPkvKdB8roPJepTyp6BGVQtct

Here are settings that I have found to be stable with the noted hash rates. I'm still trying to nail down optimal settings on many of the systems, as well as finding something that works well for R9 290/290X. I'll update my list as appropriate.

Radeon HD 7970 (R9 280X) (using vertminer.exe):
GPU clock: 1050-1140
RAM clock: 1500-1800
Thread Concurrency: 8192
GPU Threads: 1
Intensity: 13
Hash Rate: 290-320 KHash/sec

Radeon HD 7950:
GPU clock: 950-1000
RAM clock: 1425-1500
Thread Concurrency: 16040
GPU Threads: 1
Intensity: 19
Hash Rate: 270-290 KHash/sec

Radeon HD 6970:
GPU clock: 925
RAM clock: 1400
Thread Concurrency: 8000
GPU Threads: 1
Intensity: 18
Hash Rate: 230-250 KHash/sec

Radeon HD 6950:
GPU clock: 875
RAM clock: 1250
Thread Concurrency: 6000
GPU Threads: 1
Intensity: 18
Hash Rate: 210-230 KHash/sec

Radeon HD 5870:
GPU clock: 925
RAM clock: 1150
Thread Concurrency: 5688
GPU Threads: 1
Intensity: 18
Hash Rate: 200-220 KHash/sec

Radeon HD 5850:
GPU clock: 850-900
RAM clock: 1050-1100
Thread Concurrency: 5120
GPU Threads: 1
Intensity: 18
Hash Rate: 170-190 KHash/sec

Again, donations are very much appreciated. And if you have some other coin you'd prefer to send, let me know!

VTC:  VaNuRCj73JVAwR1YMnt8CXaqoiPgykiMTk
BTC:  153qS9Ze32hnV3fwirZLWNka4wBAowc21E
LTC:  LfCLyykrNFftzpdWejR73hf478ZtBzQ9jE
DOGE: DD9iTWf8diPkvKdB8roPJepTyp6BGVQtct


  1. Very nice, as always! I will test your scripts soon.
    Damn man, VTC went skyhigh. I sold at 0.001 and now its on 0.0024 this is crazy. I should've hold em all.
    Mining dificulty is also shooting to the sky so I only get around 50 / day with 1800kh/s but it is still a lot of coins for mining.
    May I ask if you are still holding VTC? Are you expecting it to jump up to LTC level? :-)
    Maan if I started to mine VTC earlier i would have around 10000VTC worth a 24 Bitcoins now, this just damn annoying, haha!

    Keep it up

    1. Yeah, I'm holding all my VTC for the time being -- I don't know where this will end, but we could easily see VTC be the next big coin behind BTC and LTC. BTC was the first cryptocurrency, so obviously that gives it status. LTC was the first scrypt currency, earning it's second place ranking. VTC is now the first with this new adaptive PoW algorithm, so in my mind it should rate higher than any of the other scrypt coins.

      Note also that all three of these coins have a much longer payout rate -- the block reward halves every 4 years or so. A bunch of coins have come out where (nearly) all the coins will be mined in less than a year or two, and those in my mind don't have any staying power.

    2. Hi Jarrad, the diff rises too fast and as the VTC hashrate is half of LTC it becomes harder and harder to mine. What's your thoughts of this?
      Was getting 250/day at diff 11 not only 3 days and diff comes to 75 with 80 VTC/day earnings -_-

    3. If you're like me, you're kicking yourself for not mining this 100% since I first mentioned it. I could have mined about 3000 VTC during the past two weeks, but instead I "only" have around 500. The thing is, the price at one point was 0.0004 and I was able to mine 500 per day (0.2 BTC). Now I can mine about 40 per day but the price is up to 0.0054 (0.216 BTC per day). The best I could do with any other scrypt coin right now is around 0.1 BTC per day.

  2. Sapphire R9 290 Tri-X

    I'm on this config right now:

    "gpu-threads" : "1",
    "gpu-engine" : "1050",
    "gpu-fan" : "0-70",
    "gpu-memclock" : "1500",
    "gpu-powertune" : "20",
    "intensity" : "17",
    "vectors" : "1",
    "worksize" : "512",
    "lookup-gap" : "2",
    "thread-concurrency" : "27000"


    (5s): 460K (avg):460Kh/s | A:77365 R:623 HW:50 U:12,0/m WU:405,3/m
    ST: - SS:3801 NB: 95 LW: 4997 GF: 0 RF: 0
    GPU 0 80,0C 3399RPM | 460K/460Kh/s | A:77300 R:623 HW:50 U: 12,03/m I:17

  3. Hey guys. So what is tme most important number: Kh/s or WU?
    I've noticed that WU varies from 375 to 405 sometimes while Kh/s is always 430-432.

    1. KHash -- WU is the number of work units from the pool you're on, which can mean different things as the pool will change the value of a WU dynamically. One day each WU might end up translating into 0.0001 VTC and another day it could be 0.00001 VTC or whatever. Basically, WU times the pool difficulty equals your number of shares on the pool, and depending on the total number of shares for a round you get paid a piece of the block reward. Something like that.

    2. Thank you, Jarred.
      By the way, do you think memory latency optimizations (like will work on VTC mining algorythm as it does on LTC?

    3. Yeah, there's no reason they shouldn't -- in fact, with higher N-Factor I think things might become even more bound by memory performance, so improving memory latency might be even more useful with VTC. It's something I'll need to look into. :-)

  4. Hello, I have the following settings with 1 7950 and 1 280x but my first card cannot reach more than 7-8 kh/s, even when I run it with only the first row (cgminer.exe...). I mine successfully other scrypt-based coins but don't have much luck with Vertcoin and have tried a bunch of different combinations in terms of thread concurrency/Intensity. I don't think the problem is the combination of the cards because I have tried another 7950 at the same motherboard slot and the result is the same for this card. My RAM is 8GB.

    cgminer.exe --scrypt -o stratum+tcp:// -u XXX -p password -I 14 2>logfile_VERT.txt

    -thread-concurrency 8192
    -gpu-engine 1000-1300
    -temp-overheat 95
    -temp-target 80
    -v 1
    -w 256
    -g 1
    -temp-cutoff 99
    -temp-overheat 95
    -temp-target 78
    -gpu-fan 45-100
    -gpu-powertune 10

    1. Try only mining on one GPU at a time (with the "--device 0" or "--device 1" parameters) and see if that helps at all. I think "--remove-disabled" might also be necessary.

    2. Do I have to connect a dummy plug on the GPU? Because even though I enter --device 0 and --remove-disabled, nothing changes.

    3. Nothing changes meaning it's still mining on all GPUs? It could be that the version for vertminer doesn't properly support those options. I guess you could also just physically remove each GPU to try and mine that way.

      This is the one thing that makes VTC mining difficult: it can be more finicky/demanding than mining scrypt. I have systems that were mining scrypt coins since last April that are having issues with VTC, and I'm still trying to figure out what's wrong. LOL

  5. Regarding R9 series instability, you need to recompile with the following fix:
    In the adl.c file around line 472, add a line just before the ADL_Overdrive5_FanSpeed_Get call:

    1. I'm not up to speed on compiling -- anyone able to do that and post the recompiled version?

  6. Hi Jarred. I have 4x290s and only getting 270khs. heres my setting. I also have 4gb of ram on windows 7. please help and thanks.. if i set I pass 13 ill get alot of HW

    "C:\Users\Mining Rig 1\Desktop\vertminer-0.5.3\vertminer.exe" -o stratum+tcp:// -u fafs.1 -p fasfs -I 13 -g 1 -w 512 --lookup-gap 2 --thread-concurrency 8192 --gpu-engine 1000 --gpu-memclock 1500 --auto-fan --temp-cutoff 85 --temp-overheat 83 --temp-target 75 --gpu-powertune 20

    1. I've been playing around with this all morning, and I don't get any different than you do. I have 8gb of RAM, but the same things happen. I can't go above I 13 without HW. I get a hashrate of 284 out of all mine after optomizing a bit.

      If I only run two of the cards, I can raise it to I 20 and each hash at 440 Kh/s (at 900 clock). I've read of other people having 3 and getting 350 or so each. It doesn't seem to scale well for some reason on 290s.

      I'm going to work on it for a little bit more, but then I'm done. This is why I didn't want to mine vert in the first place.

    2. For one, VTC uses more RAM on both the GPU and system. I don't know where the "sweet spot" is, but 4GB is almost certainly not enough for four 290s; is 8GB enough? I'm not sure, but perhaps not. The one 290X rig I have is being a bit finicky as well, and I have 16GB RAM, so I'm not sure what's up. More CPU performance might be needed though as I've got a single Sempron chip in there.

    3. Well, semprons were sold out when I built mine, so I have a substantially better CPU than that, but as said above, I can barely get it to run with 8gb. I was going to put 16 in there last night but I was exhausted after work (and I have to cannibalize my main rig for a bit to do it).

      I'm curious to see if system RAM is really the culprit or not on this. BTW, there was an update to vertcoin miner today that said something about the R9 ADL, but I haven't really looked into it yet. I don't even know what the ADL does. Any thoughts?

    4. I believe the 0.5.3 update to vertminer fixes the crash/BSOD on exit, so you can quit normally. ADL is related to the power/clock speed tools.

  7. Vertminer 0.5.2 is what I've been using. I have a 7870 XT hitting about 200kh/s with a usuable PC. Settings are : "intensity" : "12", "worksize" : "256", "lookup-gap" : "2", "thread-concurrency" : "6001", "shaders" : "1536", "gpu-engine" : "1050", "gpu-threads" : "2" No hardware errors in an overnight run and reject ratio was low(2%) for a p2p pool. Hope this helps someone.

    VTC: VfcwmmQjaGskA33icdFtWsm7n2Y4jxbGYH
    DOGE: DHvj6rNPoiSiyHuSPghfvFJuP4E56RoNVt

  8. Here's my contribution...I hope it helps alleviate some frustration for someone.

    MSI R9 280X Gaming
    Undervolted to 1.081 (flashed BIOS)
    vertminer version 0.5.2

    "intensity" : "13",
    "vectors" : "1",
    "worksize" : "256",
    "lookup-gap" : "2",
    "thread-concurrency" : "8193",
    "gpu-engine" : "1050",
    "shaders" : "2048",
    "gpu-memclock" : "1500",
    "gpu-powertune" : "-20",
    "api-mcast-port" : "4028",
    "api-port" : "4028",
    "gpu-dyninterval" : "7",
    "gpu-platform" : "0",
    "gpu-threads" : "2",
    "auto-fan": true,
    "gpu-fan": "70-100",
    "temp-cutoff": "95",
    "temp-overheat": "85",
    "temp-target": "75",
    "scan-time": "1",
    "expiry": "30"

    I tried dozens of different settings for these cards and I haven't found anything better than this. Currently getting 373-375 Kh/s on both cards pulling 250W each

    VTC: VeQj9y93BwqbMgE3ZyUMid8tyxJu6VPc5B

    1. With 1 card, similar settings work well for me. With 2 cards I do better with -g 1.
      0.5.3 settings are quite different. Anyone have tuning suggestions for 0.5.3?