Rank Table Configuration (Atlas A2 training product/Atlas A2 inference product)

For the Atlas A2 training product/Atlas A2 inference product, the following is an example of configuring the rank table file when there are two AI servers and each AI server has two devices:

The rank table file is in JSON format. The comments in the JSON file provided in this section are for reference only. Delete the comments when you use it.

{
    "status":"completed",  // Rank table availability flag. The value completed indicates that the rank table is available.
    "version":"1.0",       // Rank table template version. Set this option to 1.0.
    "server_count":"2",    // Number of AI servers participating in training. In this example, there are two AI servers.
    "server_list":
    [
        {
            "server_id":"node_0",  // AI server ID, which is of the string type. Ensure that the ID is globally unique.
            "device":[             // List of devices on the AI server
                {
                    "device_id":"0",            // Physical ID of the processor
                    "device_ip":"192.168.1.8",  // NIC IP address of the processor
                    "device_port":"16667",      // Listening port of the processor's NIC
                    "rank_id":"0"               // Rank ID, which starts from 0 and must be globally unique.
                },
                {
                    "device_id":"1",
                    "device_ip":"192.168.1.9", 
                    "device_port":"16667",
                    "rank_id":"1"
                }
            ]
        },
        {
            "server_id":"node_1",
            "device":[
                {
                    "device_id":"0",
                    "device_ip":"192.168.2.8",
                    "device_port":"16667",
                    "rank_id":"2"
                },
                {
                    "device_id":"1",
                    "device_ip":"192.168.2.9", 
                    "device_port":"16667",
                    "rank_id":"3"
                }
            ]
        }
    ]
}
Table 1 Rank table file description

Level-1 Configuration Item

Level-2 Configuration Item

Level-3 Configuration Item

Description

status

     

Mandatory.

Rank table availability flag.

  • completed: The rank table is available.
  • initializing: The rank table is unavailable.

version

     

Mandatory.

Version of a rank table template.

Set the value to 1.0.

server_count

     

Mandatory.

Number of AI servers that participate in collective communication.

server_list

     

Mandatory.

List of AI servers that participate in collective communication.

  

server_id

  

Mandatory.

AI server ID. The value is a string with a maximum of 64 characters. Ensure that the value is globally unique.

Example: node_0

  

device

  

Mandatory.

List of devices on the AI server.

     

device_id

Mandatory.

Physical ID of the AI processor, that is, the serial number of the device on the AI server.

You can run the ls /dev/davinci* command to obtain the physical ID of the AI processor.

For example, /dev/davinci0 indicates that the physical ID of the AI processor is 0.

The value ranges from 0 to Actual number of devices – 1.

Note: device_id takes precedence over the environment variable ASCEND_DEVICE_ID.

     

device_ip

Optional.

IP address of the integrated NIC on the AI processor, which is globally unique and must be in the IPv4 or IPv6 format.

Note:
  • In the multi-server scenario, device_ip is required.
  • In the single-server scenario, device_ip is optional.

You can run the cat /etc/hccn.conf command on the current AI server to obtain the NIC IP address.

address_0=xx.xx.xx.xx

netmask_0=xx.xx.xx.xx

netdetect_0=xx.xx.xx.xx

address_xx shows the NIC IP address, in which xx is the physical ID of AI processor (device_id). The IP address following address_xx is the one you need to set for the device.

     

device_port

Optional.

Communication port of the device NIC. The value ranges from 1 to 65535. Ensure that the port is not occupied by other processes. Ports 1–1023 are reserved. Do not use these ports.

Set this field for a service with one device and multiple processes. Assign each process a unique port number to avoid conflicts.

     

rank_id

Mandatory.

Unique ID of a rank. The value ranges from 0 to number of devices – 1.

  • You are advised to sort rank_id based on the physical connection sequence of devices, that is, arrange devices by physical connection proximity. Otherwise, the performance may be affected.

    For example, if device_ip is set in ascending order based on physical connections, you are advised to set rank_id in ascending order.

  • rank_id must be sequentially allocated within each AI server and cannot be interleaved across servers.

    Correct: The rank_id set is {0, 1, 2, 3} for server 1, and {4, 5, 6, 7} for server 2.

    Incorrect: The rank_id set is {0, 1, 2, 7} for server 1, and {3, 4, 5, 6} for server 2.