Message boards :
Number crunching :
Optimal CPU usage (dual GPU)
Message board moderation
Author | Message |
---|---|
lunkerlander Send message Joined: 23 Jul 18 Posts: 82 Credit: 1,353,232 RAC: 4 |
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! |
Keith Myers Send message Joined: 29 Apr 01 Posts: 13164 Credit: 1,160,866,277 RAC: 1,873 |
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) |
Wiggo Send message Joined: 24 Jan 00 Posts: 34744 Credit: 261,360,520 RAC: 489 |
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. |
Mike Send message Joined: 17 Feb 01 Posts: 34258 Credit: 79,922,639 RAC: 80 |
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). 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. |
Tom M Send message Joined: 28 Nov 02 Posts: 5124 Credit: 276,046,078 RAC: 462 |
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). Would allocating 2 cpu's to each gpu card give you the same result? Tom A proud member of the OFA (Old Farts Association). |
Brent Norman Send message Joined: 1 Dec 99 Posts: 2786 Credit: 685,657,289 RAC: 835 |
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???? |
lunkerlander Send message Joined: 23 Jul 18 Posts: 82 Credit: 1,353,232 RAC: 4 |
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. |
lunkerlander Send message Joined: 23 Jul 18 Posts: 82 Credit: 1,353,232 RAC: 4 |
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. |
rob smith Send message Joined: 7 Mar 03 Posts: 22199 Credit: 416,307,556 RAC: 380 |
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? |
Darrell Wilcox Send message Joined: 11 Nov 99 Posts: 303 Credit: 180,954,940 RAC: 118 |
@ 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. |
lunkerlander Send message Joined: 23 Jul 18 Posts: 82 Credit: 1,353,232 RAC: 4 |
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. |
©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.