need to support more than one GPU tracing thread
jmellorcrummey opened this issue · comments
John Mellor-Crummey commented
examples of multiple runtime threads
- roctracer thread
- rocprofiler thread
- perhaps multiple ompt threads
approach:
- replace point-to-point activity channel with many-one activity channel incident on application thread
- create an abstraction that supports push and pop_front and pop_back
- pop_front just does a direct pop from trieber stack
- pop_back does a steal, a reverse, and a pop from a sequential stack
- create an abstraction that supports push and pop_front and pop_back
- create a tool thread
- runtime thread
- check its recycling channel for freed activity records. allocate a new activity record if recycled record is not available
- route a GPU activity to tool thread
- tool thread
- tool thread looks up activity correlation id
- redirects incoming activities to application thread activity channel