rocprofiler-sdk/intercept_table.h Source File#
|
ROCprofiler-SDK developer API 1.0.0
ROCm Profiling API and tools
|
intercept_table.h
37 * function calls to collect information. When this capability is used alongside the rocprofiler API
38 * tracing, tools will wrap the rocprofiler wrappers of the API function, e.g. if the tool installs
41 * library, the "real" implementation of the `hsa_init` invokes a function called `real_hsa_init`,
43 * `hsa_init` -> `tool_hsa_init` -> `rocp_hsa_init` -> `real_hsa_init`. The return sequence will be
57 * @param [in] lib_instance The number of times this runtime library has been registered previously
73 * function is a string literal that is encoded in the read-only section of the binary (i.e. it is
94 * @brief (experimental) Invoke this function to receive callbacks when a ROCm library registers its
102 * invocation of one of their public API functions), these runtimes will provide a table of function
104 * `rocprofiler_configure` symbol is visible in the application's symbol table. The vast majority of
105 * tools will want to use the @ref CALLBACK_TRACING_SERVICE to trace these runtime APIs, however,
109 * function can be invoked but it will return ::ROCPROFILER_STATUS_ERROR_CONFIGURATION_LOCKED if it
114 * these locations, rocprofiler can guarantee that the tool will be passed the API table because, at
115 * the first instance of a runtime registering it's API table, rocprofiler will ensure that, in the
117 * are visible before checking the list of tools which want to receive the API tables and, in the
119 * ::ROCPROFILER_STATUS_ERROR_CONFIGURATION_LOCKED if a runtime has already been registered (and,
122 * invoked outside of these recommended places, even if it is done before the `main` function starts
124 * ROCm-aware MPI, caused the HIP and HSA runtime libraries to be initialized when that library was
125 * loaded. In this aforementioned scenario, if the ROCm-aware MPI library library init/constructor
127 * processed the API table and will not provide the API table to the tool due to the fact that the
128 * API may already be in use and, thus, any modifications to the table might result in thread-safety
144 * specified libraries does not have support for API intercept tables (which should not be the case
rocprofiler_intercept_table_t
Enumeration for specifying intercept tables supported by rocprofiler. This enumeration is used for in...
Definition fwd.h:413
void(* rocprofiler_intercept_library_cb_t)(rocprofiler_intercept_table_t type, uint64_t lib_version, uint64_t lib_instance, void **tables, uint64_t num_tables, void *user_data)
(experimental) Callback type when a new runtime library is loaded.
Definition intercept_table.h:64
rocprofiler_status_t rocprofiler_query_intercept_table_name(rocprofiler_intercept_table_t kind, const char **name, uint64_t *name_len)
(experimental) Query the name of the intercept table. The name retrieved from this function is a stri...
Generated by