全部产品
Search
文档中心

Container Compute Service:Jalankan aplikasi menggunakan jaringan RDMA berkinerja tinggi

更新时间:Dec 27, 2025

Untuk aplikasi AI berskala besar, komunikasi yang efisien antar tugas merupakan kunci untuk memaksimalkan kinerja GPU. Alibaba Cloud Container Compute Service (ACS) menyediakan layanan jaringan Remote Direct Memory Access (RDMA) berkinerja tinggi dengan latensi rendah, throughput tinggi, dan elastisitas tinggi. Topik ini menjelaskan cara menjalankan aplikasi pada jaringan RDMA berkinerja tinggi.

Ikhtisar fitur

Protokol TCP/IP merupakan standar komunikasi jaringan, dan banyak aplikasi dibangun di atasnya. Namun, seiring pertumbuhan layanan AI, aplikasi memerlukan kinerja jaringan yang lebih baik. Protokol TCP/IP memiliki sejumlah keterbatasan, seperti overhead penyalinan data yang tinggi, pemrosesan tumpukan protokol yang kompleks, algoritma pengendalian aliran yang rumit, serta sering terjadinya context switching. Masalah-masalah tersebut menjadikan kinerja jaringan TCP/IP sebagai bottleneck bagi aplikasi.

RDMA mengatasi permasalahan tersebut dengan memanfaatkan fitur seperti zero-copy dan kernel bypass untuk menghindari penyalinan data dan context switching. Hasilnya adalah latensi yang lebih rendah, throughput yang lebih tinggi, serta penggunaan CPU yang lebih efisien.

Di ACS, Anda dapat menambahkan label alibabacloud.com/hpn-type: "rdma" ke sebuah Pod untuk menjalankan aplikasi pada jaringan RDMA. Setelah jaringan RDMA diaktifkan, sebuah network interface card (NIC) RDMA akan ditambahkan ke kontainer. Anda kemudian dapat mengonfigurasi variabel lingkungan NCCL untuk melakukan pelatihan terdistribusi dan inferensi di ACS.

Model GPU yang mendukung RDMA

ACS mendukung berbagai GPU models. Tabel berikut mencantumkan model GPU yang mendukung jaringan RDMA berkinerja tinggi beserta batasannya.

Card model

compute-class

Batasan dukungan RDMA

Tipe NIC RDMA yang sesuai

GU8TF

gpu

Hanya Pod dengan 8 kartu yang mendukung RDMA.

Tipe 1

GU8TEF

gpu

Hanya Pod dengan 8 kartu yang mendukung RDMA.

Tipe 1

GX8SF

gpu

Hanya Pod dengan 8 kartu yang mendukung RDMA.

Tipe 1

P16EN

gpu

Hanya Pod dengan 16 kartu yang mendukung RDMA.

Tipe 2

gpu-hpn

Pod dengan 1, 2, 4, 8, dan 16 kartu mendukung RDMA.

Tipe NIC RDMA yang berbeda memerlukan konfigurasi variabel lingkungan NCCL yang berbeda, sebagaimana dijelaskan pada bagian berikut.

Konfigurasi NCCL

Model GPU yang berbeda di ACS menggunakan NIC RDMA yang berbeda, sehingga memengaruhi cara Anda mengonfigurasi NCCL. GPU ACS mendukung dua metode konfigurasi.

Tipe NIC RDMA 1 (GU8TF/GU8TEF/GX8SF)

export NCCL_SOCKET_IFNAME=eth0 
export NCCL_IB_HCA=mlx5
export NCCL_DEBUG=INFO

Tipe NIC RDMA 2 (P16EN)

export NCCL_IB_DISABLE=1 
export NCCL_SOCKET_IFNAME=eth0 
export NCCL_IB_HCA= 
export NCCL_DEBUG=INFO

Deskripsi variabel lingkungan

Variabel lingkungan

Environment variables

NCCL_SOCKET_IFNAME

Port yang digunakan NCCL untuk membuat koneksi. Gunakan eth0 untuk membuat koneksi di ACS.

NCCL_IB_DISABLE

Menentukan apakah jaringan IB/RoCE dinonaktifkan dan menggunakan IP Sockets sebagai gantinya. Nilai 1 menonaktifkan IB/RoCE. Anda harus mengatur nilai ini ke 1 untuk P16EN.

NCCL_IB_HCA

Menentukan NIC untuk komunikasi RDMA. Anda harus mengosongkan nilai ini untuk P16EN.

NCCL_DEBUG

Mengontrol tingkat output log debug NCCL.

Untuk informasi lebih lanjut mengenai variabel lingkungan lain yang tidak disebutkan di sini, lihat dokumentasi resmi NCCL.

Penggunaan

Langkah-langkah berikut menjelaskan cara menyebar aplikasi GPU yang berjalan dengan RDMA di kluster ACS.

  1. Buat file bernama dep-demo-hpn-gpu.yaml dengan konten YAML berikut.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: dep-demo-hpn-gpu
      labels:
        app: demo-hpn-gpu
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: demo-hpn-gpu
      template:
        metadata:
          labels:
            app: demo-hpn-gpu
            alibabacloud.com/compute-class: gpu
            alibabacloud.com/compute-qos: default
            # Specify the GPU model as GU8TF. Change this value as needed.
            alibabacloud.com/gpu-model-series: "GU8TF"        
            alibabacloud.com/hpn-type: "rdma"
        spec:
          containers:
          - name: demo
            image: registry-cn-wulanchabu.ack.aliyuncs.com/acs/stress:v1.0.4
            command:
            - "sleep"
            - "1000h"
            env:
            - name: NCCL_SOCKET_IFNAME
              value: "eth0"
            - name: NCCL_IB_HCA
              value: "mlx5"
            - name: NCCL_DEBUG
              value: "INFO"
            resources:
              requests:
                cpu: 128
                memory: 512Gi
                nvidia.com/gpu: 8
              limits:
                cpu: 128
                memory: 512Gi
                nvidia.com/gpu: 8
  2. Terapkan aplikasi.

    kubectl apply -f dep-demo-hpn-gpu.yaml
  3. Tunggu hingga Pod aplikasi memasuki status Running.

    kubectl get pod |grep dep-demo-hpn-gpu

    Keluaran yang diharapkan:

    dep-demo-hpn-gpu-5d9xxxxxb6-xxxxx   1/1     Running   0          25m16s
  4. Lihat informasi NIC jaringan berkinerja tinggi.

    kubectl exec -it deploy/dep-demo-hpn-gpu -- ifconfig | grep hpn -A 8 

    Keluaran yang diharapkan:

    hpn0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx  
              inet6 addr: xxxx::x:xxxx:xxxx:xxx/xx Scope:Link
              inet6 addr: xxxx:xxx:xxx:x:x:xxxx:x:xxx/xxx Scope:Global
              UP BROADCAST RUNNING MULTICAST  MTU:xxxx  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:xx errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:0 (0.0 B)  TX bytes:x (892.0 B)

    Output tersebut menunjukkan bahwa NIC berkinerja tinggi hpn0 telah dikonfigurasi di dalam Pod.