rocprofiler-sdk/cxx/perfetto.hpp File Reference

rocprofiler-sdk/cxx/perfetto.hpp File Reference#

Rocprofiler SDK Developer API: rocprofiler-sdk/cxx/perfetto.hpp File Reference
Rocprofiler SDK Developer API 0.6.0
ROCm Profiling API and tools
perfetto.hpp File Reference
#include <rocprofiler-sdk/cxx/details/mpl.hpp>
#include <cstddef>
#include <ostream>
#include <sstream>
#include <string>
#include <string_view>
#include <type_traits>
#include <utility>
#include <perfetto.h>
+ Include dependency graph for perfetto.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  rocprofiler::sdk::category::hsa_api
 
struct  rocprofiler::sdk::perfetto_category< category ::hsa_api >
 
struct  rocprofiler::sdk::category::hip_api
 
struct  rocprofiler::sdk::perfetto_category< category ::hip_api >
 
struct  rocprofiler::sdk::category::marker_api
 
struct  rocprofiler::sdk::perfetto_category< category ::marker_api >
 
struct  rocprofiler::sdk::category::rccl_api
 
struct  rocprofiler::sdk::perfetto_category< category ::rccl_api >
 
struct  rocprofiler::sdk::category::openmp
 
struct  rocprofiler::sdk::perfetto_category< category ::openmp >
 
struct  rocprofiler::sdk::category::kernel_dispatch
 
struct  rocprofiler::sdk::perfetto_category< category ::kernel_dispatch >
 
struct  rocprofiler::sdk::category::memory_copy
 
struct  rocprofiler::sdk::perfetto_category< category ::memory_copy >
 
struct  rocprofiler::sdk::category::memory_allocation
 
struct  rocprofiler::sdk::perfetto_category< category ::memory_allocation >
 

Namespaces

namespace  rocprofiler
 
namespace  rocprofiler::sdk
 
namespace  rocprofiler::sdk::category
 

Macros

#define ROCPROFILER_DEFINE_PERFETTO_CATEGORY(NAME, DESC, ...)
 
#define ROCPROFILER_DEFINE_CATEGORY(NS, VALUE, DESC)
 
#define ROCPROFILER_PERFETTO_CATEGORY(TYPE)
 
#define ROCPROFILER_PERFETTO_CATEGORIES
 

Typedefs

using rocprofiler::sdk::perfetto_event_context_t = ::perfetto::EventContext
 

Functions

 PERFETTO_DEFINE_CATEGORIES (::perfetto::Category(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::hsa_api >::name) .SetDescription(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::hsa_api >::description), ::perfetto::Category(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::hip_api >::name) .SetDescription(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::hip_api >::description), ::perfetto::Category(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::marker_api >::name) .SetDescription(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::marker_api >::description), ::perfetto::Category(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::rccl_api >::name) .SetDescription(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::rccl_api >::description), ::perfetto::Category(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::openmp >::name) .SetDescription(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::openmp >::description), ::perfetto::Category(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::kernel_dispatch >::name) .SetDescription(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::kernel_dispatch >::description), ::perfetto::Category(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::memory_copy >::name) .SetDescription(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::memory_copy >::description), ::perfetto::Category(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::memory_allocation >::name) .SetDescription(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::memory_allocation >::description))
 
template<typename Np , typename Tp >
auto rocprofiler::sdk::add_perfetto_annotation (perfetto_event_context_t &ctx, Np &&_name, Tp &&_val)
 

Data Structure Documentation

◆ rocprofiler::sdk::category::hsa_api

struct rocprofiler::sdk::category::hsa_api

Definition at line 77 of file perfetto.hpp.

+ Collaboration diagram for rocprofiler::sdk::category::hsa_api:

◆ rocprofiler::sdk::category::hip_api

struct rocprofiler::sdk::category::hip_api

Definition at line 78 of file perfetto.hpp.

+ Collaboration diagram for rocprofiler::sdk::category::hip_api:

◆ rocprofiler::sdk::category::marker_api

struct rocprofiler::sdk::category::marker_api

Definition at line 79 of file perfetto.hpp.

+ Collaboration diagram for rocprofiler::sdk::category::marker_api:

◆ rocprofiler::sdk::category::rccl_api

struct rocprofiler::sdk::category::rccl_api

Definition at line 80 of file perfetto.hpp.

+ Collaboration diagram for rocprofiler::sdk::category::rccl_api:

◆ rocprofiler::sdk::category::openmp

struct rocprofiler::sdk::category::openmp

Definition at line 81 of file perfetto.hpp.

