Copyright (c) 2020 Graphcore Ltd. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Field | Type | Label | Description |
id | string | Unique identifier for the allocation. |
|
spec | AllocationSpec | The Allocation specification. |
Field | Type | Label | Description |
cluster_id | string | The cluster containing the allocation. |
|
agent_ids | string | repeated | The agents in the allocation. |
Field | Type | Label | Description |
partition_id | string | Unique identifier of the created partition. |
Field | Type | Label | Description |
requirements | PartitionRequirements | Partition requirements |
|
disable_auto_reset | bool | Disable Auto-reset for the partition |
|
relocatable | bool | If set to true, the V-IPU controller may consider reallocation of this partition to a different set of IPUs on partition errors |
Field | Type | Label | Description |
ipuof_config | PartitionConfig | IPUoF configurations for the partition (each Gcd) |
Field | Type | Label | Description |
partition_id | string | Unique id of the Partition |
|
gcd_id | GetPartitionIpuofConfigRequest.GcdID | Gcd id |
Field | Type | Label | Description |
id | uint32 |
|
Field | Type | Label | Description |
status | PartitionStatus |
|
Field | Type | Label | Description |
partition_id | string | Unique identifier for the partition |
Field | Type | Label | Description |
ip | string | The IP address of the IPUoF endpoint. |
|
server_port | uint32 | The port number of the IPUoF endpoint. |
|
rdma_port | uint32 | The port number of the IPUoF rdma endpoint. |
|
device_id | uint32 | The remote device number of the IPU. |
|
ipulink_segment_id | uint32 | The IpuLink Segment id for the IPU. |
|
routing_id | uint32 | The routing id for the IPU |
|
ipu_arch_id | uint32 | The IPU architecture ID |
|
ipu_id | uint32 | The IPU ID attribute in GCDA |
|
chip_id | string | chip_id contains the silicon ID of the given IPU |
|
gwsw_version | string | gwsw_version contains the GWSW version of the IPUM where the IpuofDevice is located to. |
|
ipum_sw_version | string | ipum_sw_version contains the IPU-M SW version where the IpuofDevice is located. |
Field | Type | Label | Description |
entries | ListIPUAttributesReply.Entry | repeated |
|
Field | Type | Label | Description |
agent | string |
|
|
ipu_attributes | ListIPUAttributesReply.Entry.IpuAttributesEntry | repeated | The uint32 map key represents IpuHwID |
Field | Type | Label | Description |
attributes | ListIPUAttributesReply.Entry.Attributes.AttributesEntry | repeated |
|
Field | Type | Label | Description |
key | string |
|
|
value | string |
|
Field | Type | Label | Description |
key | uint32 |
|
|
value | ListIPUAttributesReply.Entry.Attributes |
|
Field | Type | Label | Description |
agents | string | repeated | Filter to only fetch attributes from certain agents |
Field | Type | Label | Description |
partitions | Partition | repeated | List of configured partitions. |
Field | Type | Label | Description |
allocation_id | string | [optional] Only list partitions within the specific allocation If not specified, list all partitions in all allocations that the user has access to |
Field | Type | Label | Description |
id | string | Unique id of the partition |
|
spec | PartitionSpec | Partition Specification |
|
ready_state | PartitionReadyState | Partition State |
|
ipuof_server_version | string | Return the IPUoF server version |
Field | Type | Label | Description |
ipulink_routing_type | IpuLinkRoutingType | The routing method configured for the IPUs. |
|
sync_type | SyncType | The sync groupings configured for the IPUs. |
|
reconfigurable | bool | Boolean to set the "Fabric Reconfigurable" IPUoF attribute |
|
gw_routing_type | GatewayRoutingType | Gateway Routing Type for multi-ipulink-segment partitions |
|
num_ipulink_segments | uint32 | The number of IpuLinkSegments |
|
gcd_configs | PartitionConfig.Gcd | repeated | The GCD configurations for the partition. |
ipuof_server_version | string | The IPUoF server version associated with this partition |
Field | Type | Label | Description |
devices | IpuofDevice | repeated | The IPU devices in the GCD. |
attributes | PartitionConfig.Gcd.AttributesEntry | repeated | Arbitrary attributes as key-value pairs. |
Field | Type | Label | Description |
key | string |
|
|
value | string |
|
Field | Type | Label | Description |
ipulink_domain_topology_id | uint32 | The physical identifier of the IpuLinkDomain in the cluster for this IPU |
|
ipulink_domain_routing_id | uint32 | The logical identifier of the IpuLinkDomain when in the partition. |
|
topology_id | uint32 | The physical identifier of the IPU in the IpuLinkDomain. |
|
routing_id | uint32 | The logical identifier of the IPU when in the partition. |
Field | Type | Label | Description |
id | string | Unique id of the partition |
|
size | uint32 | Partition size required |
|
cluster_id | string | Specify specific cluster for the partition (optional) If not specified, partition will be created in any available cluster - deprecated. Use the allocation_id. |
|
ipulink_routing_type | IpuLinkRoutingType | The routing method required for the IPUs in an IpuLinkDomain (optional) If not specified, a default routing method will be selected based on the partition size and the cluster topology. |
|
num_ipulink_segments | uint32 | The number of ipu link segments used from separate IpuLinkDomains in the partition (optional) If not specified single ipulink segment will be used. |
|
gw_routing_type | GatewayRoutingType | The routing method required for the ipu link segments (optional, Multi-ipulink-segement partitions only) If not specified, default routing method will be selected based on the inter-ipulink-domain topology |
|
sync_type | SyncType | The sync groupings to use for the inter-GCD sync group (GS2) (optional) If not specified, GST_DEFAULT will be used. |
|
num_gcds | uint32 | The number of GCDs to divide the partition into (optional) If not specified, single GCD will be assumed. |
|
reconfigurable | bool | Boolean to set the "Fabric Reconfigurable" IPUoF attribute (optional) If not specified, partition will be non-reconfigurable. |
|
num_replicas | uint32 | The total number of replicas across all GCDs (optional) If not specified, it is assumed that there is one replica per GCD, which is equivalent to setting num_replicas == num_gcds. |
|
allocation_id | string | Specify specific allocation for the partition (optional) If not specified, partition will be created in any available allocation |
|
ipus | PartitionIpu | repeated | The selection of IPUs from a cluster. When PartitionIpu requirement is specified, cluster_id must be provided. |
Field | Type | Label | Description |
cluster_id | string | The cluster containing the IPUs to be partitioned. |
|
ipus | PartitionIpu | repeated | The selection of IPUs from the cluster. |
ipulink_routing_type | IpuLinkRoutingType | The routing method to use for the IPUs in an IpuLinkDomain. |
|
sync_type | SyncType | The sync groupings to use for the inter-GCD sync group (GS2). |
|
num_gcds | uint32 | The number of GCDs to divide the partition into. |
|
num_ipulink_segments | uint32 | The number of ipu link segments used from separate IpuLinkDomains in the partition |
|
reconfigurable | bool | Boolean to set the "Fabric Reconfigurable" IPUoF attribute |
|
gw_routing_type | GatewayRoutingType | Gateway Routing Type |
|
num_replicas | uint32 | Give the total number of replicas independently of the number of GCDs. |
|
allocation_id | string | The allocation containing the IPUs to be partitioned. |
Field | Type | Label | Description |
partition_id | string |
|
|
ready_state | PartitionReadyState |
|
|
operation_state | PartitionOperationState |
|
|
errors | string | repeated |
|
max_auto_reset_retries | uint32 |
|
|
auto_reset_retry_count | uint32 |
|
|
last_auto_reset_time | google.protobuf.Timestamp |
|
Field | Type | Label | Description |
partition_id | string | Unique identifier of the partition to reset. |
|
force | bool | Force remove ignore errors while removing a partition |
Field | Type | Label | Description |
partition_id | string | Unique identifier of the partition to reset. |
|
relocatable | bool | If set to true, the V-IPU controller may consider reallocating of this partition to a different set of IPUs on reset errors, overriding value set during partition creation. If set to false, value set during the partition creation will be used. |
Name | Number | Description |
GRT_UNDEFINED | 0 | |
GRT_RING | 2 | RING - Routing for GW Clusters with loop links enabled |
GRT_SWRING | 3 | SWRING - Routing for GW Clusters with switched GW links |
Name | Number | Description |
IRT_UNDEFINED | 0 | |
IRT_DNC | 1 | DNC - Default Configuration |
IRT_SWNC | 2 | SWNC - Sliding Window Configuration |
IRT_BTNC | 3 | BTNC - Barley Twist Configuration |
IRT_RINGSWNC | 4 | RINGSWNC - Sliding Window Configuration with loop links enabled |
Name | Number | Description |
POS_UNDEFINED | 0 | |
POS_IDLE | 1 | |
POS_CREATING | 2 | |
POS_REMOVING | 3 | |
POS_RESETTING | 4 | |
POS_FAILED | 5 |
Name | Number | Description |
PS_UNDEFINED | 0 | |
PS_PENDING | 1 | |
PS_ACTIVE | 2 | |
PS_REMOVED | 3 | |
PS_ERROR | 4 |
Types of sync configuration which can be applied globally to a partition.
Name | Number | Description |
ST_UNDEFINED | 0 | |
ST_GS2_DEFAULT | 1 | Default global sync configuration |
ST_GS2_INDEPENDENT_RAILS | 2 | Independent rails sync configuration - unsupported configuration |
ST_POD_NATIVE_DEFAULT | 3 | POD Native default sync configuration |
ST_POD_NATIVE_REPLICATED_PIPELINE | 4 | POD Native replicated pipeline sync configuration |
Method Name | Request Type | Response Type | Description |
ListPartitions | ListPartitionsRequest | ListPartitionsReply | List the configured partitions. |
ListIPUAttributes | ListIPUAttributesRequest | ListIPUAttributesReply | List the attributes of the users IPUs |
CreatePartition | CreatePartitionRequest | CreatePartitionReply | Create a partition |
RemovePartition | RemovePartitionRequest | RemovePartitionReply | Remove a partition |
ResetPartition | ResetPartitionRequest | ResetPartitionReply | Force a reset of the partition back to an initial state. |
GetPartitionIpuofConfig | GetPartitionIpuofConfigRequest | GetPartitionIpuofConfigReply | Get IPUoF configurations for a configured partition |
GetPartitionStatus | GetPartitionStatusRequest | GetPartitionStatusReply | Get status of a partition. |
.proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
double | double | double | float | float64 | double | float | Float | |
float | float | float | float | float32 | float | float | Float | |
int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
bool | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | |
string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |