Optimal CPU usage (dual GPU)

Message boards : Number crunching : Optimal CPU usage (dual GPU)
Message board moderation

To post messages, you must log in.

AuthorMessage
Profile lunkerlander
Avatar

Send message
Joined: 23 Jul 18
Posts: 82
Credit: 1,353,232
RAC: 4
United States
Message 1959630 - Posted: 11 Oct 2018, 2:51:11 UTC

Hi, I have a quick question on the optimal CPU usage.

I currently have an i5-4590 (4 core, 4 thread) CPU running 1 RX 570 and 1 RX 560 using the BOINC seti app. I just added the RX 570 , I originally had only the RX 560. By default, BOINC is running 4 tasks on the CPU, and 1 task on each GPU. (6 tasks total)

I am able to use my PC normally without any lag from using all 4 cores. Should I leave it set up like this or reduce the CPU usage to 3 cores and leave 1 free for the GPUs and using the PC? I don't mind it running on all 4 cores, I just read other posts where its recommended to leave 1 core for feeding GPUs.

Thanks!
ID: 1959630 · Report as offensive
Profile Keith Myers Special Project $250 donor
Volunteer tester
Avatar

Send message
Joined: 29 Apr 01
Posts: 13164
Credit: 1,160,866,277
RAC: 1,873
United States
Message 1959634 - Posted: 11 Oct 2018, 3:19:39 UTC - in response to Message 1959630.  

I don't know for sure but I think that AMD/ATI cards don't need as much cpu support as Nvidia cards. Look at the run_time and cpu_time of a cpu task started after the RX570 was added to the system. If the run_time matches the cpu_time I would say you don't have to make any changes. However if the run_time is much greater than the cpu_time, then the cpu is overloaded and you should drop off one cpu task via either a use at most cpu allowed setting in the Seti Compute preferences or by a <project_max_concurrent>N</project_max_concurrent> statement in an app_config file to reduce the number of cpu tasks running.
Seti@Home classic workunits:20,676 CPU time:74,226 hours

A proud member of the OFA (Old Farts Association)
ID: 1959634 · Report as offensive
Profile Wiggo
Avatar

Send message
Joined: 24 Jan 00
Posts: 34744
Credit: 261,360,520
RAC: 489
Australia
Message 1959648 - Posted: 11 Oct 2018, 4:17:52 UTC

Personally I'd free up 1 CPU core (just crunch on the other 3 CPU cores) just to cover overheads on your rig and to support your GPU's (it will also let your rig feel much more responsive).

Cheers.
ID: 1959648 · Report as offensive
Profile Mike Special Project $75 donor
Volunteer tester
Avatar

Send message
Joined: 17 Feb 01
Posts: 34258
Credit: 79,922,639
RAC: 80
Germany
Message 1959691 - Posted: 11 Oct 2018, 9:38:48 UTC - in response to Message 1959648.  
Last modified: 11 Oct 2018, 9:39:13 UTC

Personally I'd free up 1 CPU core (just crunch on the other 3 CPU cores) just to cover overheads on your rig and to support your GPU's (it will also let your rig feel much more responsive).

Cheers.


This is also my suggestion.
One instance needs approx 30% of a cpu core, with 2 GPU`s running 60% are required.
So you still have a litte for overhead.


With each crime and every kindness we birth our future.
ID: 1959691 · Report as offensive
Profile Tom M
Volunteer tester

Send message
Joined: 28 Nov 02
Posts: 5124
Credit: 276,046,078
RAC: 462
Message 1959701 - Posted: 11 Oct 2018, 11:03:11 UTC - in response to Message 1959691.  

Personally I'd free up 1 CPU core (just crunch on the other 3 CPU cores) just to cover overheads on your rig and to support your GPU's (it will also let your rig feel much more responsive).

Cheers.


This is also my suggestion.
One instance needs approx 30% of a cpu core, with 2 GPU`s running 60% are required.
So you still have a litte for overhead.


Would allocating 2 cpu's to each gpu card give you the same result?

Tom
A proud member of the OFA (Old Farts Association).
ID: 1959701 · Report as offensive
Profile Brent Norman Crowdfunding Project Donor*Special Project $75 donorSpecial Project $250 donor
Volunteer tester

Send message
Joined: 1 Dec 99
Posts: 2786
Credit: 685,657,289
RAC: 835
Canada
Message 1959702 - Posted: 11 Oct 2018, 11:07:16 UTC - in response to Message 1959701.  

If you read the post
I currently have an i5-4590 (4 core, 4 thread) CPU running 1 RX 570 and 1 RX 560 using the BOINC seti app.
How do you think reserving 4 threads would work????
ID: 1959702 · Report as offensive
Profile lunkerlander
Avatar

Send message
Joined: 23 Jul 18
Posts: 82
Credit: 1,353,232
RAC: 4
United States
Message 1959708 - Posted: 11 Oct 2018, 12:04:04 UTC - in response to Message 1959702.  

Thank you all for your input.

I set computing preferences in BOINC to "Use at most 75% of CPU cores" and now 3 CPU tasks are running plus 2 GPU tasks that each say "Running (0.104 CPUs + AMD/ATI GPU)". What's interesting is that when I only had the 1 RX 560, BOINC said "Running (0.504 CPUs + AMD/ATI GPU)". Now, using both GPUs it seams that it needs less CPU usage.
ID: 1959708 · Report as offensive
Profile lunkerlander
Avatar

