[SDK][rocprofv3] MI300 Stochastic PC sampling (#92)

* MI300 Stochastic PC sampling SDK API implementation

* ROCProfV3: Stochastic PC sampling Support (#94)

* ROCProfV3: MI300 Stochastic PC sampling initial draft

* ROCProfV3: Initial Stochastic PC sampling Tests (#95)

ROCProfV3: Initial Stochastic PC sampling tests

* Update rocprofiler_pc_sampling_record_stochastic_v0_t

- update doxygen docs for members
- replace rocprofiler_correlation_id_t with rocprofiler_async_correlation_id_t

* Relax the check in JSON tests

* drain PC sampling buffer during finalize_rocprofv3

* Increase timeout for "Test Install Build" step

- 10 minutes -> 20 minutes
- "Test Installed Packages" has 20 minutes so "Test Install Build" should also

---------

Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
此提交包含在:
Indic, Vladimir
2025-03-21 20:40:45 +01:00
提交者 GitHub
父節點 c06feccf2a
當前提交 49ce79a5b5
共有 98 個檔案被更改,包括 5266 行新增1031 行删除
+28
查看文件
@@ -23,6 +23,7 @@
#pragma once
#include <rocprofiler-sdk/fwd.h>
#include <rocprofiler-sdk/pc_sampling.h>
#include <rocprofiler-sdk/cxx/codeobj/code_printing.hpp>
#include <rocprofiler-sdk/cxx/serialization.hpp>
@@ -79,5 +80,32 @@ struct rocprofiler_tool_pc_sampling_host_trap_record_t
}
};
// TODO:: Check if we can template this structure
struct rocprofiler_tool_pc_sampling_stochastic_record_t
{
rocprofiler_pc_sampling_record_stochastic_v0_t pc_sample_record;
int64_t inst_index;
rocprofiler_tool_pc_sampling_stochastic_record_t(
rocprofiler_pc_sampling_record_stochastic_v0_t record,
int64_t index)
: pc_sample_record(record)
, inst_index(index)
{}
template <typename ArchiveT>
void save(ArchiveT& ar) const
{
ar(cereal::make_nvp("record", pc_sample_record));
ar(cereal::make_nvp("inst_index", inst_index));
}
};
struct rocprofiler_tool_pc_sampling_stats
{
uint64_t valid_samples = 0;
uint64_t invalid_samples = 0;
};
} // namespace tool
} // namespace rocprofiler