Is it possible to run GPU and CPU work on the same machine?

Burned
Burned
Joined: 25 Jun 21
Posts: 32
Credit: 388221900
RAC: 2
Topic 225628

I started running a GPU project (GRPBS1) and it ran fine for a few days.  Since I have a ATI 6900 card, I adjusted the settings to run two work units simultaneously, and saw better throughput.  Can I also run a CPU only project on the same machine?  Its an 8 core, 16 thread Ryzen 7 5800X.  I changed settings to allow CPU work and it downloaded a couple of GWSO2MD's but they just sit there.  I suspended all the GPU work and they started running.  If I resume a GPU task, the CPU task stops.

mikey
mikey
Joined: 22 Jan 05
Posts: 11889
Credit: 1828129138
RAC: 205656

Burned wrote: I started

Burned wrote:

I started running a GPU project (GRPBS1) and it ran fine for a few days.  Since I have a ATI 6900 card, I adjusted the settings to run two work units simultaneously, and saw better throughput.  Can I also run a CPU only project on the same machine?  Its an 8 core, 16 thread Ryzen 7 5800X.  I changed settings to allow CPU work and it downloaded a couple of GWSO2MD's but they just sit there.  I suspended all the GPU work and they started running.  If I resume a GPU task, the CPU task stops. 

Yes lots of people do it but you need to get the settings right, do you by chance have an app_config file limiting the total number of tasks Einstein can run at one time? I see you have 2 16cpu core pc's so lack of cpu cores isn't the problem so it could also be a matter of cache settings and deadline dates for your other cpu tasks.

Gary Roberts
Gary Roberts
Moderator
Joined: 9 Feb 05
Posts: 5842
Credit: 109396726693
RAC: 35779439

Burned wrote:... I changed

Burned wrote:
... I changed settings to allow CPU work and it downloaded a couple of GWSO2MD's but they just sit there.  I suspended all the GPU work and they started running.  If I resume a GPU task, the CPU task stops.

That sounds like you have a severe restriction on the number of threads BOINC is allowed to use.

Are you running CPU tasks for any other BOINC project?

Have you restricted the setting for the % of cores (actually threads) BOINC is allowed to use?

The default is for BOINC to be able to use 100% of the threads.  Perhaps you may have changed that to something way too small?

GPU tasks need CPU support so you should make sure you don't try to run too many CPU tasks since that could adversely affect GPU crunch times.  You can protect against that by limiting the % of threads BOINC is allowed to use for CPU tasks.   Also overloading the number of threads may affect CPU crunch times as well so you need to experiment to find the best mix.

So, in theory, you should be able to run quite a mix of GPU tasks and CPU tasks.  Your power consumption (and heat generated) will increase considerably for not a whole lot more output since the CPU crunch times are rather long compared to the GPU times :-).

Cheers,
Gary.

Burned
Burned
Joined: 25 Jun 21
Posts: 32
Credit: 388221900
RAC: 2

Yikes, returned to it sitting

Yikes, returned to it sitting here doing nothing.  I had suspended several GPU tasks.  Settings are 100% processors, 100% cpu time, .5 GPU utilization factor.  No other BOINC projects are configured.  No other DC projects are running.  It will run two simultaneous GPU tasks.  It will run two simultaneous CPU tasks.  It will not run any other combination of work.  A suspended task apparently counts against available CPUs, i.e. suspend 8 tasks and you will do nothing. 

In an ideal world it would run two GPU tasks and count the associated CPU, leaving me with 6 more available CPUs to run work on.  I'm used to Folding, where a work unit can be multithreaded against however many threads you want to give it, but if E@H is single threaded, that's fine.

Oddly, (to me anyway) the GPU tasks specify what they need (1 CPU and .5 of a GPU), but the CPU tasks are just "ready to start" with no requirements.

Its now chewing through GPU work and not selecting CPU work.  Its still downloading new CPU work though.  I bet in the morning there will be a big pile of CPU work units that haven't been dispatched.

 

 

Gary Roberts
Gary Roberts
Moderator
Joined: 9 Feb 05
Posts: 5842
Credit: 109396726693
RAC: 35779439

Burned wrote:Yikes, returned

Burned wrote:
Yikes, returned to it sitting here doing nothing.  I had suspended several GPU tasks.  Settings are 100% processors, 100% cpu time, .5 GPU utilization factor.

With those settings (and assuming everything else is at the defaults, your machine should be trying to run 2 GPU tasks (each one reserving a CPU thread for support) and the remaining 14 threads should be trying to run 14 CPU tasks (probably rather inefficiently).  Your host shows on the website as '16 processors' so BOINC will feel entitled to use as many of those as you allow it to.

I can think of one obvious reason only why running 2 GPU tasks would prevent any CPU threads from being active.   That reason would be if the % of processors BOINC was allowed to use was set to something like 10%.  10% of sixteen threads is 1.6 and BOINC rounds that up to 2.  Since each GPU task instance requires a thread, the two running GPU tasks would then prevent any CPU tasks from running and if you suspended all the GPU tasks then just 2 CPU tasks could run in their place.  Are you really sure you have 100% and not 10%?  You might have left out a zero in that setting :-).

There are 4 separate 'locations' (used to be called 'venues') that a host could be assigned to.  Each one has separately settable preferences.  If you check the 'details' page for your host, it will tell you which location your host is in.  The default is called 'generic'.  The other three are 'home', 'work' and 'school'.  Sometimes inexperienced people change setting for a location their computer doesn't actually belong to and wonder why things are not working.

Burned wrote:
A suspended task apparently counts against available CPUs, i.e. suspend 8 tasks and you will do nothing.

