Agent Information#
-
enum rocprofiler_agent_version_t#
Enumeration ID for version of the rocprofiler_agent_v*_t struct in rocprofiler_i.
Values:
-
enumerator ROCPROFILER_AGENT_INFO_VERSION_NONE#
-
enumerator ROCPROFILER_AGENT_INFO_VERSION_0#
-
enumerator ROCPROFILER_AGENT_INFO_VERSION_LAST#
-
enumerator ROCPROFILER_AGENT_INFO_VERSION_NONE#
-
typedef rocprofiler_agent_v0_t rocprofiler_agent_t#
Typedef for the current rocprofiler_agent_version_t.
-
typedef rocprofiler_status_t (*rocprofiler_query_available_agents_cb_t)(rocprofiler_agent_version_t version, const void **agents, unsigned long num_agents, void *user_data)#
Callback function type for querying the available agents.
If callback is invoked, returns the rocprofiler_status_t value returned from callback
- Param version:
[in] Enum specifying the version of agent info
- Param agents:
[in] Array of pointers to agents
- Param num_agents:
[in] Number of agents in array
- Param user_data:
[in] Data pointer passback
- Retval ROCPROFILER_STATUS_ERROR_INCOMPATIBLE_ABI:
size of the agent struct in application is larger than the agent struct for rocprofiler-sdk
- Retval ROCPROFILER_STATUS_ERROR_INVALID_ARGUMENT:
Invalid rocprofiler_agent_version_t value
- Return:
-
rocprofiler_status_t rocprofiler_query_available_agents(rocprofiler_agent_version_t version, rocprofiler_query_available_agents_cb_t callback, unsigned long agent_size, void *user_data)#
Receive synchronous callback with an array of available agents at moment of invocation.
- Parameters:
version – [in] Enum value specifying the struct type of the agent info
callback – [in] Callback function accepting list of agents
agent_size – [in] Should be set to sizeof(rocprofiler_agent_t)
user_data – [in] Data pointer provided to callback
- Returns:
-
struct rocprofiler_agent_cache_t#
- #include <rocprofiler-sdk/agent.h>
Cache information for an agent.
-
struct rocprofiler_agent_io_link_t#
- #include <rocprofiler-sdk/agent.h>
IO link information for an agent.
-
struct rocprofiler_agent_mem_bank_t#
- #include <rocprofiler-sdk/agent.h>
Memory bank information for an agent.
-
struct rocprofiler_agent_runtime_visiblity_t#
- #include <rocprofiler-sdk/agent.h>
Provides an estimate about the runtime visibility of an agent based on the environment variables (ROCR_VISIBLE_DEVICES, HIP_VISIBLE_DEVICES, GPU_DEVICE_ORDINAL, CUDA_VISIBLE_DEVICES). Reference: https://rocm.docs.amd.com/en/latest/conceptual/gpu-isolation.html.
-
struct rocprofiler_agent_v0_t#
- #include <rocprofiler-sdk/agent.h>
Stores the properties of an agent (CPU, GPU, etc.)
The
node_id
member is the KFD topology node id. It should be considered the “universal” indexing number. It is equivalent to the HSA-runtime HSA_AMD_AGENT_INFO_DRIVER_NODE_ID property of ahsa_agent_t
. Theconst char*
fields (name
,vendor_name
, etc.) are guaranteed to be valid pointers to null-terminated strings during tool finalization. Pointers to the agents viaSee also
rocprofiler_query_available_agents are constant and will not be deallocated until after tool finalization. Making copies of the agent struct is also valid.