app_config question

kb9skw
kb9skw
Joined: 25 Feb 05
Posts: 21
Credit: 376418803
RAC: 6999
Topic 216647

So I have added a RX 570 to my Ryzen 2400G computer that has a Vega 11 on the APU.  Both are running with two threads per GPU, so four total. This of course means that I am loosing four CPU threads. Assuming I have the work unit start times staggared I should be able to get by with two if not one CPU core dedicated to the GPU work units. 
I know there is a way to set this in the app_config xml file but am not figuring it out. What am I looking for a line to say in order to get six of eight or three of four cores  to work?

 

Thanks

Richie
Richie
Joined: 7 Mar 14
Posts: 656
Credit: 1702989778
RAC: 0

How would this work

How would this work out:

<app_config>

<app>

<name>hsgamma_FGRPB1G</name>

<max_concurrent>4</max_concurrent>

<gpu_versions>

<gpu_usage>.5</gpu_usage>

<cpu_usage>.25</cpu_usage>

</gpu_versions>

</app>

</app_config>

 

... So it's that cpu_usage line that can be used to allocate partial resources.

.25 or 0.25 means one core/thread would drive four tasks (if that's okay for the application). .5 would drive two tasks, .33 three ...

Keith Myers
Keith Myers
Joined: 11 Feb 11
Posts: 4970
Credit: 18772608915
RAC: 7203513

I thought that

I thought that both <max_concurrent>N</max_concurrent> and <project_max_concurrent>N</project_max_concurrent>

had to be the last entry in the app_config before closing with

</app_config>

for the correct syntax structure.

 

Gary Roberts
Gary Roberts
Moderator
Joined: 9 Feb 05
Posts: 5872
Credit: 117788238589
RAC: 34672268

Keith Myers wrote:... the

Keith Myers wrote:
... the last entry in the app_config before closing ...

I don't believe so.  I'm sure I've used it in the position as indicated without any problem.

The bigger question is whether or not the OP is intending to share the GPU resources across different projects.  That would require a more complex app_config.xml I think.  Don't know for sure as I've never tried that.

The statement about losing 4 CPU threads makes me think that Einstein only GPU tasks will be running.  The OP really needs to clarify that.  In that case, the <max_concurrent> entries should be unnecessary.

The other thing to worry about is what might happen by attempting to run 2 tasks on the internal GPU.  I have no idea about how good AMD internal GPUs are.  I'd be worried about a big performance hit, though.  Also I'd be worried about running 6 CPU tasks on the 6 remaining threads after 2 threads are 'reserved' for GPU support.  I would suspect that there will be sufficient performance loss to make using just 4 cores with 4xGPU and 2xCPU as a much more viable option.  The OP will need to test all this.

Also, there needs to be a small correction to the example app_config.xml.  Each GPU task should have access to a half thread for support, not a quarter thread.  As listed, the example file would attempt to run 4 GPU tasks in total but would only reserve 1 CPU thread since 4x0.25=1.

Here is Richie's suggestion (with the cpu_usage correction) on the assumption that Einstein only will be running on the GPUs. 

<app_config>
    <app>
        <name>hsgamma_FGRPB1G</name>
        <gpu_versions>
            <gpu_usage>.5</gpu_usage>
            <cpu_usage>.5</cpu_usage>
        </gpu_versions>
    </app>
</app_config>

 Just to be really clear about the above, with 8 threads enabled on the machine, the above would attempt to run 4 GPU tasks and 6 CPU tasks (2 reserved threads).  With 4 cores (instead of 8 threads) the above would attempt to run 4 GPU tasks and 2 CPU tasks (2 reserved cores).  I'm not confident that the first case would even work properly.  The second would be more likely to work but I'd be worried about the internal GPU.  In testing either of the above, it would be very important to ensure adequate cooling.

 

Cheers,
Gary.

Richard Haselgrove
Richard Haselgrove
Joined: 10 Dec 05
Posts: 2143
Credit: 2961059309
RAC: 692504

Keith Myers wrote:I thought

Keith Myers wrote:
I thought that ...

Always check with the documentation: https://boinc.berkeley.edu/wiki/Client_configuration#Application_configuration

What matters is whether a tag is inside the <app> block, is inside the <app_version> block, or outside both.

<max_concurrent> is an <app> entry

<project_max_concurrent> is an outsider.

kb9skw
kb9skw
Joined: 25 Feb 05
Posts: 21
Credit: 376418803
RAC: 6999

Gary that is exactly what I

Gary that is exactly what I have, save for 0.33 on the CPU. This gives two threads per GPU

I have been using 0.33 on the CPU, which gives me 7/8 threads. Performance was reduced down to the mid 1,100 second range per task. 

0.5 on the CPU is giving me 6/8 threads. I think this is what was giving me mid 900s but when I fist put the card in I was in the upper 500 range. That may of been with all four GPU tasks getting their own CPU threads. 

Looking at my completed tasks for the system. The Vega 11 was returning tasks at around 6,000 seconds with just having one CPU thread reserved vs upper 4,000s with two threads reserved. 

Back to 0.5 and 6/8 CPU threads for a few days now, I will experiment with different combinations to see what gives the best result.

 

Thanks!

mmonnin
mmonnin
Joined: 29 May 16
Posts: 291
Credit: 3427936540
RAC: 3916237

I use Process Lasso to keep

I use Process Lasso to keep CPU BOINC exes separate from my E@H GPU exe files. Otherwise Windows will end up making the GPU exe wait and then GPU utilization drops. For my RX580 I can run 2x tasks on one CPU thread with pretty high GPU utilization. You might want to try Process Lasso to keep the 6 CPU tasks separate from the 2 GPU exes.

Comment viewing options

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