You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Context: As training, I'm trying to implement raytracing with HIP by myself. Because of that, I have to start threads hundreds of times per second and the overhead of starting threads becomes a big problem.
I couldn't find an easy way to keep my threads alive and use them to execute the same code over and over. Also, because the GPU threads have no way to passively wait for a signal from the CPU, I had to use active wait which I really wish I could avoid.
Feature: I suggest to either add a way to send events from the CPU to the GPU or add a way to manage pools of threads that aren't just killed when they finish executing their code but are kept alive, ready to run again (same ID, same data).
Note that it's not impossible to do at the moment, just extremely suboptimal. I think it would be very benificial in each case where we have to start threads at a high frequency.
Operating System
No response
GPU
No response
ROCm Component
No response
The text was updated successfully, but these errors were encountered:
Thanks for the question! From my understanding, using a stream approach provides a more efficient and flexible model for resource management and execution of high-frequency workloads like ray tracing. Also, using graphs could allow for more efficient task scheduling as well as managing task dependencies.
Suggestion Description
Context: As training, I'm trying to implement raytracing with HIP by myself. Because of that, I have to start threads hundreds of times per second and the overhead of starting threads becomes a big problem.
I couldn't find an easy way to keep my threads alive and use them to execute the same code over and over. Also, because the GPU threads have no way to passively wait for a signal from the CPU, I had to use active wait which I really wish I could avoid.
Feature: I suggest to either add a way to send events from the CPU to the GPU or add a way to manage pools of threads that aren't just killed when they finish executing their code but are kept alive, ready to run again (same ID, same data).
Note that it's not impossible to do at the moment, just extremely suboptimal. I think it would be very benificial in each case where we have to start threads at a high frequency.
Operating System
No response
GPU
No response
ROCm Component
No response
The text was updated successfully, but these errors were encountered: