Welcome to MilkyWay@home

(0.892 CPUs + 1 Nvidia GPU)

Message boards : Number crunching : (0.892 CPUs + 1 Nvidia GPU)
Message board moderation

To post messages, you must log in.

AuthorMessage
Profile HRFMguy

Send message
Joined: 12 Nov 21
Posts: 236
Credit: 575,038,236
RAC: 2,993
Message 71866 - Posted: 4 Mar 2022, 2:24:59 UTC

What does this mean, exactly?

The computer in question is 906873. Ryzen 9 3900x. All tasks are separation, no N body.

On this computer, 1 CPU takes about 3,350 seconds/task.

Task Computer Sent Time reported or deadline Status Run time(sec) CPU time(sec) Credit Application
145266798 906873 3 Mar 2022, 1:42:00 UTC 3 Mar 2022, 5:28:17 UTC Completed, waiting for validation 3,352.12 3,296.64 pending
Milkyway@home Separation v1.46
windows_x86_64

On the other hand, the 0.892 CPUs + 1 Nvidia GPU combo takes about 590 seconds with CPU time of 176 seconds. The combo completes about 5.5 task for every stand alone CPU task.

Task Computer Sent Time reported or deadline Status Run time(sec) CPU time(sec) Credit Application
143270781 906873 2 Mar 2022, 0:43:13 UTC 4 Mar 2022, 1:27:23 UTC Completed, waiting for validation 592.74 176.00 pending
Milkyway@home Separation v1.46 (opencl_nvidia_101)
windows_x86_64

So what does .892 CPUs really mean? Maybe it should really be (1-.892) or .118 CPUs? I find it hard to believe that the graphics card takes .892 CPUs/ per task, just for managing the GPU.

Some MW wrinkle brain gonna need to teach this MW smooth brain a thang or 2, lol.
ID: 71866 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
alanb1951

Send message
Joined: 16 Mar 10
Posts: 210
Credit: 106,044,163
RAC: 23,795
Message 71871 - Posted: 4 Mar 2022, 8:03:47 UTC - in response to Message 71866.  
Last modified: 4 Mar 2022, 8:09:53 UTC

You did ask :-) ...

The figures in a line like 0.0882 CPUs + 1 NVIDIA GPU are simply advice to the BOINC client as to the resources it will need to run a task. The scheduler in the client won't start more tasks at once if the sum of CPU resources asked for would be exceeded, but it rounds the sum down to the integer below...

In this case, the way the program that uses the GPU is written means it shouldn't need the full capacity of a CPU to run so it uses an estimate of how much CPU time it thinks will be needed.

If you were running Einstein@Home GPU work on an NVIDIA card, you'd find that it says 1 CPU + 1 NVIDIA GPU -- the standard Einstein GPU programs need a CPU core to themselves to achieve peak performance, and that's a core no longer available for another task...

There are all sorts of tunings people do on the CPU value for GPU tasks, especially if they have powerful GPUs that can try to keep more than one task active on a single GPU simultaneously. But for Milkyway@Home you can't go far wrong just leaving the settings alone!

Cheers - Al.

P.S. You've already seen the significant difference in performance between CPU-only and GPU tasks - the Separation tasks for each type have the same amount of data to process so the CPU-only tasks are likely to take an order of magnitude longer. Some other projects don't do ,mixed GPU and CPU-only work...

[Edited to add the footnote]
ID: 71871 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile HRFMguy

Send message
Joined: 12 Nov 21
Posts: 236
Credit: 575,038,236
RAC: 2,993
Message 71875 - Posted: 5 Mar 2022, 3:34:07 UTC - in response to Message 71871.  

Thanks for the reply.

I guess it is what it is....

I found out about the tuning after posting. As an experiment, MW on the Ryzen is now restricted by 1 cores' worth, percent wise, from full load. We will see how well that works, but preliminary data suggests that there is no GPU throughput improvement. The GPU in use is not a gaming unit, so I am not expecting a whole lot. It very definitely is fit for the use intended however, which is 2D drawings and graphs and stock trading in a multi monitor 1440p scenario.

It may very well turn out that in this case it is best just to leave the settings alone!

The motherboard supports 2 PCIe x16 graphics cards, so there may be a second GPU in the future!
ID: 71875 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile mikey
Avatar

Send message
Joined: 8 May 09
Posts: 3321
Credit: 520,485,110
RAC: 25,804
Message 71877 - Posted: 5 Mar 2022, 11:18:28 UTC - in response to Message 71875.  

Thanks for the reply.

I guess it is what it is....

I found out about the tuning after posting. As an experiment, MW on the Ryzen is now restricted by 1 cores' worth, percent wise, from full load. We will see how well that works, but preliminary data suggests that there is no GPU throughput improvement. The GPU in use is not a gaming unit, so I am not expecting a whole lot. It very definitely is fit for the use intended however, which is 2D drawings and graphs and stock trading in a multi monitor 1440p scenario.

