papampi / nvOC_miners

nvOC easy-to-use Linux Nvidia Mining OS Miners
8 stars 7 forks source link

Disabled GPU not working correctly on PhoenixMiner and Claymore #34

Closed papampi closed 5 years ago

papampi commented 5 years ago

PhoenixMiner still not mining on 12th GPU and start from 0

Miner command: SCREEN -c /home/m1/NVOC/testing/screenrc-miner -dmSL miner /home/m1/NVOC/testing/miners/PhoenixMiner/recommended/PhoenixMiner -pool stratum+tcp://eu1.ethermine.org:4444 -wal ETH_ADDR -worker nv104 -pass x -coin eth -wdog 1 -rmode 0 -nvidia -cdmport 192.168.1.104:3333 -stales 1 -retrydelay 5 -wdog 1 -rmode 0 -gpus 0,1,2,3,4,5,6,7,8,9,10,11

Miner log:

Eth: New job #2c0b1b32 from eu1.ethermine.org:4444; diff: 4000MH
Eth speed: 241.950 MH/s, shares: 1/0/0, time: 0:01
GPUs: 1: 20.821 MH/s (0) 2: 22.357 MH/s (0) 3: 22.342 MH/s (0) 4: 22.331 MH/s (1) 5: 22.334 MH/s (0) 6: 22.341 MH/s (0) 7: 22.348 MH/s (0) 8: 22.348 MH/s (0) 9: 21.201 MH/s (0) 10: 21.196 MH/s (0) 11: 22.329 MH/s (0)
LuKePicci commented 5 years ago

Go to 0miner at line 198

https://github.com/papampi/nvOC_by_fullzero_Community_Release/blob/41860d21301f8f502fe48c021ae7084c362a77ce/0miner#L199

Add some echos after line 198 and before line 199 for $dev_enable_fmt and $OPTS, let me know what you get.

papampi commented 5 years ago

What do you mean by add some echo ?

Claymore doing the same:

    SCREEN -c /home/m1/NVOC/testing/screenrc-miner -dmSL miner /home/m1/NVOC/testing/miners/CLAYMORE/latest/ethdcrminer64 -epool eu1.ethermine.org:4444 -ewal ETH_ADDRESS.nv104 -epsw x -mode 1 -dbg -1 -ejobtimeout 3 -retrydelay 5 -checkcert 0 -esm 1 -di 01234567891011

����������������������������������������������������������������ͻ
�                Claymore's Dual GPU Miner - v11.9               �
�              ETH + DCR/SIA/LBC/PASC/BLAKE2S/KECCAK             �
����������������������������������������������������������������ͼ

ETH: 1 pool is specified
Main Ethereum pool is eu1.ethermine.org:4444
AMD OpenCL platform not found 
Be careful with overclocking, use default clocks for first tests
Press "s" for current statistics, "0".."9" to turn on/off cards, "r" to reload pools, "e" or "d" to select current pool, "x" to select GPU
CUDA initializing...

NVIDIA Cards available: 12 
CUDA Driver Version/Runtime Version: 10.0/8.0
GPU #0: GeForce GTX 1060 6GB, 6078 MB available, 10 compute units, capability: 6.1  (pci bus 1:0:0)
GPU #1: P106-100, 6080 MB available, 10 compute units, capability: 6.1  (pci bus 2:0:0)
GPU #2: P106-100, 6080 MB available, 10 compute units, capability: 6.1  (pci bus 3:0:0)
GPU #3: P106-100, 6080 MB available, 10 compute units, capability: 6.1  (pci bus 4:0:0)
GPU #4: P106-100, 6080 MB available, 10 compute units, capability: 6.1  (pci bus 5:0:0)
GPU #5: P106-100, 6080 MB available, 10 compute units, capability: 6.1  (pci bus 7:0:0)
GPU #6: P106-100, 6080 MB available, 10 compute units, capability: 6.1  (pci bus 8:0:0)
GPU #7: P106-100, 6080 MB available, 10 compute units, capability: 6.1  (pci bus 9:0:0)
GPU #8: GeForce GTX 1060 6GB, 6078 MB available, 10 compute units, capability: 6.1  (pci bus 10:0:0)
GPU #9: GeForce GTX 1060 6GB, 6078 MB available, 10 compute units, capability: 6.1  (pci bus 11:0:0)
Total cards: 10 
papampi commented 5 years ago

