Awesome!
Are we able to plot with large stagger sizes in this version?
@twig123 Yes, the correlation between the staggerSize and the GPU RAM has been removed. The staggerSize only depends on the CPU RAM amount now.
Would it be more beneficial for hdds to run in RAID arrays now, ie. RAID0? As for ssds, that not a very cost efficient alternative...lol.....I'll send you some burst and thank you for all the efforts, more likely the middle to end of next week.
@SpeedDemon13 Yes I agree with you, the SSD reference is not really cost effective. Moreover, plotting on a SSD and transfering the files to standard HDD later only shift the problem.
However, I think that a multi-GPU multi-disks version could be a good idea.
And you Cryo, very big thanks!
Version 3.0 came out great and at the moment it has everything you need to begin now to create a lot of plots without problems.
Steps for creating this version taken from the author is not a short time. Respect him for that!
I transferred to Cryo 5000 Burst. Good people, I will always support!
@ Palad1n Thanks for your support =D
Thanks alot
Have done some initial testing on nvidia, and I think it's faster but foremost it can handle much larger stagger sizes. And I'm just on tiny 750ti's
Donation incmming
@mmmaybe Glad to hear from an NVidia user. Thanks for your support =)
Awesome!
Fooling around a bit with it, 2 x 780 Ti went over 60k n/m and I'm fairly certain they could have gone higher if it weren't for the I/O limitation.
The highest stagger I could reach was 16383 which is just below 4GB RAM which is the maximum it could allocate even though I have 16 GB. And that is completely regardless of VRAM amount.
@bathrobehero Wow, impressive performances. Regarding the
it can be because you have a 32bits platform. What command line do you use? What error do you have when trying to allocate more than 4GB? Which OS do you have?
Getting the following error message some times:
[ERROR] std::exception
Running 5 devices, within their memory limits. Any ideas...?
@mmmaybe After wich step do you see this error? There is a problem in the error display here so it'll be difficult to know the real cause. I'll have to correct the displaying problem before. I'll work on it, thanks for your feedback.
As the HDD is now bottleneck, there are two options:
- Write to multiple disks at the same time (I will put this on the roadmap).
I
modified an earlier version of your plotter to do this. I've been using it for a couple of weeks or so, it seems to produce valid plots much faster. Only tested on linux.
void CommandGenerate::help() const {
std::cerr << "Usage: ./gpuPlotGenerator generate ";
std::cerr << "
";
std::cerr << " ";
std::cerr << "[ ...]" << std::endl;
std::cerr << " - platformId: Id of the OpenCL platform to use (see [list] command)." << std::endl;
std::cerr << " - deviceId: Id of the OpenCL device to use (see [list] command)." << std::endl;
std::cerr << " - staggerSize: Stagger size." << std::endl;
std::cerr << " - threadsNumber: Number of parallel threads for each work group." << std::endl;
std::cerr << " - hashesNumber: Number of hashes to compute for each step2 kernel calls." << std::endl;
std::cerr << " - path: Path to the plots directory." << std::endl;
std::cerr << " - address: Burst numerical address." << std::endl;
std::cerr << " - startNonce: First nonce of the plot generation." << std::endl;
std::cerr << " - noncesNumber: Number of nonces to generate." << std::endl;
std::cerr << "With multiple [ ] arguments " << std::endl;
std::cerr << "GPU calculation iterates through a stagger for each job and the results are " << std::endl;
std::cerr << "saved asynchronously. This is intended to be used for plotting multiple " << std::endl;
std::cerr << "mechanical drives simultaneously in order to max out GPU bandwidth." << std::endl;
}
@Alex Coventry I've looked at your code. I think that the N CPU buffers are really bottleneck as it will require a lot of RAM to plot N disks at the same time, or will force the user to reduce its value, thus increasing disk-stress when mining. Maybe a limted amount of rotating buffers would be enough and more RAM efficient. Maybe a stagger-less version (staggerSize = fileSize / PLOT_SIZE) of the plotter could solve this RAM issue (need some tests as it will increase IO operations).
Anyhow I will work on that part with the already implemented multi-GPU support, begining with the ideas behind your version.
What do you mean by "much faster"? Do you speak about a performance difference between the 3.0.0 and the 2.1.1 or between the 2.1.1 and your modded one?