3. Device attributes
Each IPU device within a system has a set of attributes associated with it. The attributes contain information relating to the IPU such as the current power usage, current process, IPU activity level, and so on.
The gcipuinfo library provides a public API to retrieve this information. The library defines both the lookup functions and the available attributes.
You can query device attributes at the command line with the
gc-inventory tools. These tools are part of the
Graphcore command line tools.
Note that there are some additional attributes visible in the
which are only used internally. These are not exported or documented through the gcipuinfo library.
3.1. Querying attributes
gcipuinfo provides a collection of methods for querying attributes.
gcipuinfo will query all of the available attributes
for all devices when the class is created.
By default, subsequent calls to query any of the
data will return the original data. Some attributes can dynamically change (such
as power usage or IPU utilization). To force
update the attributes you can call the
method. Alternatively, you can call the
method to force
gcipuinfo to update the IPU attributes on each and
every call to query the data.
By default only attributes of devices in the current partition will be retrieved.
You can request that gcipuinfo return device attributes of devices in other partitions, by supplying
DiscoverAllPartitionIPUs as the
discoveryMode argument of the
gcipuinfo::gcipuinfo() object constructor.
This is demonstrated in the
gc-get-attributes-for-all-devices example program.
Information about available partitions is only retrieved once, at program start up. If partitions are added or removed any monitoring programs will need to be restarted to obtain updated partition information.