[rocprofv3] Add rocpd output support (part 1: prelude) (#401)
* [rocprofv3] Add rocpd output support (part 1: prelude)
- git submodules for sqlite3, GOTCHA, and pybind11
- HIP stream data
- rocprofiler_query_intercept_table_name(...)
- serialization load
- rocprofiler::sdk::get_perfetto_category(KindT)
- rocprofiler::sdk::parse::strip
- common library updates
- md5sum
- hasher
- simple_timer
- static_tl_object
- get_process_start_time_ns(pid_t)
- output library updates
- node_info
- file_generator (generator is now virtual base class)
- stream info updates
* Added submodules
* Code review updates
* Minor unused-but-set-X warning fixes
* Update CI
- install libsqlite3-dev package
* Update CI
- install libsqlite3-dev package
* Fix static thread-local object memory leak
- also fix signal handler chaining
* Remove URL from comment
* Remove page migration exception
* Enable ROCPROFILER_BUILD_SQLITE3 by default
- try find_package(SQLite3) first and then build when ROCPROFILER_BUILD_SQLITE3=ON
* Fix gotcha installation
- make install of target optional
* Validate tracing + counter collection dispatch data
- i.e. correlation ids, thread ids, timestamps
* Make find_package(SQLite3) optional
- ROCm CI does not have SQLite3 dev package installed and cannot build from source (missing tclsh)
* Fixes to tracing + counter collection test
* get_process_start_time_ns update
- original implementation did not work
* Fix pytest-packages test_perfetto_data for counter collection
- erroneous failure when used with same PMC + multiple agents
* cmake policy: option() honors normal variables
- for GOTCHA submodule
* Improve samples/api_buffered_tracing stability
- reduce likelihood of sporadic exception throw
* Update gotcha submodule
---------
Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
[ROCm/rocprofiler-sdk commit: 7166b1ab58]
This commit is contained in:
@@ -223,22 +223,26 @@ output_keys(std::string _tag)
|
||||
}
|
||||
|
||||
for(auto&& itr : std::initializer_list<output_key>{
|
||||
{"%argv%", _argv_string, "Entire command-line condensed into a single string"},
|
||||
{"%argt%",
|
||||
{"argv", _argv_string, "Entire command-line condensed into a single string"},
|
||||
{"argt",
|
||||
_argt_string,
|
||||
"Similar to `%argv%` except basename of first command line argument"},
|
||||
{"%args%", _args_string, "All command line arguments condensed into a single string"},
|
||||
{"%tag%", _tag0_string, "Basename of first command line argument"}})
|
||||
{"args", _args_string, "All command line arguments condensed into a single string"},
|
||||
{"tag", _tag0_string, "Basename of first command line argument"}})
|
||||
{
|
||||
_options.emplace_back(itr);
|
||||
_options.emplace_back(fmt::format("%{}%", itr.key), itr.value, itr.description);
|
||||
_options.emplace_back(fmt::format("{}{}{}", '{', itr.key, '}'), itr.value, itr.description);
|
||||
}
|
||||
|
||||
if(!_cmdline.empty())
|
||||
{
|
||||
for(size_t i = 0; i < _cmdline.size(); ++i)
|
||||
{
|
||||
auto _v = _cmdline.at(i);
|
||||
_options.emplace_back(fmt::format("%arg{}%", i), _v, fmt::format("Argument #{}", i));
|
||||
auto _v = _cmdline.at(i);
|
||||
auto itr = output_key{fmt::format("arg{}", i), _v, fmt::format("Argument #{}", i)};
|
||||
_options.emplace_back(fmt::format("%{}%", itr.key), itr.value, itr.description);
|
||||
_options.emplace_back(
|
||||
fmt::format("{}{}{}", '{', itr.key, '}'), itr.value, itr.description);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -247,22 +251,23 @@ output_keys(std::string _tag)
|
||||
auto _hostname = get_hostname();
|
||||
|
||||
for(auto&& itr : std::initializer_list<output_key>{
|
||||
{"%hostname%", _hostname, "Network hostname"},
|
||||
{"%pid%", _proc_id, "Process identifier"},
|
||||
{"%ppid%", _parent_id, "Parent process identifier"},
|
||||
{"%pgid%", _pgroup_id, "Process group identifier"},
|
||||
{"%psid%", _session_id, "Process session identifier"},
|
||||
{"%psize%", _proc_size, "Number of sibling process"},
|
||||
{"%job%", _slurm_job_id, "SLURM_JOB_ID env variable"},
|
||||
{"%rank%", _slurm_proc_id, "MPI/UPC++ rank"},
|
||||
{"%size%", _dmp_size, "MPI/UPC++ size"},
|
||||
{"%nid%", _uniq_id, "%rank% if possible, otherwise %pid%"},
|
||||
{"%cwd%", fs::current_path().string(), "Current working path"},
|
||||
{"%launch_date%", _launch_date, "Date according to date format ROCPROF_DATE_FORMAT"},
|
||||
{"%launch_time%", _launch_time, "Date and/or time according to ROCPROF_TIME_FORMAT"},
|
||||
{"hostname", _hostname, "Network hostname"},
|
||||
{"pid", _proc_id, "Process identifier"},
|
||||
{"ppid", _parent_id, "Parent process identifier"},
|
||||
{"pgid", _pgroup_id, "Process group identifier"},
|
||||
{"psid", _session_id, "Process session identifier"},
|
||||
{"psize", _proc_size, "Number of sibling process"},
|
||||
{"job", _slurm_job_id, "SLURM_JOB_ID env variable"},
|
||||
{"rank", _slurm_proc_id, "MPI/UPC++ rank"},
|
||||
{"size", _dmp_size, "MPI/UPC++ size"},
|
||||
{"nid", _uniq_id, "%rank% if possible, otherwise %pid%"},
|
||||
{"cwd", fs::current_path().string(), "Current working path"},
|
||||
{"launch_date", _launch_date, "Date according to date format ROCPROF_DATE_FORMAT"},
|
||||
{"launch_time", _launch_time, "Date and/or time according to ROCPROF_TIME_FORMAT"},
|
||||
})
|
||||
{
|
||||
_options.emplace_back(itr);
|
||||
_options.emplace_back(fmt::format("%{}%", itr.key), itr.value, itr.description);
|
||||
_options.emplace_back(fmt::format("{}{}{}", '{', itr.key, '}'), itr.value, itr.description);
|
||||
}
|
||||
|
||||
for(auto&& itr : std::initializer_list<output_key>{
|
||||
|
||||
Reference in New Issue
Block a user