+ Collaboration diagram for rocprofiler::sdk::category::openmp:

◆ rocprofiler::sdk::category::kernel_dispatch

struct rocprofiler::sdk::category::kernel_dispatch

Definition at line 82 of file perfetto.hpp.

+ Collaboration diagram for rocprofiler::sdk::category::kernel_dispatch:

◆ rocprofiler::sdk::category::memory_copy

struct rocprofiler::sdk::category::memory_copy

Definition at line 83 of file perfetto.hpp.

+ Collaboration diagram for rocprofiler::sdk::category::memory_copy:

◆ rocprofiler::sdk::category::memory_allocation

struct rocprofiler::sdk::category::memory_allocation

Definition at line 84 of file perfetto.hpp.

+ Collaboration diagram for rocprofiler::sdk::category::memory_allocation:

Macro Definition Documentation

◆ ROCPROFILER_DEFINE_CATEGORY

#define ROCPROFILER_DEFINE_CATEGORY (   NS,
  VALUE,
  DESC 
)
Value:
namespace rocprofiler \
{ \
namespace sdk \
{ \
namespace NS \
{ \
struct VALUE \
{}; \
} \
} \
} \
ROCPROFILER_DEFINE_PERFETTO_CATEGORY(#VALUE, DESC, NS::VALUE)

Definition at line 49 of file perfetto.hpp.

51 { \
52 namespace sdk \
53 { \
54 namespace NS \
55 { \
56 struct VALUE \
57 {}; \
58 } \
59 } \
60 } \
61 ROCPROFILER_DEFINE_PERFETTO_CATEGORY(#VALUE, DESC, NS::VALUE)

◆ ROCPROFILER_DEFINE_PERFETTO_CATEGORY

#define ROCPROFILER_DEFINE_PERFETTO_CATEGORY (   NAME,
  DESC,
  ... 
)
Value:
namespace rocprofiler \
{ \
namespace sdk \
{ \
template <> \
struct perfetto_category<__VA_ARGS__> \
{ \
static constexpr auto name = NAME; \
static constexpr auto description = DESC; \
}; \
} \
}

Definition at line 35 of file perfetto.hpp.

37 { \
38 namespace sdk \
39 { \
40 template <> \
41 struct perfetto_category<__VA_ARGS__> \
42 { \
43 static constexpr auto name = NAME; \
44 static constexpr auto description = DESC; \
45 }; \
46 } \
47 }

◆ ROCPROFILER_PERFETTO_CATEGORIES

#define ROCPROFILER_PERFETTO_CATEGORIES
Value:
ROCPROFILER_PERFETTO_CATEGORY(category::hsa_api), \
ROCPROFILER_PERFETTO_CATEGORY(category::hip_api), \
ROCPROFILER_PERFETTO_CATEGORY(category::marker_api), \
ROCPROFILER_PERFETTO_CATEGORY(category::rccl_api), \
ROCPROFILER_PERFETTO_CATEGORY(category::openmp), \
ROCPROFILER_PERFETTO_CATEGORY(category::kernel_dispatch), \
ROCPROFILER_PERFETTO_CATEGORY(category::memory_copy), \
ROCPROFILER_PERFETTO_CATEGORY(category::memory_allocation)
#define ROCPROFILER_PERFETTO_CATEGORY(TYPE)
Definition perfetto.hpp:63

Definition at line 86 of file perfetto.hpp.

◆ ROCPROFILER_PERFETTO_CATEGORY

#define ROCPROFILER_PERFETTO_CATEGORY (   TYPE)

Function Documentation

◆ PERFETTO_DEFINE_CATEGORIES()

PERFETTO_DEFINE_CATEGORIES ( ::perfetto::Category(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::hsa_api >::name) .SetDescription(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::hsa_api >::description)  ,
::perfetto::Category(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::hip_api >::name) .SetDescription(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::hip_api >::description)  ,
::perfetto::Category(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::marker_api >::name) .SetDescription(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::marker_api >::description)  ,
::perfetto::Category(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::rccl_api >::name) .SetDescription(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::rccl_api >::description)  ,
::perfetto::Category(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::openmp >::name) .SetDescription(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::openmp >::description)  ,
::perfetto::Category(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::kernel_dispatch >::name) .SetDescription(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::kernel_dispatch >::description)  ,
::perfetto::Category(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::memory_copy >::name) .SetDescription(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::memory_copy >::description)  ,
::perfetto::Category(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::memory_allocation >::name) .SetDescription(::rocprofiler::sdk::perfetto_category<::rocprofiler::sdk::category::memory_allocation >::description)   
)