nerdralph
|
|
December 31, 2017, 06:42:05 PM |
|
I'm curious why you picked the ethash-new kernel from sgminer-gm. I'm still using most of the original ethminer kernel, and get within 1% of the original sgminer-gm ethash kernel. With fglrx, amgpu-pro 16 (and amdgpu-pro 17 when using -legacy) on GCN3, the keccak loop compiles to 306 instructions and needs 80 VGPRs. 16 of the instructions are scalar for the loop and Keccak_f1600_RC lookup, and 30 of the vector instructions are just v_mov_b32 to shuffle around registers at the end of each round. My calculations by hand were that each loop would take 268 instructions minimum if it could be done without any move instructions.
Besides skipping most of the chi function in the final round which ethash-new already does, some of the theta function in the first round could be skipped as well. Together those optimizations can save 3-4% of the instructions. Aside from Wolf's GCN assembler kernel, I'm not aware of anyone doing a highly optimized ethash kernel. He shared some of the code with me, and even he wasn't able to get the code below 250 instructions per loop. The major difference for his kernel was that it only needed 64 VGPRs, and therefore permitted 4 waves instead of 3.
However, as you know, with a plain ethash kernel, the keccak function isn't the bottleneck, it's memory latency/bandwidth. But since you are now writing dual miner kernels, the fewer cycles taken in the keccak function, the more available for the secondary algorithm. Getting any significant optimizations out of the keccak function is very difficult, which is no surprise since it wouldn't have been chosen for sha-3 if there were easy shortcuts. I'm still looking at ways to optimize the 2nd keccak specific to the fact it only needs 64 bits output (or perhaps even only 32). That may or may not bear fruit, but I'm more confident in another idea I have. Since I enjoy thinking more than I do coding, by sharing it with you it is more likely to get implemented sooner.
The ethash inner loop that reads 64 * 128-byte DAG items is the primary bottleneck, as I believe each read has a latency of around 100us. With memory controller channel conflicts and GDDR5 bank conflicts, some reads could have a latency of 150us. When one wave is stalled waiting for memory, the 2nd and 3rd wave can run, but I suspect there is still room to improve SIMD occupancy. While one way is by reducing VGPR usage to get 4 waves in flight, another way would be to interleave 2 ethash iterations. The 64 bytes of state output from the first keccack hash can be saved in LDS, then a 2nd nonce can be run through the keccak hash while the 64 DAG reads are going on for the first nonce. Since there are only 24 rounds to the keccak hash, the rounds would need to be divided in two, for a total of 48 half-rounds interleaved between the first 49 DAG lookups. LDS usage per would be 64 bytes * 64 threads * 4 SIMD = 16KB/wave on each CU, or 48KB with 3 waves. The regular ehash kernel uses 6KB of LDS for the shared DAG reading, so the total would still be under the 64KB max.
I even have another optimization idea, but it can't be implemented in OpenCL. An assembler kernel could use the DS ALU concurrently with the VALU. Unfortunately the DS ALU has no shift instruction, so that will still have to be done by the VALU. All or most of the XOR operations could be done using DS_XOR instructions. With 32 LDS banks, only 32 of the 64 threads on a CU will be able to concurrently execute a DS instruction, but that wouldn't be a concern with a dual mining kernel where 2 out of the 4 SIMD units per CU are working on the secondary algorithm.
|
|
|
|
|
|
|
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
|
|
|
|
heavyarms1912
|
|
December 31, 2017, 08:54:17 PM |
|
I hope everyone would eventually see that paying the DEVFEE is actually a good thing for themselves. That way, I can continue development without worrying about money, and my wife would stop bugging me about how much money I am making everyday. lol Right now, I have to spend a considerable chunk of my time on my own small mining farm just to support my family. If I can live off the DEVFEE, I don't have to maintain the farm, I can just focus on GGS, and the miner gets faster and more stable with more features. It is just as simple as that.
Totally agree. Devfee should be there and keeps the dev motivated to improve the miner. How about having static 0.5% devfee and 0.5-1% user configurable?
|
|
|
|
SirOverdose
Newbie
Offline
Activity: 13
Merit: 0
|
|
December 31, 2017, 10:34:31 PM |
|
1.1.8 doesnt detect my cards at all on startup, 1.1.7 crashes on startup, 1.1.6 starts and runs / but only 8 cards available. Please fix this so i can use your miner. A log file, please! Hey Zawawa heres the log : 2017-12-30 12:59:19.2235 [1] Gateless Gate Sharp 1.1.8 alpha started. 2017-12-30 12:59:19.9210 [1] Exception in InitializeDevices(): Method not found: 'Byte[] Cloo.ComputeDevice.get_BoardNameAMD()'. at GatelessGateSharp.MainForm.InitializeDevices() at GatelessGateSharp.MainForm.MainForm_Load(Object sender, EventArgs e) 2017-12-30 12:59:22.9576 [1] Exception: Object reference not set to an instance of an object. at GatelessGateSharp.MainForm.LoadDatabase() You just need to upgrade the Cloo.dll to the latest version. It is in the distribution package. Which distribution package is this? I downloaded the MSI from github, do you mean net framework?
|
|
|
|
UnclWish
|
|
December 31, 2017, 11:26:01 PM |
|
1.1.8 doesnt detect my cards at all on startup, 1.1.7 crashes on startup, 1.1.6 starts and runs / but only 8 cards available. Please fix this so i can use your miner. A log file, please! Hey Zawawa heres the log : 2017-12-30 12:59:19.2235 [1] Gateless Gate Sharp 1.1.8 alpha started. 2017-12-30 12:59:19.9210 [1] Exception in InitializeDevices(): Method not found: 'Byte[] Cloo.ComputeDevice.get_BoardNameAMD()'. at GatelessGateSharp.MainForm.InitializeDevices() at GatelessGateSharp.MainForm.MainForm_Load(Object sender, EventArgs e) 2017-12-30 12:59:22.9576 [1] Exception: Object reference not set to an instance of an object. at GatelessGateSharp.MainForm.LoadDatabase() You just need to upgrade the Cloo.dll to the latest version. It is in the distribution package. Which distribution package is this? I downloaded the MSI from github, do you mean net framework? No. He means installation package. Just try to delete GGS and reinstall it.
|
|
|
|
|
cloudminer1
Newbie
Offline
Activity: 27
Merit: 0
|
|
January 01, 2018, 03:34:20 AM |
|
zawawa thank you for your work i just got into mining am fairly new to it all i really like the function of the GGS miner im currently mining with 2 rigs and plan to grow. I just read the last 50 pages of this thread going to install the latest ver and give it a test run and report back. I'm +1 for the windows for now
|
|
|
|
cloudminer1
Newbie
Offline
Activity: 27
Merit: 0
|
|
January 01, 2018, 03:42:11 AM |
|
2017-12-31 21:36:34.2926 [1] Successfully loaded phymem. 2017-12-31 21:36:58.3943 [1] Launching miner(s) for Custom Pool 0... 2017-12-31 21:36:58.3973 [1] Connecting to eu1.altminer.net:10002 as TdcKGodyRUtyNnvQa5Pgs67MyPc7tTTGCe... 2017-12-31 21:36:58.3993 [1] Exception in Stratum.Connect(): System.Net.Sockets.SocketException (0x80004005): No such host is known at System.Net.Sockets.TcpClient..ctor(String hostname, Int32 port) at GatelessGateSharp.Stratum.Connect() 2017-12-31 21:36:58.7523 [5] Miner thread for Device #0 started. 2017-12-31 21:36:58.7583 [5] Loaded Kernels\neoscrypt.cl for Device #0. 2017-12-31 21:37:05.3929 [5] Built NeoScrypt program for Device #0. 2017-12-31 21:37:05.3929 [5] Build options: -O5 -legacy -IKernels -DWORKSIZE=256 2017-12-31 21:37:05.6425 [6] Miner thread for Device #1 started. 2017-12-31 21:37:05.6445 [6] Loaded Kernels\neoscrypt.cl for Device #1. 2017-12-31 21:37:10.5516 [5] Exception in miner thread: Stratum server failed to send a new job. at GatelessGateSharp.OpenCLNeoScryptMiner.MinerThread() 2017-12-31 21:37:10.5516 [5] Restarting miner thread...
i set up custom pool like shown earlier in thread
|
|
|
|
zawawa (OP)
Sr. Member
Offline
Activity: 728
Merit: 304
Miner Developer
|
|
January 01, 2018, 04:49:58 AM |
|
I’m going out with my wife now. I will add this pool as a default pool when I get back home. If you guys have recommendations for good anonymous pools, please let me know.
|
Gateless Gate Sharp, an open-source ETH/XMR miner: http://bit.ly/2rJ2x4VBTC: 1BHwDWVerUTiKxhHPf2ubqKKiBMiKQGomZ
|
|
|
zawawa (OP)
Sr. Member
Offline
Activity: 728
Merit: 304
Miner Developer
|
|
January 01, 2018, 05:04:50 AM |
|
It seems like this particular pool is down, though. I was hoping there would be a good anonymous pool for NeoScrypt. We will see.
|
Gateless Gate Sharp, an open-source ETH/XMR miner: http://bit.ly/2rJ2x4VBTC: 1BHwDWVerUTiKxhHPf2ubqKKiBMiKQGomZ
|
|
|
zawawa (OP)
Sr. Member
Offline
Activity: 728
Merit: 304
Miner Developer
|
|
January 01, 2018, 06:22:10 AM |
|
2017-12-31 21:36:34.2926 [1] Successfully loaded phymem. 2017-12-31 21:36:58.3943 [1] Launching miner(s) for Custom Pool 0... 2017-12-31 21:36:58.3973 [1] Connecting to eu1.altminer.net:10002 as TdcKGodyRUtyNnvQa5Pgs67MyPc7tTTGCe... 2017-12-31 21:36:58.3993 [1] Exception in Stratum.Connect(): System.Net.Sockets.SocketException (0x80004005): No such host is known at System.Net.Sockets.TcpClient..ctor(String hostname, Int32 port) at GatelessGateSharp.Stratum.Connect() 2017-12-31 21:36:58.7523 [5] Miner thread for Device #0 started. 2017-12-31 21:36:58.7583 [5] Loaded Kernels\neoscrypt.cl for Device #0. 2017-12-31 21:37:05.3929 [5] Built NeoScrypt program for Device #0. 2017-12-31 21:37:05.3929 [5] Build options: -O5 -legacy -IKernels -DWORKSIZE=256 2017-12-31 21:37:05.6425 [6] Miner thread for Device #1 started. 2017-12-31 21:37:05.6445 [6] Loaded Kernels\neoscrypt.cl for Device #1. 2017-12-31 21:37:10.5516 [5] Exception in miner thread: Stratum server failed to send a new job. at GatelessGateSharp.OpenCLNeoScryptMiner.MinerThread() 2017-12-31 21:37:10.5516 [5] Restarting miner thread...
i set up custom pool like shown earlier in thread
Everything seems fine on my end:
|
Gateless Gate Sharp, an open-source ETH/XMR miner: http://bit.ly/2rJ2x4VBTC: 1BHwDWVerUTiKxhHPf2ubqKKiBMiKQGomZ
|
|
|
cloudminer1
Newbie
Offline
Activity: 27
Merit: 0
|
|
January 01, 2018, 06:22:34 AM |
|
pool is up im mining on it right now with my other rig edit maybe i need to add the x will check back ty after reading the whole thread im really looking foward to using this miner and def dont mind the dev fee
|
|
|
|
zawawa (OP)
Sr. Member
Offline
Activity: 728
Merit: 304
Miner Developer
|
|
January 01, 2018, 06:38:59 AM |
|
I realized it is a major pain to copy settings from one rig to another. For now, you can just copy "C:\Program Files\Zawawa Software LLC\Gateless Gate Sharp\GatelessGateSharp.sqlite" to copy all the settings. I will add another feature to make this much easier and more intuitive.
|
Gateless Gate Sharp, an open-source ETH/XMR miner: http://bit.ly/2rJ2x4VBTC: 1BHwDWVerUTiKxhHPf2ubqKKiBMiKQGomZ
|
|
|
cloudminer1
Newbie
Offline
Activity: 27
Merit: 0
|
|
January 01, 2018, 07:01:52 AM |
|
other rig is a nvidia card rig running ccminer for now but if this works out good ill run it on both of my rigs 2nd rig is a 8card rx570 rig
|
|
|
|
cloudminer1
Newbie
Offline
Activity: 27
Merit: 0
|
|
January 01, 2018, 08:19:08 AM |
|
same error went back through DDU drivers reinstalled blockchain driver uninstalled GGS reinstalled newest ver setup pool just like yours but with my wallet same error
|
|
|
|
zawawa (OP)
Sr. Member
Offline
Activity: 728
Merit: 304
Miner Developer
|
|
January 01, 2018, 08:30:58 AM |
|
same error went back through DDU drivers reinstalled blockchain driver uninstalled GGS reinstalled newest ver setup pool just like yours but with my wallet same error
It is probably because your IP address is blocked by the pool for some reason. Did you try other miners and/or other pools?
|
Gateless Gate Sharp, an open-source ETH/XMR miner: http://bit.ly/2rJ2x4VBTC: 1BHwDWVerUTiKxhHPf2ubqKKiBMiKQGomZ
|
|
|
UnclWish
|
|
January 01, 2018, 09:41:45 AM |
|
It's strange, but on my rig on 1.1.9 hardware sensors info showed from 1st GPU on all others. All the same and from 1st device. On 1.1.8 all normal. Drivers 17.11.4.
|
|
|
|
ntzntz
Newbie
Offline
Activity: 15
Merit: 0
|
|
January 01, 2018, 02:14:51 PM |
|
I am trying to figure out how i can add a custom pool to your program http://prntscr.com/hurywk is this the right way? i am getting a big error like this one http://prntscr.com/hurze7 what am i doing wrong? thanks. Is there anything i need to install ?
|
|
|
|
UnclWish
|
|
January 01, 2018, 02:17:29 PM |
|
I am trying to figure out how i can add a custom pool to your program http://prntscr.com/hurywk is this the right way? i am getting a big error like this one http://prntscr.com/hurze7 what am i doing wrong? thanks. Is there anything i need to install ? Try to remove "startum+tcp://" Just leave "pool..."
|
|
|
|
ntzntz
Newbie
Offline
Activity: 15
Merit: 0
|
|
January 01, 2018, 02:21:06 PM Last edit: January 01, 2018, 02:32:20 PM by ntzntz |
|
I think the error is not because of the custom pool. I tried what you told me but i get the same error like before when i try to press start. I also tried to install from the setup but if i do not select the neoscrypt algo in the custom pool it starts and i get no error. If i select the neoscrypt then the program crashes with the error already submitted above
|
|
|
|
Saphire
|
|
January 01, 2018, 03:21:35 PM |
|
I have 7x Rx580 and Windows 10 64 bit. The driver is AMD fix Driver. I downloaded and installed Gateless Gate Sharp 1.1.9 I tried to mine Ethereum on Nanopool and mine hashrate is 28-29 Mh/s and it was stable at those speed. Then i tried to mine neoscript but my hashrate is so unstable. It changes every SECONDs between 700 and 90 Kh/s. Is this normal? And what shold be my Intensity and Work Size for Neoscript? (I didind change the defult 256-256)
|
|
|
|
|