Send message
Joined: 23 Jul 18
Posts: 82
Credit: 1,353,232
RAC: 4
United States
Message 1959712 - Posted: 11 Oct 2018, 12:28:35 UTC - in response to Message 1959634.  
Last modified: 11 Oct 2018, 12:39:59 UTC

I don't know for sure but I think that AMD/ATI cards don't need as much cpu support as Nvidia cards. Look at the run_time and cpu_time of a cpu task started after the RX570 was added to the system. If the run_time matches the cpu_time I would say you don't have to make any changes. However if the run_time is much greater than the cpu_time, then the cpu is overloaded and you should drop off one cpu task via either a use at most cpu allowed setting in the Seti Compute preferences or by a <project_max_concurrent>N</project_max_concurrent> statement in an app_config file to reduce the number of cpu tasks running.


Most CPU times were about 4350 seconds CPU time and 4700 seconds total time while running 4 tasks on the CPU. Does this seem pretty reasonable?

Also, it shows that BOINC is using between 77-87% CPU usage under task manager while running 3 CPU tasks.

I'm going to try running 3 CPU tasks and if there isn't any change in CPU and GPU times per task vs 4 tasks, I will revert back to 4 tasks.
ID: 1959712 · Report as offensive
rob smith Crowdfunding Project Donor*Special Project $75 donorSpecial Project $250 donor
Volunteer moderator
Volunteer tester

Send message
Joined: 7 Mar 03
Posts: 22199
Credit: 416,307,556
RAC: 380
United Kingdom
Message 1959751 - Posted: 11 Oct 2018, 15:59:12 UTC

OK, a quick comment - Windows task manager %CPU based on the total number of cores/threads available - thus fully using two cores on a four core system will give a figure of 50%.
77-80% running three CPU tasks on a four core system sounds about right - 25% for each running task plus a bit for the operating system doing whatever it needs to (including running task manager).
I would guess that you will see a couple of % improvement per task running three over four, but with the variability in "actual" task execution times that may not be obvious.
Bob Smith
Member of Seti PIPPS (Pluto is a Planet Protest Society)
Somewhere in the (un)known Universe?
ID: 1959751 · Report as offensive
Darrell Wilcox Project Donor
Volunteer tester

Send message
Joined: 11 Nov 99
Posts: 303
Credit: 180,954,940
RAC: 118
Vietnam
Message 1959833 - Posted: 12 Oct 2018, 3:44:22 UTC - in response to Message 1959630.  

@ lunkerlander

Every once in a while I have to throw my own experience into this ongoing discussion between dedicating-vs.-not a CPU per GPU, so take this for what you want.

I have been running two of my computers for a while in two extreme configurations. The first is my oldest, an i7-2600k CPU with two GTX750Ti GPU cards. I am using the "SLEEP" option with the standard SoG application set at 90 with step of 5 ms. I am NOT setting any CPU aside for SETI. My last 100 results have an elapsed time of 2423 seconds average, with CPU time of 714 seconds average while running three other projects. Rosetta and LHC do not have a GPU application, so I let them use any/all CPUs (and even SETI will sometime throw me a CPU version). Here is the view of this system: http://i1371.photobucket.com/albums/ag318/BOINCuser/WinPro10%20task%20mgr%20and%20BOINC%20view_zps1wzdv4by.jpg~original

The second system is my i7-4790K with one GTX750Ti running WITHOUT "SLEEP", and nothing else running (i.e., ALL CPUs available to the GPU). The last 100 results average run time was 2267 seconds, about 155 seconds faster (6.5%), and average CPU was 2262 seconds, about 1548 seconds longer (217%). Here is the view of this system: http://i1371.photobucket.com/albums/ag318/BOINCuser/BigMax%20task%20mgr%20and%20BOINC%20view_zpsizaquheo.jpg~original

Bottom line: I gave up 6.5% of GPU time (mostly SETI work) and gained the use of all the rest of the CPU time for other projects, including any work I might want to do. To me, this is a good trade-off, but you must decide for yourself if you want to support other projects or not. IN EITHER CASE, it is not required to dedicate a CPU to a GPU to get good performance.

The "key" to doing this is to use "-hp" or otherwise elevate the GPU work above the CPU work in the O/S dispatching priority scheme.
ID: 1959833 · Report as offensive
Profile lunkerlander
Avatar

Send message
Joined: 23 Jul 18
Posts: 82
Credit: 1,353,232
RAC: 4
United States
Message 1961441 - Posted: 22 Oct 2018, 3:30:45 UTC - in response to Message 1959833.  

Thank you for all the responses! I ended up using 3 CPU tasks, a leaving 1 core free for running the 2 GPUs. It seems to be working well.
ID: 1961441 · Report as offensive

Message boards : Number crunching : Optimal CPU usage (dual GPU)


 
©2024 University of California
 
SETI@home and Astropulse are funded by grants from the National Science Foundation, NASA, and donations from SETI@home volunteers. AstroPulse is funded in part by the NSF through grant AST-0307956.