I have two different GPUs in my main machine (if you really care why, see below*). They seem to handle Einstein@home work units differently and certainly have different capacities and capabilities.
One is an NVIDIA GTX 960, and the other is an AMD R9 RX280X. I'm hoping we'll see CUDA come back to this project because it seems to run much better on the NVIDIA card than OpenCL does.
Einstein FGRP GPU units seem to use about half of my NVIDIA card's memory and processor capacity, while they use about a third of the R9 280X. I had a ton of spare capacity going to waste, so I set my GPUs to run 2 GPU units on each concurrently in the preferences page.
The AMD card is *still* only using about half its capacity, while the NVIDIA card is maxed out. Completion times for the NVIDIA units have more than doubled.
<Here's the Question:>
How would I build an app_info.xml to run these cards at different rates? I understand the basics of how to build the app_info.xml, but not clearly on how to make it differentiate between the two cards. All of the examples I've seen do the same thing to all of the GPUs uniformly.
I am guessing there is a way to use the name of the app for the respective GPU and for the GPU itself. I'm concerned that by using an app_info.xml I will lose all my ongoing tasks if I get it wrong, that I will not get work if the app name changes (say from 1.17 to 1.18 or any of the Beta work), etc.
Thanks in advance for any advice,
__________________________________________
* For those curious why I have two different kinds of GPUs: I was using CUDA here and when this project switched to OpenCL it seemed the AMD card had the potential for better OpenCL performance. I am also learning how to develop GPU computing and machine learning projects, so I am trying to learn how to deal with both types of cards and use their relative advantages.
Copyright © 2024 Einstein@Home. All rights reserved.
You can I believe. You would
)
You can I believe. You would have to include a <type>AMD</type> and <type>nvidia</type> for each with the commands following that for each in the app_config.xml
https://boinc.berkeley.edu/wiki/Client_configuration
I've never done it but I remember someone else brought it up and they were able to do it by specifying the different GPUs and how many were run on it. I've been trying to find the thread but am coming up empty.
By default, only the most
)
By default, only the most capable GPU should run in a BOINC project. Or does this apply only to machines with either two ati or two nvidia devices?
However, it may not be necessary to name devices because applications can be named as those are specific ( https://einsteinathome.org/de/apps.php?xml=1 ).
Zalster wrote:You can I
)
I have only used the type flag in cc_config to limit an app to certain cards (no Pascal support on another project). Does it work in app_config as well?
If you wanted you might be able to start up a second client which would get its own Project folder and app_config but I'm not sure if that would read a 2nd cc_config file to limit the client to one of the two cards. I haven't tried that on my Goofy Boinc instances.
My machine is using both
)
My machine is using both cards, and is running two work units per card right now. The NVIDIA card is maxed out (both memory and processor), but the AMD still looks like it can handle much more.
So no, BOINC doesn't appear to run only the most capable GPU--it's running both, but running both with the same settings.
solling2 wrote: However, it
)
That is an intriguing technique. I'll give that a shot. However, I'm still concerned about keeping up with version changes (i.e. if I have it set for 1.17 and 1.18 comes out, or Beta work, etc.)
I got a syntax error with my
)
I got a syntax error with my app_info.xml and it dumped all of my tasks. I'm not spotting the error...
I read this thread after
)
I read this thread after posting a reply to the same question here: https://einsteinathome.org/content/configuring-several-machines-appconfigxml-file
Forget using a app_info.xml and cc_config.xml is for configuring the core client and not project apps.
As always read the instructions (http://boinc.berkeley.edu/wiki/Client_configuration#Application_configuration) and if you don't understand them then do as you did here, ask about it and someone will come along to give a helpful answer.
Holmis wrote:. As always
)
I did read the instructions and your other post, but am not clear by what you meant by "forget app_info.xml and cc_config.xml is for configuring the core client and not project apps."
I could have it confused with something else, but app_info.xml is what I've placed in my SETI project folder to control things like this, such as using optimized apps.
So again, I did read the instructions, but this is the first time I've tried to do this on Einstein@home and the other way works for some reason on SETI.
cc_config.xml controls how
)
cc_config.xml controls how Boinc behaves, ie logging options, using all available GPUs instead of only the most capable. <- you only need this to make sure Boinc uses all of your GPUs if you have more than 1 GPU in the same computer.
app_info.xml is used if you want to provied your own apps instead of the project supplied apps, ie using optimized apps released by a 3rd party. <- No need to use this with Einstein@home, there are no 3rd party apps.
app_config.xml is used to control the project supplied apps, ie running x2 or more on GPUs. <- This is what you want to use.
Follow my example in the other thread, copy the example given from <app_config> to </app_config> into a simple text editor. Then replace the contents of <plan_class> to the appropriate plan class given by the applications page linked.
For controlling multiple plan classes your should end up with something like this:
Edit the above to suite your needs (change plan class, avg_ncpus and ngpus) and save as app_config.xml in the einstein@home project directory and make sure it doesn't have a .txt appended to it.
Then make Boinc "read config files" via Options -> Read config files and you should be set.
I appreciate the
)
I appreciate the clarification. That explains the purpose of each of those control files much more clearly.
I'm still working through this though. Each time I do it BOINC spits out an error on the plan_class. I used the names you provided, tried using the ones here https://einsteinathome.org/apps.php?xml=1 and most recently tried to use the actual application names for the executable in the project folder on my hard drive.
This https://boinc.berkeley.edu/wiki/Client_configuration#Application_configuration isn't terribly explicit on what exactly should go in the plan_class and I'm going to simply try NVIDIA and ATI, or try it without plan_class altogether and figure out where else I can differentiate the two.
I do appreciate all your patience and help so far though. Thank you for taking the time.