SWDEV-527202: Moving ATT to experimental (#335)

* Moving ATT to experimental

* Formatting + rebase

* Addressing review comments

* Formatting

* Update source/lib/att-tool/waitcnt/analysis.cpp

---------

Co-authored-by: Giovanni Baraldi <gbaraldi@amd.com>
Co-authored-by: Madsen, Jonathan <Jonathan.Madsen@amd.com>

[ROCm/rocprofiler-sdk commit: 46818b0167]
Этот коммит содержится в:
Baraldi, Giovanni
2025-04-17 21:43:15 +02:00
коммит произвёл GitHub
родитель 63319faae4
Коммит 3fc9374295
58 изменённых файлов: 62 добавлений и 117 удалений
-1
Просмотреть файл
@@ -54,6 +54,5 @@ add_subdirectory(rocdecode)
add_subdirectory(rocjpeg)
add_subdirectory(cxx)
add_subdirectory(kfd)
add_subdirectory(amd_detail)
add_subdirectory(experimental)
add_subdirectory(deprecated)
-12
Просмотреть файл
@@ -1,12 +0,0 @@
#
#
# Installation of amd_detail headers
#
#
set(ROCPROFILER_AMD_DETAIL_HEADER_FILES thread_trace.h thread_trace_core.h
thread_trace_dispatch.h thread_trace_agent.h)
install(
FILES ${ROCPROFILER_AMD_DETAIL_HEADER_FILES}
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/rocprofiler-sdk/amd_detail/
COMPONENT development)
+3 -1
Просмотреть файл
@@ -1,6 +1,8 @@
set(ROCPROFILER_EXPERIMENTAL_HEADER_FILES counters.h)
set(ROCPROFILER_EXPERIMENTAL_HEADER_FILES counters.h thread_trace.h)
install(
FILES ${ROCPROFILER_EXPERIMENTAL_HEADER_FILES}
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/rocprofiler-sdk/experimental
COMPONENT development)
add_subdirectory(thread-trace)
@@ -0,0 +1,6 @@
set(ROCPROFILER_EXPERIMENTAL_THREAD_TRACE_HEADER_FILES core.h agent.h dispatch.h)
install(
FILES ${ROCPROFILER_EXPERIMENTAL_THREAD_TRACE_HEADER_FILES}
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/rocprofiler-sdk/experimental/thread-trace
COMPONENT development)
@@ -23,8 +23,8 @@
#pragma once
#include <rocprofiler-sdk/agent.h>
#include <rocprofiler-sdk/amd_detail/thread_trace_core.h>
#include <rocprofiler-sdk/defines.h>
#include <rocprofiler-sdk/experimental/thread-trace/core.h>
#include <rocprofiler-sdk/fwd.h>
#include <rocprofiler-sdk/hsa.h>
@@ -23,8 +23,8 @@
#pragma once
#include <rocprofiler-sdk/agent.h>
#include <rocprofiler-sdk/amd_detail/thread_trace_core.h>
#include <rocprofiler-sdk/defines.h>
#include <rocprofiler-sdk/experimental/thread-trace/core.h>
#include <rocprofiler-sdk/fwd.h>
#include <rocprofiler-sdk/hsa.h>
@@ -22,6 +22,6 @@
#pragma once
#include <rocprofiler-sdk/amd_detail/thread_trace_agent.h>
#include <rocprofiler-sdk/amd_detail/thread_trace_core.h>
#include <rocprofiler-sdk/amd_detail/thread_trace_dispatch.h>
#include <rocprofiler-sdk/experimental/thread-trace/agent.h>
#include <rocprofiler-sdk/experimental/thread-trace/core.h>
#include <rocprofiler-sdk/experimental/thread-trace/dispatch.h>
+1 -2
Просмотреть файл
@@ -7,9 +7,8 @@ add_subdirectory(output)
add_subdirectory(rocprofiler-sdk)
set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "tools")
add_subdirectory(rocprofiler-sdk-codeobj)
add_subdirectory(att-tool)
add_subdirectory(rocprofiler-sdk-roctx)
add_subdirectory(rocprofiler-sdk-att)
add_subdirectory(rocprofiler-sdk-tool)
if(ROCPROFILER_BUILD_TESTS)
@@ -22,12 +22,12 @@ target_sources(rocprofiler-sdk-att-parser PRIVATE ${ATT_TOOL_SOURCE_FILES})
target_link_libraries(
rocprofiler-sdk-att-parser
PRIVATE rocprofiler-sdk::rocprofiler-sdk-codeobj
rocprofiler-sdk::rocprofiler-sdk-headers
PRIVATE rocprofiler-sdk::rocprofiler-sdk-headers
rocprofiler-sdk::rocprofiler-sdk-json
rocprofiler-sdk::rocprofiler-sdk-common-library
rocprofiler-sdk::rocprofiler-sdk-amd-comgr
rocprofiler-sdk::rocprofiler-sdk-dw)
rocprofiler-sdk::rocprofiler-sdk-dw
rocprofiler-sdk::rocprofiler-sdk-elf)
add_subdirectory(waitcnt)
@@ -22,8 +22,8 @@
#pragma once
#include "lib/att-tool/util.hpp"
#include "lib/common/filesystem.hpp"
#include "lib/rocprofiler-sdk-att/util.hpp"
#include <algorithm>
#include <fstream>
@@ -20,7 +20,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
#include "lib/rocprofiler-sdk-att/dl.hpp"
#include "lib/att-tool/dl.hpp"
#include "lib/common/environment.hpp"
#include "lib/common/filesystem.hpp"
#include "lib/common/logging.hpp"
@@ -37,20 +37,6 @@ namespace att_wrapper
{
namespace
{
union occupancy_data_v1
{
struct
{
uint64_t kernel_id : 12;
uint64_t simd : 2;
uint64_t slot : 4;
uint64_t enable : 1;
uint64_t cu : 4;
uint64_t time : 41;
};
uint64_t raw;
};
std::map<pcinfo_t, int> kernel_ids{{pcinfo_t{0, 0}, 0}};
std::atomic<int> current_id{1};
@@ -61,19 +47,6 @@ get_kernel_id(pcinfo_t pc)
return kernel_ids.emplace(pc, current_id.fetch_add(1)).first->second;
}
uint64_t
convert(const att_occupancy_info_v2_t& v2)
{
occupancy_data_v1 v1{};
v1.time = v2.time / OCCUPANCY_RES;
v1.simd = v2.simd;
v1.slot = v2.slot;
v1.enable = v2.start;
v1.cu = v2.cu;
v1.kernel_id = get_kernel_id(v2.pc);
return v1.raw;
}
} // namespace
namespace OccupancyFile
@@ -90,7 +63,16 @@ OccupancyFile(const Fspath& dir,
{
nlohmann::json list;
for(const auto& event : eventlist)
list.push_back(convert(event));
{
nlohmann::json json_event;
json_event.push_back(event.time);
json_event.push_back(event.cu);
json_event.push_back(event.simd);
json_event.push_back(event.slot);
json_event.push_back(event.start);
json_event.push_back(get_kernel_id(event.pc));
list.push_back(json_event);
}
jocc[std::to_string(se)] = list;
}
@@ -107,6 +89,8 @@ OccupancyFile(const Fspath& dir,
jocc["dispatches"][std::to_string(id)] = ss.str();
}
jocc["version"] = "3.0.0";
OutputFile(dir / "occupancy.json") << jocc;
}
} // namespace OccupancyFile
@@ -24,8 +24,8 @@
#pragma once
#include "lib/att-tool/att_lib_wrapper.hpp"
#include "lib/common/logging.hpp"
#include "lib/rocprofiler-sdk-att/att_lib_wrapper.hpp"
#include <fstream>
#include <iostream>
@@ -20,10 +20,10 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
#include "lib/att-tool/att_lib_wrapper.hpp"
#include "lib/att-tool/code.hpp"
#include "lib/att-tool/outputfile.hpp"
#include "lib/common/logging.hpp"
#include "lib/rocprofiler-sdk-att/att_lib_wrapper.hpp"
#include "lib/rocprofiler-sdk-att/code.hpp"
#include "lib/rocprofiler-sdk-att/outputfile.hpp"
#include "lib/rocprofiler-sdk/registration.hpp"
#include <gtest/gtest.h>
@@ -20,9 +20,9 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
#include "lib/att-tool/att_lib_wrapper.hpp"
#include "lib/att-tool/outputfile.hpp"
#include "lib/common/logging.hpp"
#include "lib/rocprofiler-sdk-att/att_lib_wrapper.hpp"
#include "lib/rocprofiler-sdk-att/outputfile.hpp"
#include "lib/rocprofiler-sdk/registration.hpp"
#include <iostream>
@@ -118,9 +118,9 @@ main(int argc, char** argv)
std::vector<Fspath> att_files{};
std::vector<rocprofiler::att_wrapper::CodeobjLoadInfo> codeobj_files{};
std::map<size_t, std::string> snapshot_files{};
std::vector<std::string> snapshot_files{};
for(auto elem : sdk_json["strings"]["code_object_snapshot_filenames"])
snapshot_files[elem["key"]] = elem["value"];
snapshot_files.push_back(elem);
for(auto& codeobj : sdk_json["code_objects"])
if(!std::string{codeobj["uri"]}.empty())
@@ -20,7 +20,8 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
#include "lib/rocprofiler-sdk-att/waitcnt/analysis.hpp"
#include "lib/att-tool/waitcnt/analysis.hpp"
#include <map>
namespace rocprofiler
@@ -22,9 +22,9 @@
#pragma once
#include "lib/rocprofiler-sdk-att/att_decoder.h"
#include "lib/rocprofiler-sdk-att/att_lib_wrapper.hpp"
#include "lib/rocprofiler-sdk-att/code.hpp"
#include "lib/att-tool/att_decoder.h"
#include "lib/att-tool/att_lib_wrapper.hpp"
#include "lib/att-tool/code.hpp"
#include <atomic>
#include <map>
@@ -20,7 +20,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
#include "lib/rocprofiler-sdk-att/waitcnt/analysis.hpp"
#include "lib/att-tool/waitcnt/analysis.hpp"
#include <map>
#include <mutex>
@@ -20,7 +20,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
#include "lib/rocprofiler-sdk-att/waitcnt/analysis.hpp"
#include "lib/att-tool/waitcnt/analysis.hpp"
#include <map>
#include <mutex>
@@ -20,7 +20,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
#include "lib/rocprofiler-sdk-att/waitcnt/analysis.hpp"
#include "lib/att-tool/waitcnt/analysis.hpp"
#include <map>
#include <mutex>
@@ -20,8 +20,8 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
#include "lib/att-tool/waitcnt/analysis.hpp"
#include "lib/common/logging.hpp"
#include "lib/rocprofiler-sdk-att/waitcnt/analysis.hpp"
#include "lib/rocprofiler-sdk/registration.hpp"
#include <gtest/gtest.h>
+1 -1
Просмотреть файл
@@ -22,13 +22,13 @@
#include "metadata.hpp"
#include "lib/att-tool/att_lib_wrapper.hpp"
#include "lib/common/filesystem.hpp"
#include "lib/common/logging.hpp"
#include "lib/common/string_entry.hpp"
#include "lib/output/agent_info.hpp"
#include "lib/output/host_symbol_info.hpp"
#include "lib/output/kernel_symbol_info.hpp"
#include "lib/rocprofiler-sdk-att/att_lib_wrapper.hpp"
#include <rocprofiler-sdk/fwd.h>
#include <rocprofiler-sdk/rocprofiler.h>
+1 -1
Просмотреть файл
@@ -28,11 +28,11 @@
#include "kernel_symbol_info.hpp"
#include "pc_sample_transform.hpp"
#include "lib/att-tool/att_lib_wrapper.hpp"
#include "lib/common/container/small_vector.hpp"
#include "lib/common/demangle.hpp"
#include "lib/common/logging.hpp"
#include "lib/common/synchronized.hpp"
#include "lib/rocprofiler-sdk-att/att_lib_wrapper.hpp"
#include <rocprofiler-sdk/agent.h>
#include <rocprofiler-sdk/buffer_tracing.h>
-36
Просмотреть файл
@@ -1,36 +0,0 @@
# ##############################################################################
# # Copyright (c) 2024-2025 Advanced Micro Devices, Inc. # # Permission is hereby
# granted, free of charge, to any person obtaining a copy # of this software and
# associated documentation files (the "Software"), to # deal in the Software
# without restriction, including without limitation the # rights to use, copy,
# modify, merge, publish, distribute, sublicense, and/or # sell copies of the
# Software, and to permit persons to whom the Software is # furnished to do so,
# subject to the following conditions: # # The above copyright notice and this
# permission notice shall be included in # all copies or substantial portions of
# the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
# KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
# EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
# DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
# OTHERWISE, ARISING # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
# USE OR OTHER DEALINGS # IN THE SOFTWARE.
# ##############################################################################
set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "development")
add_library(rocprofiler-sdk-codeobj INTERFACE)
add_library(rocprofiler-sdk::rocprofiler-sdk-codeobj ALIAS rocprofiler-sdk-codeobj)
target_include_directories(
rocprofiler-sdk-codeobj
INTERFACE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/source/include>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
target_link_libraries(
rocprofiler-sdk-codeobj
INTERFACE rocprofiler-sdk::rocprofiler-sdk-amd-comgr
rocprofiler-sdk::rocprofiler-sdk-dw rocprofiler-sdk::rocprofiler-sdk-elf)
if(ROCPROFILER_BUILD_TESTS)
add_subdirectory(tests)
endif()
+1 -1
Просмотреть файл
@@ -23,13 +23,13 @@
#pragma once
#include "lib/att-tool/att_lib_wrapper.hpp"
#include "lib/common/environment.hpp"
#include "lib/common/filesystem.hpp"
#include "lib/common/mpl.hpp"
#include "lib/common/units.hpp"
#include "lib/output/format_path.hpp"
#include "lib/output/output_config.hpp"
#include "lib/rocprofiler-sdk-att/att_lib_wrapper.hpp"
#include <rocprofiler-sdk/cxx/serialization.hpp>
+2 -3
Просмотреть файл
@@ -24,6 +24,7 @@
#include "helper.hpp"
#include "stream_stack.hpp"
#include "lib/att-tool/att_lib_wrapper.hpp"
#include "lib/common/environment.hpp"
#include "lib/common/filesystem.hpp"
#include "lib/common/logging.hpp"
@@ -48,14 +49,12 @@
#include "lib/output/stream_info.hpp"
#include "lib/output/tmp_file.hpp"
#include "lib/output/tmp_file_buffer.hpp"
#include "lib/rocprofiler-sdk-att/att_lib_wrapper.hpp"
#include <rocprofiler-sdk/agent.h>
#include <rocprofiler-sdk/amd_detail/thread_trace_core.h>
#include <rocprofiler-sdk/amd_detail/thread_trace_dispatch.h>
#include <rocprofiler-sdk/buffer_tracing.h>
#include <rocprofiler-sdk/callback_tracing.h>
#include <rocprofiler-sdk/experimental/counters.h>
#include <rocprofiler-sdk/experimental/thread_trace.h>
#include <rocprofiler-sdk/external_correlation.h>
#include <rocprofiler-sdk/fwd.h>
#include <rocprofiler-sdk/internal_threading.h>
+1 -1
Просмотреть файл
@@ -29,7 +29,7 @@
#include "lib/rocprofiler-sdk/hsa/queue_info_session.hpp"
#include "lib/rocprofiler-sdk/thread_trace/code_object.hpp"
#include <rocprofiler-sdk/amd_detail/thread_trace.h>
#include <rocprofiler-sdk/experimental/thread_trace.h>
#include <rocprofiler-sdk/intercept_table.h>
#include <rocprofiler-sdk/cxx/hash.hpp>
#include <rocprofiler-sdk/cxx/operators.hpp>
+1 -1
Просмотреть файл
@@ -25,7 +25,7 @@
#include "lib/rocprofiler-sdk/hsa/agent_cache.hpp"
#include "lib/rocprofiler-sdk/registration.hpp"
#include <rocprofiler-sdk/amd_detail/thread_trace.h>
#include <rocprofiler-sdk/experimental/thread_trace.h>
#include <glog/logging.h>
+1
Просмотреть файл
@@ -3,3 +3,4 @@
#
add_subdirectory(buffering)
add_subdirectory(common)
add_subdirectory(codeobj)
@@ -15,7 +15,9 @@ target_link_libraries(
rocprofiler-sdk::rocprofiler-sdk-common-library
GTest::gtest
GTest::gtest_main
rocprofiler-sdk::rocprofiler-sdk-codeobj)
rocprofiler-sdk::rocprofiler-sdk-amd-comgr
rocprofiler-sdk::rocprofiler-sdk-dw
rocprofiler-sdk::rocprofiler-sdk-elf)
gtest_add_tests(
TARGET codeobj-library-test
@@ -29,7 +29,7 @@
#ifndef CODEOBJ_BINARY_DIR
static_assert(false && "Please define CODEOBJ_BINARY_DIR to codeobj tests binary, "
"e.g. ../source/lib/rocprofiler-sdk-codeobj/tests/");
"e.g. ../source/lib/tests/codeobj/");
#endif
namespace rocprofiler
+1 -1
Просмотреть файл
@@ -22,9 +22,9 @@
#pragma once
#include <rocprofiler-sdk/amd_detail/thread_trace.h>
#include <rocprofiler-sdk/buffer.h>
#include <rocprofiler-sdk/callback_tracing.h>
#include <rocprofiler-sdk/experimental/thread_trace.h>
#include <rocprofiler-sdk/fwd.h>
#include <rocprofiler-sdk/registration.h>
#include <rocprofiler-sdk/rocprofiler.h>