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#
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_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:

rocprofiler_status_t

struct rocprofiler_agent_cache_t#
#include <rocprofiler-sdk/agent.h>

Cache information for an agent.

#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 a hsa_agent_t. The const char* fields (name, vendor_name, etc.) are guaranteed to be valid pointers to null-terminated strings during tool finalization. Pointers to the agents via

See 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.