Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Variable GPU load #42

Open
DiDu0815 opened this issue May 18, 2022 · 3 comments
Open

Variable GPU load #42

DiDu0815 opened this issue May 18, 2022 · 3 comments

Comments

@DiDu0815
Copy link

Do you see any chance to add separate options for variable load on GPU(s), similar to already existing CPU options (e.g. -l -p)?

@rschoene
Copy link
Member

rschoene commented Aug 26, 2024

I assume that cublas<type>swap would be a suitable function? While this would still work on memory, it would not really use the available FPUs. Do you have a better suggestion (this will only be started after the AMD GPU integration)

PS: alternatively, we could not run any workload at all...
PPS: It could be hard cancelling the kernel and polling for the "low load" flag during synchronization. Any help and suggestions are welcome

@DiDu0815
Copy link
Author

DiDu0815 commented Sep 1, 2024

Unfortunately, I'm no way a good programmer so I have no idea about the best way to implement it. I am using FIRESTARTER for load tests to finetune cooling systems. I appreciated the functionality to vary the CPU load and was just curious whether that also would be possible for the GPUs as well.

@rschoene
Copy link
Member

rschoene commented Sep 19, 2024

Thanks for your answer and sorry for my late replies. I have not much time to spare on this project.
Nevertheless, I keep that in mind. Here's a short explanation of the issue, so that you know what the issue is (and might be forgiving for me not having a straight-up answer).

While on the CPUs cancelling the high load is easy since the threads will monitor a certain variable every some tens to hundreds nanoseconds, it is not easy to cancel the workload that is running on the GPU. So the GPU threads could switch to a low-power routine after they finished one chunk of work. But this chunk of work takes quite some time, which means they might miss the deadline for switching to low (significantly) and sometimes even miss multiple successive low load phases.
Hence, I cannot just implement it that way, since a feature that does not exist is still better then a feature that does not work correctly.

I will have to rely on colleagues that are more knowledgeable when it comes to these things.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants