HPCToolkit / hpctoolkit

HPCToolkit performance tools: measurement and analysis components

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

need to support more than one GPU tracing thread

jmellorcrummey opened this issue · comments

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 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