Multiple GPUs on a single GPU?

Message boards : Number crunching : Multiple GPUs on a single GPU?

To post messages, you must log in.

AuthorMessage
4TH8mhHQuUe84f9sH8nnQR6fR4ax

Send message
Joined: 4 Sep 21
Posts: 5
Credit: 210,130,919
RAC: 0
   
Message 1648 - Posted: 27 Feb 2023, 22:23:27 UTC

Azmodes gave me the text to his app_config.xml. This is what I currently have it set to. I'm trying to find out what the relationship is between run time and CPU time, since running only one GPU task gives me lower average run times and CPU times overall, but running four GPU tasks gives me way higher average run times and slightly higher CPU times. Ideally, it'd just be (single GPU tasks)*4=each GPU task total run time, and that'd be it. In other words, My single GPU task is 247 sec run time, 82 sec GPU time. My four GPU tasks going simultaneously should just be 984 seconds per task; it's not though, it's an average of 1435 seconds run time, 110 seconds GPU time. So that seems like a drop in performance to me. Should I go back to just one GPU task at a time? Is there any benefit to crunching multiple tasks at a time on a single GPU?
<app_config>
        <app>
        <name>amicable_10_21</name>
                <gpu_versions>
                        <gpu_usage>0.25</gpu_usage>
                        <cpu_usage>1</cpu_usage>
                </gpu_versions>
        </app>
</app_config>
ID: 1648 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Skillz

Send message
Joined: 26 Apr 18
Posts: 3
Credit: 2,051,083,675
RAC: 4,070,764
    
Message 1651 - Posted: 23 Mar 2023, 19:35:19 UTC - in response to Message 1648.  

Azmodes gave me the text to his app_config.xml. This is what I currently have it set to. I'm trying to find out what the relationship is between run time and CPU time, since running only one GPU task gives me lower average run times and CPU times overall, but running four GPU tasks gives me way higher average run times and slightly higher CPU times. Ideally, it'd just be (single GPU tasks)*4=each GPU task total run time, and that'd be it. In other words, My single GPU task is 247 sec run time, 82 sec GPU time. My four GPU tasks going simultaneously should just be 984 seconds per task; it's not though, it's an average of 1435 seconds run time, 110 seconds GPU time. So that seems like a drop in performance to me. Should I go back to just one GPU task at a time? Is there any benefit to crunching multiple tasks at a time on a single GPU?
<app_config>
        <app>
        <name>amicable_10_21</name>
                <gpu_versions>
                        <gpu_usage>0.25</gpu_usage>
                        <cpu_usage>1</cpu_usage>
                </gpu_versions>
        </app>
</app_config>


Amicable Numbers uses your CPU also. It spends the first few seconds (not sure exactly how many, but it's probably about 1/3 of the total run time) on the CPU getting things ready. Then the GPU starts to do it's work at the end. So there are points in a task where the CPU is doing all the work, then the GPU is doing all the work.

You can see this if you're on Windows and use a program such as or similar to MSI Afterburner and watch the GPU usage and CPU usage graphs. You'll see a spike in CPU usage when the task first starts, then it'll drop off and the GPU will spike up.

The only time you'll see a benefit in running more than one task simultaneously would be if your GPU usage doesn't hit or get close to 100% usage. Running two tasks at a time could, in theory, push the GPU to 100% usage and thus you'll see a small increase in overall production by running more than one.

In theory if you could stagger the tasks to not start at the same time you could potentially see a nice boost in performance, but BOINC isn't designed to do that and the tasks will eventually start to overlap. The staggering part would be to run the first task, when it's done using the CPU and switches to the GPU you'll want to start the second task since it'll be using the CPU only. In theory once the first task is done with it's GPU work load, the second task will be done with the CPU work load and switch to the GPU. I do not know of a way to make this possible though.

The best thing you can do is just run the tasks and compare the run times to see if you gain or do not gain performance. Judging by your results of running 4 tasks at once, it's not faster but actually slower.
ID: 1651 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote

Message boards : Number crunching : Multiple GPUs on a single GPU?


©2024 Sergei Chernykh