Message boards : Questions and problems : Exclusive applications is very limited
Message board moderation
Author | Message |
---|---|
Send message Joined: 28 Jun 10 Posts: 2622 |
I cannot choose to pause the CPU without pausing the GPUs aswell. That is because the GPU apps all use a small amount of CPU. |
Send message Joined: 25 May 09 Posts: 1293 |
...but some GPU applications need nearly whole CPU core to run - it depends how they have been coded. |
Send message Joined: 25 May 09 Posts: 1293 |
This could be a good idea. Have a look and select a couple of examples that prove your point and go over to GitHub and suggest it (sadly not many of the developers bother to read what we write here). |
Send message Joined: 29 Aug 05 Posts: 15533 |
The amount of CPU used for the GPU is minimal.All science applications run on the CPU. Whether they do their science only on the CPU, or partly on the GPU, the actual science application runs on the CPU. Which is why you cannot pause the CPU without pausing the GPU as well. Games do exactly the same thing, they run on the CPU and output data to the GPU. The GPU doesn't actually run any program, GPUs aren't capable of running any programs. When doing work on the GPU, the CPU does all the heavy lifting. It will translate the data that needs to run on the GPU into kernels that the GPU understands, transfer the kernels to the GPU, have a pause while the GPU runs that work, transfer the outcoming data back to RAM, translate it back into something the humans can understand and write it to disk. There's really not much that the GPU does in this, other than run kernel after kernel after kernel. |
Send message Joined: 29 Aug 05 Posts: 15533 |
But the amount of CPU effort to support a GPU is minimal.It doesn't matter if the CPU uses 1% or 99% to run the application that does the translating of the data from the task to kernels that the GPU can run. As long as the CPU runs the application, you cannot pause only CPU tasks and continue to run work on the GPU, because without the CPU the science application can't run any work on the GPU. There should be an option to pause CPU tasks.How do you make the distinction between tasks running on the CPU only and tasks that run on the CPU but do translation work for the GPU? Both run on the CPU. Both show in Windows Task Manager as prutteldeprut.exe There's no distinction between the two. GPU work runs on the CPU. A lot of tasks even do a majority of work on the CPU and only a little bit on the GPU. |
Send message Joined: 25 Jul 18 Posts: 63 |
Just change locally the allowed percentage of CPU usage to a value that corresponds to what GPU support requires. Boinc will most likely then run only GPU tasks if it is not in panic mode with CPU task deadlines. When you have finished your work with the application, you can clear local preferences or return to your previous local preferences. |
Send message Joined: 29 Aug 05 Posts: 15533 |
When you manually suspend a task, the BOINC client suspends that task's science application based on its process ID in the threads list. BOINC therefore enumerates all running threads and has to identify those belonging to the process you want to suspend. It may look easy, "look I point and click and it pauses", but you don't know what kind of code sits behind that. It's 176 lines of C++ code. |
Send message Joined: 28 Jun 10 Posts: 2622 |
Sorry, I have no idea how to use Github, I'm obviously not geeky enough!Git-Hub doesn't require a particularly high geek rating. |
Send message Joined: 29 Aug 05 Posts: 15533 |
Can it not distinguish between a "CPU task" and a "GPU task"? I can see when it asks for work it requests one or the other or both from each project. In the tasks tab, status column of boinc manager, it clearly states when a task requires the use of a GPU, so it must know which are which.BOINC doesn't suspend tasks, instead it suspends the executing of the actual science application. And to know where those are in the memory of the computer, it needs to figure out which are which and separate them from all the other processes running on the computer and then halt the correct one as usually you have more than one of them running. That you can see tasks by CPU or GPU in BOINC Manager is just because the projects and the client use something called a plan class, in which it's stipulated whether an application should run on a particular host; what resources it will use (# of CPUs and GPUs, optionally memory usage); how fast it is expected to run. But even with these plan classes in place, BOINC still doesn't know which science application does what and more critically, where it's at this moment on the computer (or which process ID it uses). And while it is wiser to actually name the science application for the plan class, not all projects may do that. It's not necessary to name an application that runs its data on Nvidia GPUs prutteldeprut_nvidia.exe, as BOINC doesn't care about that, although it helps the human trying to make heads or tails from things. A majority of the OpenCL applications are exactly the same between hardware versions and while the project could get away with just releasing the one app one time (that runs on all hardware), they now usually release one per hardware iteration (Nvidia, AMD, Intel). Now, all this is very lightly explained, if you need extremely more detail you can always dive into the available documentation. You don't have to be a rocket scientist to understand that, but a bit of technical knowledge and programming insight will help. |
Send message Joined: 29 Aug 05 Posts: 15533 |
I'm suspecting he's short of PCI-Express lanes. Does Boinc talk to GPUs differently to Folding at home? Perhaps one is a lower level connection?I suspect on short notice it's a lack of PCIe lanes as well. "On Ryzen CPUs, 16 are dedicated to PCIe slots, four are dedicated to other components such as M. 2 slot, USB or SATA controllers and the final 4 connect to the motherboard chipset." His motherboard details are here. The amount of lanes are dictated by the CPU, he has 24. |
Copyright © 2024 University of California.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License,
Version 1.2 or any later version published by the Free Software Foundation.