Also Updated claymore 11.9 PM, but nvOC upgrade wont update symlinks from 11.9 to 12

LuKePicci commented 5 years ago

You need to define a separator for Claymore as well.

What do you mean by add some echo ?

Just insert some echo commands for such variables

LuKePicci commented 5 years ago

Maybe @brightskye could help us about the 1-based indexes explaining why my patch for format option "Z' and 'N' is not working as expected.

papampi commented 5 years ago

Defined separator to claymore, still not using over 10

    SCREEN -c /home/m1/NVOC/testing/screenrc-miner -dmSL miner /home/m1/NVOC/testing/miners/CLAYMORE/latest/ethdcrminer64 -epool eu1.ethermine.org:4444 -ewal ETH_ADDRESS.nv104 -epsw x -mode 1 -dbg -1 -ejobtimeout 3 -retrydelay 5 -checkcert 0 -esm 1 -di 0,1,2,3,4,5,6,7,8,9,10,11

����������������������������������������������������������������ͻ
�                Claymore's Dual GPU Miner - v12.0               �
�              ETH + DCR/SIA/LBC/PASC/BLAKE2S/KECCAK             �
����������������������������������������������������������������ͼ

ETH: 1 pool is specified
Main Ethereum pool is eu1.ethermine.org:4444
AMD OpenCL platform not found 
Be careful with overclocking, use default clocks for first tests
Press "s" for current statistics, "0".."9" to turn on/off cards, "r" to reload pools, "e" or "d" to select current pool, "x" to select GPU
CUDA initializing...

NVIDIA Cards available: 12 
CUDA Driver Version/Runtime Version: 10.0/8.0
GPU #0: GeForce GTX 1060 6GB, 6078 MB available, 10 compute units, capability: 6.1  (pci bus 1:0:0)
GPU #1: P106-100, 6080 MB available, 10 compute units, capability: 6.1  (pci bus 2:0:0)
GPU #2: P106-100, 6080 MB available, 10 compute units, capability: 6.1  (pci bus 3:0:0)
GPU #3: P106-100, 6080 MB available, 10 compute units, capability: 6.1  (pci bus 4:0:0)
GPU #4: P106-100, 6080 MB available, 10 compute units, capability: 6.1  (pci bus 5:0:0)
GPU #5: P106-100, 6080 MB available, 10 compute units, capability: 6.1  (pci bus 7:0:0)
GPU #6: P106-100, 6080 MB available, 10 compute units, capability: 6.1  (pci bus 8:0:0)
GPU #7: P106-100, 6080 MB available, 10 compute units, capability: 6.1  (pci bus 9:0:0)
GPU #8: GeForce GTX 1060 6GB, 6078 MB available, 10 compute units, capability: 6.1  (pci bus 10:0:0)
GPU #9: GeForce GTX 1060 6GB, 6078 MB available, 10 compute units, capability: 6.1  (pci bus 11:0:0)
Total cards: 10 
papampi commented 5 years ago

@brightskye can you please check and see whats going on ...

papampi commented 5 years ago

From claymore help:

For systems with more than 10 GPUs: use letters to specify indexes more than 9, for example, "a" means index 10, "b" means index 11, etc; also "a", "b", and "c" keys allow you to turn on/off GPU #10, #11 and #12 in runtime.

I see there are codes for Claymore miners in disabled_gpu.sh to use 123456789abc, but why its not using it?

LuKePicci commented 5 years ago

You need to set format to A in order to use alphanumeric ids.

papampi commented 5 years ago

Just tried that, with and without delimiter, giving same result.

LuKePicci commented 5 years ago

Seems like format options like A and N do not gets passed correctly, but I cannot figure out why. Try debugging disabled_gpu.sh to see what's going on, and let me know what you get printed by the echos I was suggesting. There are some cases where disabled gpu handler tries to update the device list instead of building a new one from scratch. I would like to know if this is the case ora not.

papampi commented 5 years ago

I have no idea whats going on in disabled_gpu.sh, Will wait for @brightskye to check it.

brightskye commented 5 years ago

been busy, I will take some time to look at it

brightskye commented 5 years ago

Go to 0miner at line 198