It may very well turn out that in this case it is best just to leave the settings alone!

The motherboard supports 2 PCIe x16 graphics cards, so there may be a second GPU in the future!


If you do that there is a way to exclude the current gpu from crunching thru a cc_config.xml file
ID: 71877 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile HRFMguy

Send message
Joined: 12 Nov 21
Posts: 236
Credit: 575,038,236
RAC: 2,993
Message 71878 - Posted: 5 Mar 2022, 16:13:36 UTC - in response to Message 71877.  

no change in the GPU throughput, so I removed the core restrictions.
@ mikey, will look into that when the time comes. thanks.
ID: 71878 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
GolfSierra

Send message
Joined: 11 Mar 22
Posts: 42
Credit: 21,902,543
RAC: 0
Message 72635 - Posted: 9 Apr 2022, 10:06:28 UTC - in response to Message 71878.  

I have a combination of a RTX 3060 Ti and a Ryzen 9 5950x CPU.

I tried different configurations and there was no difference in performance (calculating time) for a GPU task between 1 CPU and 0.25 GPU as one setup an 0.5 CPU and 0.25 GPU in another setup. The time to finish a GPU task increased, when I did 0.5 CPU and 0.1 GPU (ten GPU tasks in parallel), but that is because the capacity of the RTX was exceeded. Seems that the CPU is not the driving factor, regardless if you assign a full CPU or only 0.5 CPU to a single GPU task.
ID: 72635 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile mikey
Avatar

Send message
Joined: 8 May 09
Posts: 3321
Credit: 520,485,110
RAC: 25,804
Message 72637 - Posted: 9 Apr 2022, 12:19:21 UTC - in response to Message 72635.  

I have a combination of a RTX 3060 Ti and a Ryzen 9 5950x CPU.

I tried different configurations and there was no difference in performance (calculating time) for a GPU task between 1 CPU and 0.25 GPU as one setup an 0.5 CPU and 0.25 GPU in another setup. The time to finish a GPU task increased, when I did 0.5 CPU and 0.1 GPU (ten GPU tasks in parallel), but that is because the capacity of the RTX was exceeded. Seems that the CPU is not the driving factor, regardless if you assign a full CPU or only 0.5 CPU to a single GPU task.


We users can NOT change the amount of cpu a gpu takes as it's pre-programmed in during the task making phase, so if it says it's using 0.892 of a cpu core than that's the maximum it will use during the time it crunches you process the task. By limiting the amount of cpu core available to the task you can actually make the task take longer to crunch as if you set it to 0.25% then it can't use the 0.892%, my earlier number, so has to wait for cpu time to process the next bit of data, or process the data slower. That's one reason Einstein grabs a cpu core just for it's gpu tasks if you crunch them, so we users don't say 'hey my task is 30% slower that his task on the same gpu'.
ID: 72637 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Keith Myers
Avatar

Send message
Joined: 24 Jan 11
Posts: 708
Credit: 543,761,229
RAC: 128,888
Message 72642 - Posted: 9 Apr 2022, 21:32:31 UTC
Last modified: 9 Apr 2022, 21:33:58 UTC

Common misconception of what the printed cpu usage in the gpu task definition actually means. The number is only for BOINC scheduling of available resources.

The gpu task will use as much or as little cpu that it needs to compute and shove data to the gpu. The end-user has no control of the process. Only the developer of the app can control the value.

Use BoincTasks or Top to see the actual amount of cpu that a gpu task is using.

For example right now my MW Separation tasks on my GTX 1080 Ti is using only 0.532% of a cpu thread to process the task. The task scheduling definition is defined in my app_config.xml as 0.9 cpu_usage and 0.5 gpu_usage.

You can also see for example that a Einstein OAS3 gpu task with a default 1.0 cpu_usage and 1.0 gpu_usage definition does in fact use as much as 120% of a cpu thread to compute the task on the gpu.
Only the task application controls how much cpu support it needs to shovel data from memory into the gpu and shovel calculated data back out from the gpu to the result file on disk.
ID: 72642 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Keith Myers
Avatar

Send message
Joined: 24 Jan 11
Posts: 708
Credit: 543,761,229
RAC: 128,888
Message 72643 - Posted: 9 Apr 2022, 23:53:10 UTC

[Addendum]
I am currently using 231% of a cpu to process a GPUGrid Python beta task right now. Stock scheduling usage defined for those tasks is 1.0 cpu.
So in fact I am actually using a little more than two cpu threads to crunch the gpu task.
ID: 72643 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote

Message boards : Number crunching : (0.892 CPUs + 1 Nvidia GPU)

©2024 Astroinformatics Group