Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/controller/src/rocprofvis_controller_analysis.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -505,7 +505,7 @@ rocprofvis_result_t Analysis::EventsTable::UnpackArguments(Arguments& args, Tabl
result = args.GetUInt64(kRPVControllerTableArgsSortOrder, 0, &sort_order);
sys_out->m_sort_column = sort_column_index;
sys_out->m_sort_order = (rocprofvis_controller_sort_order_t)sort_order;
sys_out->m_where = "";
sys_out->m_processor = nullptr;
sys_out->m_filter = "__op = " + std::to_string(m_op);
sys_out->m_group = (m_op == kRocProfVisDmOperationLaunchSample) ? "name, COUNT(*) AS Invocations, SUM(duration) AS DurationTotal" :
"name, COUNT(*) AS Invocations, SUM(duration) AS DurationTotal, AVG(duration) AS DurationAvg, MIN(duration) AS DurationMin, MAX(duration) AS DurationMax";
Expand Down
9 changes: 5 additions & 4 deletions src/controller/src/system/rocprofvis_controller_summary.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -509,21 +509,22 @@ rocprofvis_result_t Summary::FetchTopKernels(rocprofvis_dm_trace_t dm_handle, No
{
rocprofvis_dm_result_t dm_result = kRocProfVisDmResultUnknownError;
uint32_t op[1] = { TABLE_QUERY_PACK_OP_TYPE(kRocProfVisDmOperationDispatch) };
std::string where_str;
rocprofvis_dm_processor_identifiers_t processor_id;
if(node)
{
uint64_t node_id = 0;
result = node->GetUInt64(kRPVControllerNodeId, 0, &node_id);
if(result == kRocProfVisResultSuccess)
{
where_str = "nodeId = " + std::to_string(node_id);
processor_id.node_id = &node_id;
if(processor)
{
uint64_t agent_id = 0;
result = processor->GetUInt64(kRPVControllerProcessorId, 0, &agent_id);
agent_id &= TOPOLOGY_ID_MASK;
if(result == kRocProfVisResultSuccess)
{
where_str += " AND agentId = " + std::to_string(agent_id & TOPOLOGY_ID_MASK);
processor_id.agent_id = &agent_id;
}
}
}
Expand All @@ -534,7 +535,7 @@ rocprofvis_result_t Summary::FetchTopKernels(rocprofvis_dm_trace_t dm_handle, No
dm_result = rocprofvis_db_build_table_query(db, kRPVDMTableUseCaseEventTrackTable,
static_cast<rocprofvis_dm_timestamp_t>(m_start_ts), static_cast<rocprofvis_dm_timestamp_t>(m_end_ts),
1, (rocprofvis_db_track_selection_t)op,
where_str.empty() ? nullptr : where_str.c_str(), nullptr,
&processor_id, nullptr,
"name, COUNT(*) AS num_invocations, AVG(duration) AS avg_duration, MIN(duration) AS min_duration, MAX(duration) AS max_duration, SUM(duration) AS total_duration", "name",
sort_column.c_str(), kRPVDMSortOrderDesc,
0, 0, false, &query);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -468,7 +468,6 @@ SystemTable::UnpackArguments(Arguments& args, TableArguments*& out) const
uint64_t num_op_types = 0;
double end_ts = 0;
double start_ts = 0;
std::string where;
std::string filter;
std::string group;
std::string group_cols;
Expand Down Expand Up @@ -570,16 +569,6 @@ SystemTable::UnpackArguments(Arguments& args, TableArguments*& out) const
}
}

if(result == kRocProfVisResultSuccess)
{
uint32_t length = 0;
result = args.GetString(kRPVControllerTableArgsWhere, 0, nullptr, &length);
if(result == kRocProfVisResultSuccess)
{
where.resize(length);
result = args.GetString(kRPVControllerTableArgsWhere, 0, where.data(), &length);
}
}
if(result == kRocProfVisResultSuccess)
{
uint32_t length = 0;
Expand Down Expand Up @@ -612,7 +601,6 @@ SystemTable::UnpackArguments(Arguments& args, TableArguments*& out) const
}
if(result == kRocProfVisResultSuccess)
{
sys_out->m_where = std::move(where);
sys_out->m_filter = std::move(filter);
sys_out->m_group = std::move(group);
sys_out->m_group_cols = std::move(group_cols);
Expand All @@ -634,7 +622,6 @@ SystemTable::GetCurrentArguments(TableArguments*& out) const
}
SystemTableArguments* sys_out = (SystemTableArguments*)out;
Table::GetCurrentArguments(out);
sys_out->m_where = m_where;
sys_out->m_filter = m_filter;
sys_out->m_group = m_group;
sys_out->m_group_cols = m_group_cols;
Expand All @@ -649,7 +636,6 @@ SystemTable::SetCurrentArguments(TableArguments& in)
{
SystemTableArguments& sys_in = (SystemTableArguments&)in;
Table::SetCurrentArguments(sys_in);
m_where = sys_in.m_where;
m_filter = sys_in.m_filter;
m_group = sys_in.m_group;
m_group_cols = sys_in.m_group_cols;
Expand All @@ -664,7 +650,7 @@ SystemTable::ArgumentsChanged(SystemTableArguments& in) const
{
bool result = true;
if(m_tracks.size() == in.m_tracks.size() && m_start_ts == in.m_start_ts &&
m_end_ts == in.m_end_ts && m_where == in.m_where && m_filter == in.m_filter &&
m_end_ts == in.m_end_ts && m_filter == in.m_filter &&
m_group == in.m_group && m_group_cols == in.m_group_cols &&
m_use_case == in.m_use_case)
{
Expand Down Expand Up @@ -728,7 +714,7 @@ SystemTable::BuildQuery(rocprofvis_dm_database_t db, TableArguments& args, uint6
result = rocprofvis_db_build_table_query(db, arguments.m_use_case,
static_cast<rocprofvis_dm_timestamp_t>(arguments.m_start_ts), static_cast<rocprofvis_dm_timestamp_t>(arguments.m_end_ts),
static_cast<rocprofvis_db_num_of_tracks_t>(arguments.m_tracks.size()), arguments.m_tracks.data(),
arguments.m_where.c_str(), arguments.m_filter.c_str(),
nullptr, arguments.m_filter.c_str(),
arguments.m_group.c_str(), arguments.m_group_cols.c_str(),
sort_column, (rocprofvis_dm_sort_order_t)arguments.m_sort_order,
count_only ? 0 : count, count_only ? 0 : index, count_only, out);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class SystemTable : public Table
protected:
struct SystemTableArguments : TableArguments
{
std::string m_where;
rocprofvis_dm_processor_identifiers_ptr m_processor;
std::string m_filter;
std::string m_group;
std::string m_group_cols;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ EventSearchTable::BuildQuery(rocprofvis_dm_database_t db, TableArguments& args,
result = rocprofvis_db_build_event_search_query(db,
static_cast<rocprofvis_dm_timestamp_t>(arguments.m_start_ts), static_cast<rocprofvis_dm_timestamp_t>(arguments.m_end_ts),
static_cast<rocprofvis_db_num_of_tracks_t>(arguments.m_tracks.size()), arguments.m_tracks.data(),
arguments.m_where.c_str(),
nullptr,
static_cast<rocprofvis_dm_num_string_table_filters_t>(string_table_filters_ptr.size()), string_table_filters_ptr.data(),
arguments.m_include_substrings, arguments.m_include_category, arguments.m_partial_matching,
sort_column, (rocprofvis_dm_sort_order_t)arguments.m_sort_order,
Expand Down
40 changes: 38 additions & 2 deletions src/model/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@ project(datamodel VERSION 0.1.0 LANGUAGES C CXX)

set(CMAKE_CXX_STANDARD 17)

add_subdirectory(../../thirdparty/sqlite3 thirdparty/sqlite3)

include_directories(inc ${CMAKE_CURRENT_SOURCE_DIR}/src/common ${CMAKE_CURRENT_SOURCE_DIR}/src/database ${CMAKE_CURRENT_SOURCE_DIR}/src/datamodel ${CMAKE_CURRENT_SOURCE_DIR}/../controller/inc)

set(CPACK_PROJECT_NAME ${PROJECT_NAME})
Expand Down Expand Up @@ -39,12 +37,26 @@ set(WRAPPER_SOURCE
${CMAKE_CURRENT_SOURCE_DIR}/src/database/rocprofvis_db_trace_processor_dll.cpp)
list(REMOVE_ITEM DATABASE_SRC ${WRAPPER_SOURCE})

if(NOT PROFILER_HUB_BUILD_ROC_OPTIQ_IFACE_LIB)
message(STATUS "Profiler-hub disabled")
add_subdirectory(../../thirdparty/sqlite3 thirdparty/sqlite3)
set(PROFILER_HUB_IFACE_SRC
${CMAKE_CURRENT_SOURCE_DIR}/src/database/profiler_hub_lib_interface.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/database/rocprofvis_db_profiler_hub.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/database/rocprofvis_db_profiler_hub_client.cpp)
list(REMOVE_ITEM DATABASE_SRC ${PROFILER_HUB_IFACE_SRC})
else()
message(STATUS "Profiler-hub enabled")
add_definitions(-DUSE_PROFILER_HUB)
endif()

add_library(${PROJECT_NAME} ${DATAMODEL_SRC} ${DATABASE_SRC} ${COMMON_SRC} )
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../core/inc)
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/jsoncpp)
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/perfetto/trace_processor/include)
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/perfetto/trace_processor/gen/build_config)


# Only needed on Windows when Perfetto is available
if(WIN32 AND PERFETTO_AVAILABLE)
set_source_files_properties(
Expand All @@ -55,7 +67,14 @@ if(WIN32 AND PERFETTO_AVAILABLE)
endif()

target_link_libraries(${PROJECT_NAME} roc-optiq-core)
if(PROFILER_HUB_BUILD_ROC_OPTIQ_IFACE_LIB)
target_link_libraries(${PROJECT_NAME} profiler-hub)
target_link_libraries(${PROJECT_NAME} optiq_interface)
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/profiler-hub-client/optiq)
get_target_property(SQLITE3_INCLUDE_DIR profiler-hub-sqlite3-static INCLUDE_DIRECTORIES)
else()
target_link_libraries(${PROJECT_NAME} sqlite3)
endif()
target_link_libraries(${PROJECT_NAME} spdlog)
target_link_libraries(${PROJECT_NAME} yaml-cpp)
target_link_libraries(${PROJECT_NAME} json)
Expand Down Expand Up @@ -110,6 +129,23 @@ if(BUILD_TESTING)
add_test(NAME ${SYSTEM_TEST_NAME}-DB COMMAND ${SYSTEM_TEST_NAME} --input_file "${CMAKE_SOURCE_DIR}/sample/rocpd-transpose.db")
set_tests_properties(${SYSTEM_TEST_NAME}-DB PROPERTIES RUN_SERIAL ON)
set_tests_properties(${SYSTEM_TEST_NAME}-DB PROPERTIES WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}")

if(PROFILER_HUB_BUILD_ROC_OPTIQ_IFACE_LIB)
add_executable(${PROFILER_HUB_TEST_NAME} src/tests/rocprofvis_dm_profiler_hub_tests.cpp)
target_include_directories(${PROFILER_HUB_TEST_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../core/inc)
target_include_directories(${PROFILER_HUB_TEST_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/jsoncpp)
target_include_directories(${PROFILER_HUB_TEST_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/profiler-hub-client/optiq)
target_link_libraries(${PROFILER_HUB_TEST_NAME} PRIVATE ${PROJECT_NAME})
target_link_libraries(${PROFILER_HUB_TEST_NAME} PRIVATE Catch2::Catch2WithMain)
target_link_libraries(${PROFILER_HUB_TEST_NAME} PRIVATE roc-optiq-core)
target_link_libraries(${PROFILER_HUB_TEST_NAME} PRIVATE spdlog)
target_link_libraries(${PROFILER_HUB_TEST_NAME} PRIVATE optiq_interface)
target_link_libraries(${PROFILER_HUB_TEST_NAME} PRIVATE json)
add_test(NAME ${PROFILER_HUB_TEST_NAME}-DB COMMAND ${SYSTEM_TEST_NAME} --input_file "${CMAKE_SOURCE_DIR}/sample/rocpd-transpose.db")
set_tests_properties(${PROFILER_HUB_TEST_NAME}-DB PROPERTIES RUN_SERIAL ON)
set_tests_properties(${PROFILER_HUB_TEST_NAME}-DB PROPERTIES WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}")
endif()

add_executable(${COMPUTE_TEST_NAME} src/tests/rocprofvis_dm_compute_tests.cpp)
target_include_directories(${COMPUTE_TEST_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../core/inc)
target_include_directories(${COMPUTE_TEST_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/jsoncpp)
Expand Down
4 changes: 2 additions & 2 deletions src/model/inc/rocprofvis_interface.h
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ rocprofvis_dm_result_t rocprofvis_db_build_table_query(
rocprofvis_dm_timestamp_t end,
rocprofvis_db_num_of_tracks_t num,
rocprofvis_db_track_selection_t tracks,
rocprofvis_dm_charptr_t where,
rocprofvis_dm_processor_identifiers_ptr processor,
rocprofvis_dm_charptr_t filter,
rocprofvis_dm_charptr_t group,
rocprofvis_dm_charptr_t group_cols,
Expand All @@ -212,7 +212,7 @@ rocprofvis_dm_result_t rocprofvis_db_build_event_search_query(
rocprofvis_dm_timestamp_t end,
rocprofvis_db_num_of_tracks_t num,
rocprofvis_db_track_selection_t ops,
rocprofvis_dm_charptr_t where,
rocprofvis_dm_processor_identifiers_ptr processor,
rocprofvis_dm_num_string_table_filters_t num_string_table_filters,
rocprofvis_dm_string_table_filters_t string_table_filters,
bool include_substring,
Expand Down
24 changes: 16 additions & 8 deletions src/model/inc/rocprofvis_interface_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -136,19 +136,21 @@ typedef enum rocprofvis_dm_event_operation_t {
// Database type
typedef enum rocprofvis_db_type_t {
// input file auto-detection
kAutodetect = 0,
kAutodetect,
// supported by profiler hub
kProfilerHub ,
// old schema Rocpd database
kRocpdSqlite = 1,
kRocpdSqlite ,
// new schema Rocprof database
kRocprofSqlite = 2,
kRocprofSqlite,
// new schema Rocprof multinode database
kRocprofMultinodeSqlite = 3,
kRocprofMultinodeSqlite,
// compute database
kComputeSqlite = 4,
kComputeSqlite,
// chrom trace or perfetto
kChromeTrace = 5,
kPerfettoTrace = 6,
kGoogleSqlite = 7
kChromeTrace,
kPerfettoTrace,
kGoogleSqlite

} rocprofvis_db_type_t;

Expand Down Expand Up @@ -430,6 +432,12 @@ typedef enum rocprofvis_dm_sort_order_t {
kRPVDMSortOrderDesc,
} rocprofvis_dm_sort_order_t;

typedef struct rocprofvis_dm_processor_identifiers_t
{
uint64_t* node_id;
uint64_t* agent_id;
} rocprofvis_dm_processor_identifiers_t, * rocprofvis_dm_processor_identifiers_ptr;

// Tags for hrocprofvis_dm_hashed_timestamp
typedef enum rocprofvis_dm_hashed_timestamp_tag_t
{
Expand Down
2 changes: 1 addition & 1 deletion src/model/inc/rocprofvis_shared_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ typedef enum rocprofvis_controller_process_properties_t : uint32_t
typedef enum rocprofvis_controller_topology_node_properties_t : uint32_t
{
__kRPVControllerTopologyNodePropertiesFirst = 0xF6000000,
kRPVControllerTopologyNodeTrackId = __kRPVControllerProcessPropertiesFirst,
kRPVControllerTopologyNodeTrackId = __kRPVControllerNodePropertiesFirst,
kRPVControllerTopologyNodeType,
kRPVControllerTopologyNodeName,
kRPVControllerTopologyNodeTrack,
Expand Down
Loading