No it doesn't work that way at all.  If you had 8 available threads and you had a work cache of 100 tasks with 92 suspended, the other 8 would all be running.  The problem with leaving even a single task suspended is that it prevents the client from requesting any additional work.  So in the previous example, once the 8 running tasks were completed, everything would come to a grinding halt.  If you then released a further batch of 8, they would immediately start crunching.  You just are prevented from downloading anything new.

Burned wrote:
Oddly, (to me anyway) the GPU tasks specify what they need (1 CPU and .5 of a GPU), but the CPU tasks are just "ready to start" with no requirements.

A CPU task needs a single thread.  You don't need anything to remind you of that.  GPU tasks can have variable amounts of both CPU and GPU.  When using the GPU utilisation factor, you get set values.  It's possible for the user to modify those values through a configuration file you can create.  This is not the problem here so don't get sidetracked with that just yet.

These settings do not control what the app will actually use in the way of resources.  The values are just used by BOINC for budgeting purposes when it decides the mix of tasks that can run.  It is entirely possible to harm the crunching efficiency by poor choice of those settings.  We can go into more detail once you have found what is preventing BOINC from running CPU tasks.  It will NOT be the use of a GPU utilisation factor of 0.5 with the default allocation of 0.5 GPUs and 1 CPU that comes from that.

Burned wrote:
Its now chewing through GPU work and not selecting CPU work.  Its still downloading new CPU work though.  I bet in the morning there will be a big pile of CPU work units that haven't been dispatched.

I just looked at what your host has downloaded in the way of CPU tasks.  You have just 11 GW CPU tasks together with 7 GRP CPU tasks.  Nothing to be concerned about there.  On the GPU tasks front, you have already completed well over 2200 with just a further 61 in progress.  You obviously have a nice small work cache size (congratulations on that) so there is no way you are going to be embarrassed by huge numbers of CPU tasks.

You just need to go through all your settings to find what is preventing CPU tasks from running.

Cheers,
Gary.

Burned
Burned
Joined: 25 Jun 21
Posts: 32
Credit: 388221900
RAC: 2

As I suspected, overnight

As I suspected, overnight several more CPU tasks were downloaded into cache but never run.  So time to crawl through the settings.

For COMPUTER 12893698:

Set to location "Generic" so under "Account Preferences", lets look at Preference Set Generic. Suspend is all no...Use at most processors and CPU time is set to 100.  Disk and network settings all seem fine.  Ok, now look at Project Preferences....  Resource Share is 100, Use is all set to yes,.. All applications are checked.  Run CPU versions is Yes.  Allow non-preferred apps: is No, but I'm not sure what that does.  GPU utilization factor of FGRP apps is set to .5 and we know that's working since two GPU tasks run simultaneously..  

Checking BOINC manager on the box next.  Activity... all 3 are set to Always.   Computing preferences,  Computing tab... Usage Limits...  Use at most.... 12.5%  Well, there is the answer.  Lets set it to 50% (as every user ever has said, "I thought I did that".)   So now 6 CPU only tasks start alongside the GPU tasks.  Very good!  Check processor utilization... each hsgamma process takes about 8%, same with the einstein processes.  Box is running at about 50% as expected.  Its auto overclocking.  Temps are high at 88c, but its not throttling.  I'll have to look at better cooling

Thanks for the help everybody.  Crunch on!  Lets find some pulsars and gravity waves.  "All I need are some tasty waves, a cool buzz, and I’m fine."

mikey
mikey
Joined: 22 Jan 05
Posts: 11889
Credit: 1828129138
RAC: 205656

Burned wrote: As I

Burned wrote:

As I suspected, overnight several more CPU tasks were downloaded into cache but never run.  So time to crawl through the settings.

For COMPUTER 12893698:

Set to location "Generic" so under "Account Preferences", lets look at Preference Set Generic. Suspend is all no...Use at most processors and CPU time is set to 100.  Disk and network settings all seem fine.  Ok, now look at Project Preferences....  Resource Share is 100, Use is all set to yes,.. All applications are checked.  Run CPU versions is Yes.  Allow non-preferred apps: is No, but I'm not sure what that does.  GPU utilization factor of FGRP apps is set to .5 and we know that's working since two GPU tasks run simultaneously..  

Checking BOINC manager on the box next.  Activity... all 3 are set to Always.   Computing preferences,  Computing tab... Usage Limits...  Use at most.... 12.5%  Well, there is the answer.  Lets set it to 50% (as every user ever has said, "I thought I did that".)   So now 6 CPU only tasks start alongside the GPU tasks.  Very good!  Check processor utilization... each hsgamma process takes about 8%, same with the einstein processes.  Box is running at about 50% as expected.  Its auto overclocking.  Temps are high at 88c, but its not throttling.  I'll have to look at better cooling

Thanks for the help everybody.  Crunch on!  Lets find some pulsars and gravity waves.  "All I need are some tasty waves, a cool buzz, and I’m fine." 

WOO HOO!!!

Gary Roberts
Gary Roberts
Moderator
Joined: 9 Feb 05
Posts: 5842
Credit: 109396726693
RAC: 35779439

Burned wrote:... Checking

Burned wrote:
... Checking BOINC manager on the box next.  ...  Use at most.... 12.5%  Well, there is the answer.

Seeing as you were 'Getting Started' and were (like most people in that category) selecting preferences on the website, I neglected to give you a vital bit of information which I'm sure will now be indelibly burned on your brain ;-) :-).  That information is that local settings made through the manager do override website settings.

Most people don't start fiddling with local settings until a much later stage than 'Getting Started'.  It can be a can of worms if you're not careful!  I should have realised that you weren't 'most people' :-).  Congratulations on sorting it out!

 

Cheers,
Gary.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.