c641749fe6
* Update include/rocprofiler-sdk/hip*
- updates for intercept table
* Update lib/common/units.hpp
- clang-tidy fixes
* Add lib/rocprofiler-sdk/hip
- tracing implementation for the HIP intercept table
* Update source/lib/rocprofiler-sdk/CMakeLists.txt
- add_subdirectory(hip)
* Update source/lib/rocprofiler-sdk/hsa
- offset function in hsa_api_info<Idx>
- remove report_activity, set_callback
- Tweak HSA_API_TABLE_LOOKUP_DEFINITION
* Update lib/rocprofiler-sdk/hip
- rocprofiler::hip::copy_table
- stringize_impl print dereferenced pointers when possible
* Update lib/rocprofiler-sdk/hsa/utils.hpp
- stringize_impl print dereferenced pointers when possible
* Update lib/rocprofiler-sdk/tests/intercept_table.cpp
- remove failures for intercepting HIP API tables
* Update include/rocprofiler-sdk/fwd.h
- add ROCPROFILER_HIP_RUNTIME_LIBRARY (== ROCPROFILER_HIP_LIBRARY)
- add ROCPROFILER_HIP_COMPILER_LIBRARY
* Update lib/rocprofiler-sdk/buffer_tracing.cpp
- Support ROCPROFILER_BUFFER_TRACING_HIP_API in rocprofiler_query_buffer_tracing_kind_operation_name
- Support ROCPROFILER_BUFFER_TRACING_HIP_API in rocprofiler_iterate_buffer_tracing_kind_operations
* Update lib/rocprofiler-sdk/callback_tracing.cpp
- Support ROCPROFILER_CALLBACK_TRACING_HIP_API in rocprofiler_query_callback_tracing_kind_operation_name
- Support ROCPROFILER_CALLBACK_TRACING_HIP_API in rocprofiler_iterate_callback_tracing_kind_operations
- Support ROCPROFILER_CALLBACK_TRACING_HIP_API in rocprofiler_iterate_callback_tracing_kind_operation_args
* Update lib/rocprofiler-sdk/intercept_table.cpp
- support HipDispatchTable and HipCompilerDispatchTable
* Update lib/rocprofiler-sdk/internal_threading.cpp
- Support ROCPROFILER_HIP_COMPILER_LIBRARY
* Update lib/rocprofiler-sdk/registration.cpp
- Support "hip" and "hip_compiler" in rocprofiler_set_api_table
- Added some extra logging
* Update samples/api_{buffered,callback}_tracing
- Modifications to demonstrate HIP API tracing
* Update tests/kernel-tracing
- Modifications to handle/test HIP API tracing
* Separate HIP tracing from HIP compiler tracing
* Fix installation of include/rocprofiler-sdk/hip/*
- add compiler and table headers to install
* Fixes to HIP interception
- hip_api_trace.hpp was updated a bit
- removed hipGetDeviceProperties (generic)
- added hipGetDevicePropertiesR0600
- added hipGetDevicePropertiesR0000
- removed hipRegisterTracerCallback
- reordered hipCreateChannelDesc, hipExtModuleLaunchKernel, hipHccModuleLaunchKernel
- added hipDrvGraphAddMemsetNode
- static asserts in hsa_api_info ensuring ordering of pointers
* Update lib/rocprofiler-sdk/hip/hip.*
- use size_t instead of rocprofiler_hip_table_api_id_t as non-type template parameter (smaller binary)
- separated out population of callback_context_data and buffered_context_data into non-template function (significantly smaller binary)
* Update lib/rocprofiler-sdk/hsa/hsa.*
- separated out population of callback_context_data and buffered_context_data into non-template function (significantly smaller binary)
* Update test/kernel-tracing/validate.py
- does not expect any hip_api_traces until libamdhip.so actually starts using rocprofiler-register
* Update tests/tools/json-tool.cpp
- fix context associated with "HIP_API_CALLBACK"
* Update external/CMakeLists.txt
- move misc variables to top of CMakeLists.txt so they apply to all external subprojects
- BUILD_TESTING (OFF)
- BUILD_SHARED_LIBS (OFF)
- BUILD_OBJECT_LIBS (OFF)
- BUILD_STATIC_LIBS (ON)
- CMAKE_POSITION_INDEPENDENT_CODE (ON)
- CMAKE_VISIBILITY_INLINES_HIDDEN (ON)
- CMAKE_CXX_VISIBILITY_PRESET (hidden)
- disable using libunwind in glog
* Update lib/rocprofiler-{sdk,sdk-tool}/CMakeLists.txt
- remove explicit setting of SKIP_BUILD_RPATH
* Update CMakeLists.txt
- set high-level CMAKE_BUILD_RPATH and CMAKE_INSTALL_RPATH_USE_LINK_PATH
* Update tests/CMakeLists.txt
- include(GNUInstallDirs)
* Update samples/CMakeLists.txt
- include(GNUInstallDirs)
* Update include/rocprofiler-sdk/hip/{compiler_api,api}_args.h
- remove extern "C" due to incompatibility b/t empty struct in C (size 0) vs. empty struct in C++ (size 1)
* Update lib/rocprofiler-sdk/hip/details/ostream.hpp
- clang-tidy fixes
* Update cmake/rocprofiler_linting.cmake
- add a feature for clang tidy exe
* Update lib/rocprofiler-sdk/hip/hip.cpp
- use recursion instead of fold expression due to clang-tidy errors (maximum nesting level exceeded)
* Update lib/rocprofiler-sdk/buffer_tracing.cpp
- fix merge
* Update lib/rocprofiler-sdk/callback_tracing.cpp
- fix merge
* Update bin/rocprofv3
- args for marker, HIP runtime, and HIP compiler tracing
* Update tests/apps/simple-transpose
- use roctx
* Update tests/rocprofv3/tracing
- validate marker API data
* Update lib/rocprofiler-sdk-tool
- support for HIP runtime, HIP compiler, marker API
* Update queue/queue_controller/registration/utility
- call hsa::queue_controller_fini() during finalization
- add a yield function to common/utility.hpp
- implements a thread yield + sleep
- add a sync function to Queue class
- add a iterate_queues member function to QueueController
- this is used to sync each queue during queue_controller_fini()
* Fix data races: queue/context/stable_vector
- stable_vector::emplace_back returns reference
- correlation id map uses stable_vector
- queue_info_session has explicit fields for queue id, hsa agent, rocp agent
- use hsa::get_table() in AsyncSignalHandler
- WriteInterceptor does not use TLS for context array
* Update lib/rocprofiler-sdk/hsa/hsa.*
- static object for API subtables
- accessors for API subtables
- google tests for HSA API subtables
* Update lib/rocprofiler-sdk/hsa/{queue,async_copy}.cpp
- use HSA subtable accessors
* Update rocprofiler_memcheck and CI workflow
- use GCC 13 instead of GCC 11 due to suspected false positives in thread sanitizer
- GCC 13 uses libtsan.so.2
* Update CI workflow
* Update lib/rocprofiler-sdk/counters/{metrics,counters}
- fix possibly dangling reference to a temporary from gcc-13
* Update thread-sanitizer-suppr.txt
- Ignore data races originating in hsa-runtime library
* Update cmake/rocprofiler_memcheck.cmake
- Deduce the sanitizer library to preload by compiling an application and extracting the linked sanitizer library
* Update tests/rocprofv3/tracing/CMakeLists.txt
- add csv files to REQUIRED_FILES and ATTACH_ON_FAIL in validate test
* Update lib/common/container/record_header_buffer.hpp
- fix data race identified by gcc v13 and libtsan.so.2
* Update hip API id, args, and def
- remove hipDrvGraphAddMemsetNode (not part of ROCm 6.0
* Update lib/common/container/record_header_buffer.hpp
- fix deadlock in save/read/reset
* Update source/docs/CMakeLists.txt
- remove COMMAND_ERROR_IS_FATAL ANY to allow for printing of stdout/stderr
* Update lib/rocprofiler-sdk/hip/details/ostream.hpp
- remove overloads for HIP_MEMSET_NODE_PARAMS
* Update docs/CMakeLists.txt
- use find_program for shell instead of hardcoded /bin/bash
1787 regels
63 KiB
C++
1787 regels
63 KiB
C++
// MIT License
|
|
//
|
|
// Copyright (c) 2023 Advanced Micro Devices, Inc. All rights reserved.
|
|
//
|
|
// 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.
|
|
|
|
#pragma once
|
|
|
|
#include <rocprofiler-sdk/rocprofiler.h>
|
|
|
|
#include <iostream>
|
|
#include <string>
|
|
#include <string_view>
|
|
|
|
namespace rocprofiler
|
|
{
|
|
namespace hsa
|
|
{
|
|
namespace detail
|
|
{
|
|
static int HSA_depth_max = 1;
|
|
static thread_local int HSA_depth_max_cnt = 0;
|
|
static std::string_view HSA_structs_regex = {};
|
|
|
|
template <typename T>
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const T& v)
|
|
{
|
|
using std:: operator<<;
|
|
static thread_local bool recursion = false;
|
|
if(recursion == false)
|
|
{
|
|
recursion = true;
|
|
out << v;
|
|
recursion = false;
|
|
}
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const unsigned char& v)
|
|
{
|
|
out << (unsigned int) v;
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const char& v)
|
|
{
|
|
out << (unsigned char) v;
|
|
return out;
|
|
}
|
|
// End of basic ostream ops
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_dim3_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_dim3_t::z"}.find(HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "z=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.z);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_dim3_t::y"}.find(HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "y=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.y);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_dim3_t::x"}.find(HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "x=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.x);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_agent_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_agent_t::handle"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "handle=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.handle);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_cache_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_cache_t::handle"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "handle=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.handle);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_signal_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_signal_t::handle"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "handle=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.handle);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_signal_group_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_signal_group_t::handle"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "handle=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.handle);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_region_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_region_t::handle"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "handle=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.handle);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_queue_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_queue_t::id"}.find(HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "id=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.id);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_queue_t::reserved1"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "reserved1=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.reserved1);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_queue_t::size"}.find(HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "size=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.size);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_queue_t::doorbell_signal"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "doorbell_signal=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.doorbell_signal);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_queue_t::features"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "features=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.features);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_queue_t::type"}.find(HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "type=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.type);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_kernel_dispatch_packet_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_kernel_dispatch_packet_t::completion_signal"}.find(
|
|
HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "completion_signal=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.completion_signal);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_kernel_dispatch_packet_t::reserved2"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "reserved2=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.reserved2);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_kernel_dispatch_packet_t::kernel_object"}.find(
|
|
HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "kernel_object=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.kernel_object);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string("hsa_kernel_dispatch_packet_t::group_segment_size")
|
|
.find(HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "group_segment_size=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.group_segment_size);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string("hsa_kernel_dispatch_packet_t::private_segment_size")
|
|
.find(HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "private_segment_size=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.private_segment_size);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_kernel_dispatch_packet_t::grid_size_z"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "grid_size_z=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.grid_size_z);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_kernel_dispatch_packet_t::grid_size_y"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "grid_size_y=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.grid_size_y);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_kernel_dispatch_packet_t::grid_size_x"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "grid_size_x=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.grid_size_x);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_kernel_dispatch_packet_t::reserved0"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "reserved0=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.reserved0);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_kernel_dispatch_packet_t::workgroup_size_z"}.find(
|
|
HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "workgroup_size_z=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.workgroup_size_z);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_kernel_dispatch_packet_t::workgroup_size_y"}.find(
|
|
HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "workgroup_size_y=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.workgroup_size_y);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_kernel_dispatch_packet_t::workgroup_size_x"}.find(
|
|
HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "workgroup_size_x=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.workgroup_size_x);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_kernel_dispatch_packet_t::setup"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "setup=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.setup);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_kernel_dispatch_packet_t::header"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "header=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.header);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_agent_dispatch_packet_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_agent_dispatch_packet_t::completion_signal"}.find(
|
|
HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "completion_signal=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.completion_signal);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_agent_dispatch_packet_t::reserved2"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "reserved2=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.reserved2);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_agent_dispatch_packet_t::arg"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "arg=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.arg);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_agent_dispatch_packet_t::reserved0"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "reserved0=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.reserved0);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_agent_dispatch_packet_t::type"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "type=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.type);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_agent_dispatch_packet_t::header"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "header=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.header);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_barrier_and_packet_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_barrier_and_packet_t::completion_signal"}.find(
|
|
HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "completion_signal=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.completion_signal);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_barrier_and_packet_t::reserved2"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "reserved2=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.reserved2);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_barrier_and_packet_t::dep_signal"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "dep_signal=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.dep_signal);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_barrier_and_packet_t::reserved1"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "reserved1=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.reserved1);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_barrier_and_packet_t::reserved0"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "reserved0=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.reserved0);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_barrier_and_packet_t::header"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "header=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.header);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_barrier_or_packet_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_barrier_or_packet_t::completion_signal"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "completion_signal=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.completion_signal);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_barrier_or_packet_t::reserved2"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "reserved2=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.reserved2);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_barrier_or_packet_t::dep_signal"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "dep_signal=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.dep_signal);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_barrier_or_packet_t::reserved1"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "reserved1=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.reserved1);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_barrier_or_packet_t::reserved0"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "reserved0=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.reserved0);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_barrier_or_packet_t::header"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "header=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.header);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_isa_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_isa_t::handle"}.find(HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "handle=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.handle);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_wavefront_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_wavefront_t::handle"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "handle=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.handle);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_code_object_reader_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_code_object_reader_t::handle"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "handle=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.handle);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_executable_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_executable_t::handle"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "handle=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.handle);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_loaded_code_object_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_loaded_code_object_t::handle"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "handle=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.handle);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_executable_symbol_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_executable_symbol_t::handle"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "handle=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.handle);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_code_object_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_code_object_t::handle"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "handle=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.handle);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_callback_data_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_callback_data_t::handle"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "handle=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.handle);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_code_symbol_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_code_symbol_t::handle"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "handle=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.handle);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_ext_image_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_ext_image_t::handle"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "handle=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.handle);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_ext_image_format_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_ext_image_format_t::channel_order"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "channel_order=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.channel_order);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_ext_image_format_t::channel_type"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "channel_type=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.channel_type);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_ext_image_descriptor_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_ext_image_descriptor_t::format"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "format=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.format);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_ext_image_descriptor_t::array_size"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "array_size=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.array_size);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_ext_image_descriptor_t::depth"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "depth=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.depth);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_ext_image_descriptor_t::height"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "height=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.height);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_ext_image_descriptor_t::width"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "width=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.width);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_ext_image_descriptor_t::geometry"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "geometry=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.geometry);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_ext_image_data_info_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_ext_image_data_info_t::alignment"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "alignment=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.alignment);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_ext_image_data_info_t::size"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "size=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.size);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_ext_image_region_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_ext_image_region_t::range"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "range=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.range);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_ext_image_region_t::offset"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "offset=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.offset);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_ext_sampler_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_ext_sampler_t::handle"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "handle=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.handle);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_ext_sampler_descriptor_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_ext_sampler_descriptor_t::address_mode"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "address_mode=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.address_mode);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_ext_sampler_descriptor_t::filter_mode"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "filter_mode=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.filter_mode);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_ext_sampler_descriptor_t::coordinate_mode"}.find(
|
|
HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "coordinate_mode=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.coordinate_mode);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_ext_images_1_00_pfn_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string("hsa_ext_images_1_00_pfn_t::hsa_ext_sampler_destroy")
|
|
.find(HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "hsa_ext_sampler_destroy=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.hsa_ext_sampler_destroy);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string("hsa_ext_images_1_00_pfn_t::hsa_ext_sampler_create")
|
|
.find(HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "hsa_ext_sampler_create=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.hsa_ext_sampler_create);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_ext_images_1_00_pfn_t::hsa_ext_image_copy"}.find(
|
|
HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "hsa_ext_image_copy=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.hsa_ext_image_copy);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string("hsa_ext_images_1_00_pfn_t::hsa_ext_image_destroy")
|
|
.find(HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "hsa_ext_image_destroy=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.hsa_ext_image_destroy);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string("hsa_ext_images_1_00_pfn_t::hsa_ext_image_data_get_info")
|
|
.find(HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "hsa_ext_image_data_get_info=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.hsa_ext_image_data_get_info);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string("hsa_ext_images_1_00_pfn_t::hsa_ext_image_get_capability")
|
|
.find(HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "hsa_ext_image_get_capability=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.hsa_ext_image_get_capability);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_ext_images_1_pfn_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string("hsa_ext_images_1_pfn_t::hsa_ext_image_data_get_info_with_layout")
|
|
.find(HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "hsa_ext_image_data_get_info_with_layout=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.hsa_ext_image_data_get_info_with_layout);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string("hsa_ext_images_1_pfn_t::hsa_ext_image_get_capability_with_layout")
|
|
.find(HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "hsa_ext_image_get_capability_with_layout=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.hsa_ext_image_get_capability_with_layout);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_ext_images_1_pfn_t::hsa_ext_sampler_destroy"}.find(
|
|
HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "hsa_ext_sampler_destroy=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.hsa_ext_sampler_destroy);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_ext_images_1_pfn_t::hsa_ext_sampler_create"}.find(
|
|
HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "hsa_ext_sampler_create=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.hsa_ext_sampler_create);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_ext_images_1_pfn_t::hsa_ext_image_copy"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "hsa_ext_image_copy=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.hsa_ext_image_copy);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_ext_images_1_pfn_t::hsa_ext_image_destroy"}.find(
|
|
HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "hsa_ext_image_destroy=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.hsa_ext_image_destroy);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string("hsa_ext_images_1_pfn_t::hsa_ext_image_data_get_info")
|
|
.find(HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "hsa_ext_image_data_get_info=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.hsa_ext_image_data_get_info);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string("hsa_ext_images_1_pfn_t::hsa_ext_image_get_capability")
|
|
.find(HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "hsa_ext_image_get_capability=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.hsa_ext_image_get_capability);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_vendor_packet_header_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_amd_vendor_packet_header_t::reserved"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "reserved=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.reserved);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_vendor_packet_header_t::AmdFormat"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "AmdFormat=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.AmdFormat);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_vendor_packet_header_t::header"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "header=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.header);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_barrier_value_packet_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string("hsa_amd_barrier_value_packet_t::completion_signal")
|
|
.find(HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "completion_signal=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.completion_signal);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_barrier_value_packet_t::reserved3"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "reserved3=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.reserved3);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_barrier_value_packet_t::reserved2"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "reserved2=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.reserved2);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_barrier_value_packet_t::reserved1"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "reserved1=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.reserved1);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_barrier_value_packet_t::cond"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "cond=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.cond);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_barrier_value_packet_t::mask"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "mask=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.mask);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_barrier_value_packet_t::value"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "value=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.value);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_barrier_value_packet_t::signal"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "signal=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.signal);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_barrier_value_packet_t::reserved0"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "reserved0=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.reserved0);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_barrier_value_packet_t::header"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "header=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.header);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_hdp_flush_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_amd_hdp_flush_t::HDP_REG_FLUSH_CNTL"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "HDP_REG_FLUSH_CNTL=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.HDP_REG_FLUSH_CNTL);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_hdp_flush_t::HDP_MEM_FLUSH_CNTL"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "HDP_MEM_FLUSH_CNTL=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.HDP_MEM_FLUSH_CNTL);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_profiling_dispatch_time_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_amd_profiling_dispatch_time_t::end"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "end=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.end);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_profiling_dispatch_time_t::start"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "start=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.start);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_profiling_async_copy_time_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_amd_profiling_async_copy_time_t::end"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "end=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.end);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_profiling_async_copy_time_t::start"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "start=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.start);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_memory_pool_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_amd_memory_pool_t::handle"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "handle=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.handle);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_pitched_ptr_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_pitched_ptr_t::slice"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "slice=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.slice);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_pitched_ptr_t::pitch"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "pitch=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.pitch);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_memory_pool_link_info_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_amd_memory_pool_link_info_t::numa_distance"}.find(
|
|
HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "numa_distance=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.numa_distance);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_memory_pool_link_info_t::link_type"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "link_type=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.link_type);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_memory_pool_link_info_t::max_bandwidth"}.find(
|
|
HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "max_bandwidth=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.max_bandwidth);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_memory_pool_link_info_t::min_bandwidth"}.find(
|
|
HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "min_bandwidth=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.min_bandwidth);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_memory_pool_link_info_t::max_latency"}.find(
|
|
HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "max_latency=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.max_latency);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_memory_pool_link_info_t::min_latency"}.find(
|
|
HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "min_latency=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.min_latency);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_image_descriptor_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_amd_image_descriptor_t::data"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "data=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.data);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_image_descriptor_t::deviceID"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "deviceID=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.deviceID);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_image_descriptor_t::version"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "version=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.version);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_pointer_info_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_amd_pointer_info_t::global_flags"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "global_flags=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.global_flags);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_pointer_info_t::agentOwner"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "agentOwner=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.agentOwner);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_pointer_info_t::sizeInBytes"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "sizeInBytes=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.sizeInBytes);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_pointer_info_t::type"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "type=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.type);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_pointer_info_t::size"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "size=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.size);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_ipc_memory_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_amd_ipc_memory_t::handle"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "handle=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.handle);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_gpu_memory_fault_info_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string("hsa_amd_gpu_memory_fault_info_t::fault_reason_mask")
|
|
.find(HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "fault_reason_mask=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.fault_reason_mask);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string("hsa_amd_gpu_memory_fault_info_t::virtual_address")
|
|
.find(HSA_structs_regex) != std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "virtual_address=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.virtual_address);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_gpu_memory_fault_info_t::agent"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "agent=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.agent);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_event_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_amd_event_t::event_type"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "event_type=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.event_type);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_svm_attribute_pair_t& v)
|
|
{
|
|
std::operator<<(out, '{');
|
|
HSA_depth_max_cnt++;
|
|
if(HSA_depth_max == -1 || HSA_depth_max_cnt <= HSA_depth_max)
|
|
{
|
|
if(std::string_view{"hsa_amd_svm_attribute_pair_t::value"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "value=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.value);
|
|
rocprofiler::hsa::detail::operator<<(out, ", ");
|
|
}
|
|
if(std::string_view{"hsa_amd_svm_attribute_pair_t::attribute"}.find(HSA_structs_regex) !=
|
|
std::string_view::npos)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, "attribute=");
|
|
rocprofiler::hsa::detail::operator<<(out, v.attribute);
|
|
}
|
|
};
|
|
HSA_depth_max_cnt--;
|
|
std::operator<<(out, '}');
|
|
return out;
|
|
}
|
|
// end ostream ops for HSA
|
|
} // namespace detail
|
|
} // namespace hsa
|
|
} // namespace rocprofiler
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_dim3_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_agent_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_cache_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_signal_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_signal_group_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_region_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_queue_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_kernel_dispatch_packet_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_agent_dispatch_packet_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_barrier_and_packet_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_barrier_or_packet_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_isa_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_wavefront_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_code_object_reader_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_executable_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_loaded_code_object_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_executable_symbol_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_code_object_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_callback_data_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_code_symbol_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_ext_image_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_ext_image_format_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_ext_image_descriptor_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_ext_image_data_info_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_ext_image_region_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_ext_sampler_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_ext_sampler_descriptor_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_ext_images_1_00_pfn_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_ext_images_1_pfn_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_vendor_packet_header_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_barrier_value_packet_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_hdp_flush_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_profiling_dispatch_time_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_profiling_async_copy_time_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_memory_pool_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_pitched_ptr_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_memory_pool_link_info_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_image_descriptor_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_pointer_info_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_ipc_memory_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_gpu_memory_fault_info_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_event_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|
|
|
|
inline static std::ostream&
|
|
operator<<(std::ostream& out, const hsa_amd_svm_attribute_pair_t& v)
|
|
{
|
|
rocprofiler::hsa::detail::operator<<(out, v);
|
|
return out;
|
|
}
|