GPU Plotting (Direct mode) - Why does it suck so bad?
-
So,
I have no issues with CPU plotting. I can finish a 4TB plot in ~1.5days (@~18,000 nonces/min with 2x Xeon X5670's).
I can GPU plot 4TB "buffered" (unoptimized, @~40,000 nonces/min with my R9 280) in just under a day.
However, GPU plotting 4TB in "direct" (optimized) mode, results in the plotter hanging @ ~0.25% complete while it fills up the drive (roughly a day)... then once the plot file is the expected size it starts, presumably, writing nonces... and estimates 2 weeks worth of plot time left (which quickly lowers by ~1day every couple hours).... then gets to 100% complete after roughly 2.5 days, and sits there with 0 disk activity, 0 CPU/GPU activity... and estimates 2 days left (which doesn't appear to change).
It's just frustrating that I can CPU plot optimized faster than I can GPU plot optimized.... and it appears that the GPU plotting software hasn't been updated since Burst's inception (back in 2014). Any plans on a more user friendly, and working, GPU plotter anytime in the future?
-
@twig123 The delay is normal, the plotter builds a blank file, whereas xplotter does it in one quick action. If it's getting stuck at 99/100%, it's rounded the number of nonce up, and is trying to plot more than100% of the drive. Reduce nonce count, or use xplotter.
-
The same exact command, with only "direct" changed" to "buffer" works just fine though...
Moreover, why does it take a day to make an empty plot file, whereas xplotter creates the blank file instantly?
-
@twig123 XPlotter uses non-standard method for fast creating file, but for this operation XPlotter must run with Administrator rights
-
@Blago thanks for the info.
I was trying to determine why GPU plotting "direct" seems to be far more inefficient than both CPU and GPU plotting "buffer".
-
If you look at the code you can see that there are some parts, that are not optimal like generating the plots and writing to hdd is not done in parallel. In direct mode writing takes even longer because you dont write once per staggersize but 4096 times (including 4096 seeks).
It lowers my nonces / min from around 200k when plotting a single 128gb file in ram (with 128gb stagger size) to less than 50k while plotting several 8tb hdds in parallel.
There will soon (4-6 weeks?) be a newer version of the gpu plotter that is more efficient but requires a bit more ram
-
@tco42 did you start to update GPU-plotter?
-
well i'm still evaluating the best solutions, but i think i will start next week. I still need some more infos about opencl, but i know someone who is very experienced in gpu computing...
-
@tco42 Awesome! Looking forward to an update. I have 48GB of System RAM to work with, so I'm sure that'll suffice for GPU plotting.
As of right now, I'm just dealing with the slower (faster, in my case) CPU plotting. If a more optimized version of the GPU plotter is released, I'd be more apt to pick up some more drives to plot :P
-
After several days of analysing the code and even more time spent testing changes i found the solution to my problems.
There seems to be a problem in windows and its thread management which causes some of the threads not to run at the perfect time. Simply switching to linux (ubuntu 17.04) allowed me to keep plotting at over 200.000 nonce/min with exactly the same settings and exactly the same code.
Also if you choose ext4 as filesystem you dont need to create the empty plot file at the beginning.Looks like there is no need to change anything in the code.
-
.... but, I don't wanna boot linux on meh beefy server (got it runnin a bunch of other needful winderz thingamabobs), lol :-\
Funny, I think I remember booting a Ubuntu live disc when I first started to get the GPU plotting done (as it was 'nix only at that time).
Any idea if it is all versions of Windows that have issues? or Just 7? 8? 8.1? 10?
Personally, I'm on 7 ATM, but I could consider upgrading to 10 or Server 2016 if it's deemed that those are more worthy.Thanks for your effort!
-
i was using win10 professional n 64bit... mb the server versions work better
-
I updated the GPU plot generator (v4.1.1) with fast pre-allocation feature (same as XPlotter, with cross OS port, though not tested for now as I lack beta testers).
The huge lag was due to the system that was zero-filling the whole file step by step for the first plot writing.
-
@cryo Awesome! I have another 1-2 days for my current CPU plot to finish, then I'll test this out on another 4TB drive I need to get plotted =D
I'll let you know how it goes once I'm able to test.
-
@cryo Conclusion, v4.1.1 works MUCH better than the previous version!
Plotted 4TB (to the same drive as the previous tests) using "direct" mode, and the plot finished in 18h 21m 33s, compared to the estimated 2 weeks with the previous version!