https://github.com/papampi/nvOC_by_fullzero_Community_Release/blob/41860d21301f8f502fe48c021ae7084c362a77ce/0miner#L199

Add some echos after line 198 and before line 199 for $dev_enable_fmt and $OPTS, let me know what you get.

It's been awhile, can you also print out these variables? '${dev_enable_arg}' '${dev_enable_sep}' '${dev_enable_fmt}' "$OPTS" so I can see what's being passed in?

Thanks.

papampi commented 5 years ago

This is on my test rig BMiner with 4x cards:

OPTS:
DISABLED_GPUS not set
dgh_enabled_devices: 
dev_enable_arg: -devices 
dev_enable_sep: ,
dev_enable_fmt: Z
OPTS:   ${dev_enable_arg}0${dev_enable_sep}1${dev_enable_sep}2${dev_enable_sep}3

Just noticed there is two OPTS in 0miner Line 123 and line 199 first one echoes nothing

Edit: Changed miner and first one echoes COIN_OPTS from 1bash

brightskye commented 5 years ago

so seems like ${dev_enable_arg},${dev_enable_sep},${dev_enable_fmt} is being evaluated as literal instead of variable

It's been awhile since i read bash script. Perhaps using " instead of ' will help? OPTS="$(dgh_enabled_devices "${dev_enable_arg}" "${dev_enable_sep}" "${dev_enable_fmt}" "$OPTS")"

brightskye commented 5 years ago

Can you try 1 with dev_enable_fmt: N ? since N is the one that will start GPU from 1 I have tested disabled_gpu_test.sh with your changes on with some test cases I had, it seems like it's passing fine as long as the arguments are passed correctly

brightskye commented 5 years ago

Seems like format options like A and N do not gets passed correctly, but I cannot figure out why. Try debugging disabled_gpu.sh to see what's going on, and let me know what you get printed by the echos I was suggesting. There are some cases where disabled gpu handler tries to update the device list instead of building a new one from scratch. I would like to know if this is the case ora not.

The update only happen when there's already OPTS defined prior, e.g. if you have defined -dev 2,3,4 before, the function won't check for all the GPUS, but just removed what you blacklisted from 2,3,4

LuKePicci commented 5 years ago

I thought about that, that's why I was asking @papampi to echo the OPTS before the helper was called.

BTW you probably figured it out by yourself the meaning of Z. I wanted to add an option for start indexing (in command lines) from 1 instead of 0, so I renamed the old option N to Z (which starts from 0) and used the N symbol for 1+ indexing.

It's been awhile since i read bash script. Perhaps using " instead of ' will help? OPTS="$(dgh_enabled_devices "${dev_enable_arg}" "${dev_enable_sep}" "${dev_enable_fmt}" "$OPTS")"

I thnk that's the culprit. Using double quotes should work.

Please give a look to the args update function. I guess it needs some changes to support the two different Z/N formats.

Thank you for your time.

brightskye commented 5 years ago

I ran a quick test on my previous unit tests, the modification is working perfectly.

LuKePicci commented 5 years ago

For example, if I blacklist GPU id 2 and define manually -dev 2,3,4 (and this command lines is using 1+ indexing) we expect the resulting command line to be -dev 2,4 since the blacklist is not 1+ indexed (and has not to be)

brightskye commented 5 years ago

For example, if I blacklist GPU id 2 and define manually -dev 2,3,4 (and this command lines is using 1+ indexing) we expect the resulting command line to be -dev 2,4 since the blacklist is not 1+ indexed (and has not to be)

I see what you mean, i did a quick check, since the dgh_update_device function is only being used by dgh_enabled_devices, i assume a 4th param can be added to dgh_update_device to identify the 1 based index

https://github.com/brightskye/nvoc-fork/tree/disabled-gpu/scripts These are some unit tests scripts I wrote previously to check all functions in the 2 helper scripts, feel free to set it up and run it. although the tests are not pretty there =.=!

brightskye commented 5 years ago

i have created a pull request to patch the dgh_update_device function and fix the quote issue in 0miner https://github.com/papampi/nvOC_by_fullzero_Community_Release/pull/266

papampi commented 5 years ago

Thanks a lot @brightskye Merged it to beta_testing, will test and post the results.

papampi commented 5 years ago

Both Claymore and PhoenixMiner are working as they should.

Thanks a lot.