Add kernel profiling time info to counter collection records (#1000)

* Add kernel profiling time info to counter collection records

- lib/rocprofiler-sdk/kernel_dispatch
  - added profiling_time.{hpp,cpp}
  - restructured tracing.cpp
- updated queue.cpp AsyncSignalHandler
  - gets kernel dispatch profiling time and passes to dispatch_complete and signal callbacks
- structured some header includes to reduce cyclic include probability
  - originally, including kernel_dispatch/tracing.hpp in hsa/queue.hpp created a lot of cyclic includes

* Fix kernel_dispatch.cpp includes

* Fix kernel_dispatch.cpp

- include <cstring>
- replace use of ROCPROFILER_HSA_AMD_EXT_API_ID_NONE with ROCPROFILER_KERNEL_DISPATCH_LAST
This commit is contained in:
Jonathan R. Madsen
2024-08-19 20:05:04 -05:00
zatwierdzone przez GitHub
rodzic fa1b9e67ab
commit b15e498945
27 zmienionych plików z 395 dodań i 182 usunięć
@@ -22,18 +22,35 @@
#pragma once
#include "lib/rocprofiler-sdk/context/context.hpp"
#include "lib/rocprofiler-sdk/hsa/queue_info_session.hpp"
// #include "lib/rocprofiler-sdk/kernel_dispatch/profiling_time.hpp"
#include <rocprofiler-sdk/fwd.h>
#include <rocprofiler-sdk/hsa.h>
#include <hsa/hsa.h>
#include <cstdint>
namespace rocprofiler
{
namespace context
{
struct context;
}
namespace kernel_dispatch
{
using context_t = context::context;
using user_data_map_t = std::unordered_map<const context_t*, rocprofiler_user_data_t>;
using external_corr_id_map_t = user_data_map_t;
struct profiling_time;
profiling_time
get_dispatch_time(const hsa::queue_info_session& session);
void
dispatch_complete(hsa::queue_info_session&);
dispatch_complete(hsa::queue_info_session&, profiling_time);
} // namespace kernel_dispatch
} // namespace rocprofiler