Add support for RCCL tracing (#1047)

* [Draft]: Add support for RCCL tracing

Address comments

* [Draft]: Add support for RCCL tracing

Address PR comments, changes from RCCL upstream

* Add RCCL library table registration

Working on adding support to rocprofiler-register

* Support compilation w/o <rccl/amd_detail/api_trace.h>

- dummy api_trace.h header
- return ROCPROFILER_STATUS_ERROR_NOT_IMPLEMENTED when RCCL does not have api_trace.h header

* RCCL API tracing tool support

- add to rocprofv3
- add to json-tool

---------

Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>

[ROCm/rocprofiler-sdk commit: 2a146259c7]
This commit is contained in:
Mythreya
2024-09-11 22:42:58 -07:00
committed by GitHub
parent 4d01508d0b
commit c47a128941
43 changed files with 2270 additions and 30 deletions
@@ -50,7 +50,8 @@ write_json(tool_table* tool
std::deque<rocprofiler_buffer_tracing_memory_copy_record_t>* memory_copy_deque,
std::deque<rocprofiler_tool_counter_collection_record_t>* counter_collection_deque,
std::deque<rocprofiler_buffer_tracing_marker_api_record_t>* marker_api_deque,
std::deque<rocprofiler_buffer_tracing_scratch_memory_record_t>* scratch_memory_deque)
std::deque<rocprofiler_buffer_tracing_scratch_memory_record_t>* scratch_memory_deque,
std::deque<rocprofiler_buffer_tracing_rccl_api_record_t>* rccl_api_deque)
{
using JSONOutputArchive = cereal::MinimalJSONOutputArchive;
@@ -171,6 +172,7 @@ write_json(tool_table* tool
json_ar(cereal::make_nvp("hip_api", *hip_api_deque));
json_ar(cereal::make_nvp("hsa_api", *hsa_api_deque));
json_ar(cereal::make_nvp("marker_api", *marker_api_deque));
json_ar(cereal::make_nvp("rccl_api", *rccl_api_deque));
json_ar(cereal::make_nvp("memory_copy", *memory_copy_deque));
json_ar(cereal::make_nvp("scratch_memory", *scratch_memory_deque));
json_ar.finishNode();