Rank Table Configuration (Atlas 300I Duo Inference Card)

For the Atlas 300I Duo Inference Card, 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
                    "rank_id":"0"                // Rank ID, which starts from 0 and must be globally unique.
                },
                {
                    "device_id":"1",
                    "device_ip":"192.168.1.9", 
                    "rank_id":"1"
                }
            ]
        },
        {
            "server_id":"node_1",
            "device":[
                {
                    "device_id":"0",
                    "device_ip":"192.168.2.8",
                    "rank_id":"2"
                },
                {
                    "device_id":"1",
                    "device_ip":"192.168.2.9", 
                    "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

Mandatory.

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

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.

     

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.

    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.