Maximización del ancho de banda de la red en instancias de computación acelerada con EFA - Amazon Elastic Compute Cloud

Maximización del ancho de banda de la red en instancias de computación acelerada con EFA

Para maximizar el ancho de banda en los siguientes tipos de instancias aceleradas, puede usar varias interfaces de Elastic Fabric Adapter (EFA).

  • Las instancias P5 y P5e admiten hasta 32 tarjetas de red y pueden ofrecer hasta 3200 Gbps de ancho de banda de la red.

  • Las instancias G6e admiten hasta cuatro tarjetas de red y pueden ofrecer hasta 400 Gbps de ancho de banda de la red.

Para obtener más información sobre cómo empezar a trabajar con las instancias aceleradas por GPU, consulte Aceleración del rendimiento con instancias de GPU.

Le recomendamos que defina una única interfaz de red EFA por tarjeta de red. Para configurar estas interfaces en el momento de la inicialización, recomendamos los siguientes ajustes:

  • Para la interfaz de red 0, especifique el índice de dispositivos 0.

  • Para las interfaces de red de 1 a 31, especifique el índice de dispositivos 1.

Si utiliza la consola de Amazon EC2, en el Asistente de inicialización de instancias, elija Editar en la sección Configuración de red. Expanda Configuración de red avanzada y elija Agregar interfaz de red para agregar el número necesario de interfaces de red. Para cada interfaz de red, en EFA, seleccione Habilitar. Para todas las interfaces de red, excepto la interfaz de red principal, en Índice de dispositivos, especifique 1. Configure los demás ajustes según sea necesario.

Si está utilizando la AWS CLI, utilice el comando run-instances; en --network-interfaces, especifique el número requerido de interfaces de red. Para cada interfaz de red, en InterfaceType, especifique efa. Para la interfaz de red principal, en NetworkCardIndex y DeviceIndex, especifique 0. Para las demás interfaces de red, en NetworkCardIndex, especifique un valor único de 1 a 31 y, en DeviceIndex, especifique 1.

En el siguiente fragmento de comando de ejemplo, se muestra una solicitud con 32 interfaces de red EFA.

$ aws --region $REGION ec2 run-instances \ --instance-type p5.48xlarge \ --count 1 \ --key-name key_pair_name \ --image-id ami_id \ --network-interfaces "NetworkCardIndex=0,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=1,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=2,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=3,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=4,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=5,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=6,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=7,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=8,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=9,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=10,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=11,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=12,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=13,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=14,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=15,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=16,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=17,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=18,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=19,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=20,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=21,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=22,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=23,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=24,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=25,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=26,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=27,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=28,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=29,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=30,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=31,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" ...

Si utiliza una plantilla de inicialización, especifique el número necesario de interfaces de red en la plantilla de inicialización. Para cada interfaz de red, en InterfaceType, especifique efa. Para la interfaz de red principal, en NetworkCardIndex y DeviceIndex, especifique 0. Para las demás interfaces de red, en NetworkCardIndex, especifique un valor único de 1 a 31 y, en DeviceIndex, especifique 1. En el siguiente fragmento, se muestra un ejemplo con 3 interfaces de red de las 32 interfaces de red posibles.

"NetworkInterfaces":[ { "NetworkCardIndex":0, "DeviceIndex":0, "InterfaceType": "efa", "AssociatePublicIpAddress":false, "Groups":[ "security_group_id" ], "DeleteOnTermination":true }, { "NetworkCardIndex": 1, "DeviceIndex": 1, "InterfaceType": "efa", "AssociatePublicIpAddress":false, "Groups":[ "security_group_id" ], "DeleteOnTermination":true }, { "NetworkCardIndex": 2, "DeviceIndex": 1, "InterfaceType": "efa", "AssociatePublicIpAddress":false, "Groups":[ "security_group_id" ], "DeleteOnTermination":true } ...

Al iniciar una instancia P5 o P5e con más de una interfaz de red, no puede asignar automáticamente direcciones IP públicas. Sin embargo, puede adjuntar una dirección IP elástica a la interfaz de red principal (NetworkCardIndex=0, DeviceIndex=0) después de la inicialización para la conectividad a Internet. Tanto Ubuntu 20.04 y versiones posteriores como Amazon Linux 2 y versiones posteriores están configurados para usar la interfaz de red principal para el tráfico de Internet cuando se inicia la instancia, tal como se recomendó en esta página.

Para lograr el máximo rendimiento de la red en las instancias G6e, puede usar IMDS para asignar las interfaces de red asociadas y optimizarlas mediante el uso de instancias de red en NetworkCardIndexes independientes.

El siguiente script de ejemplo recopila los detalles de NetworkCardIndexes adjuntos.

$ TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X- aws-ec2-metadata-token-ttl-seconds: 21600") count=$(ls -l /sys/class/net/eth* | wc -l) for ((i = 0 ; i < ${count} ; i++)); do mac=$(cat /sys/class/net/eth$i/address) network_card=$(curl -s -H "X-aws-ec2-metadata-token: $TOKEN" "http://169.254.169.254/latest/meta-data/network/interfaces/macs/$mac/ network-card") device_number=$(curl -s -H "X-aws-ec2-metadata-token: $TOKEN" "http://169.254.169.254/latest/meta-data/network/interfaces/macs/$mac/ device-number") device_bdf=$(realpath /sys/class/net/eth${i}/device) echo "eth${i} ${network_card} ${device_number} ${device_bdf}" done