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
Copyright © 2024 Einstein@Home. All rights reserved.
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 ...
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.
Keith Myers wrote:... the
)
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.
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.
Keith Myers wrote:I thought
)
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.
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!
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.