全部产品
Search
文档中心

Container Service for Kubernetes:Konfigurasikan berbagi GPU tanpa isolasi memori GPU

更新时间:Jul 02, 2025

Dalam beberapa skenario, Anda mungkin perlu menggunakan berbagi GPU tanpa isolasi memori GPU. Sebagai contoh, beberapa aplikasi memiliki kemampuan pembatasan memori GPU bawaan sehingga penggunaan isolasi memori GPU tidak sesuai. Untuk menghindari situasi ini, Anda dapat memilih untuk tidak menginstal modul isolasi memori GPU pada node di mana berbagi GPU dikonfigurasi. Topik ini menjelaskan cara mengonfigurasi berbagi GPU tanpa isolasi memori GPU.

Prasyarat

Langkah 1: Buat kumpulan node

  1. Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Clusters.

  2. Di halaman Clusters, klik nama kluster yang ingin Anda kelola, lalu pilih Nodes > Node Pools di panel navigasi sebelah kiri.

  3. Di halaman Kumpulan Node, klik Buat Kumpulan Node.

  4. Di kotak dialog Buat Kumpulan Node, konfigurasikan kumpulan node dan klik Confirm Order. Tabel berikut menjelaskan parameter utama. Untuk informasi lebih lanjut tentang parameter lainnya, lihat Buat dan Kelola Kumpulan Node.

    Parameter

    Deskripsi

    Tipe Instans

    Atur Architecture ke GPU-accelerated dan pilih beberapa tipe instans yang dipercepat GPU. Dalam contoh ini, tipe instans yang menggunakan GPU V100 dipilih.

    Node yang Diharapkan

    Tentukan jumlah awal node dalam kumpulan node. Jika Anda tidak ingin membuat node dalam kumpulan node, atur parameter ini ke 0.

    Label Node

    Klik 1.jpg atur Key ke ack.node.gpu.schedule, lalu atur Value ke share. Aktifkan berbagi dan penjadwalan GPU.

    Untuk informasi lebih lanjut tentang label node, lihat Label untuk mengaktifkan kebijakan penjadwalan GPU.

Langkah 2: Kirim pekerjaan

  1. Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Clusters.

  2. Di halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel sebelah kiri, pilih Workloads > Jobs.

  3. Klik Create from YAML di bagian kiri atas halaman, salin konten berikut ke bagian Template, lalu klik Create:

    Klik untuk melihat konten YAML

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: tensorflow-mnist-share
    spec:
      parallelism: 1
      template:
        metadata:
          labels:
            app: tensorflow-mnist-share
        spec:
          containers:
          - name: tensorflow-mnist-share
            image: registry.cn-beijing.aliyuncs.com/ai-samples/gpushare-sample:tensorflow-1.5
            command:
            - python
            - tensorflow-sample-code/tfjob/docker/mnist/main.py
            - --max_steps=100000
            - --data_dir=tensorflow-sample-code/data
            resources:
              limits:
                aliyun.com/gpu-mem: 4 # Meminta 4 GiB memori.
            workingDir: /root
          restartPolicy: Never

    Deskripsi Template YAML:

    • Template YAML ini mendefinisikan pekerjaan TensorFlow MNIST. Pekerjaan ini membuat satu pod dan pod tersebut meminta 4 GiB memori.

    • Batas sumber daya aliyun.com/gpu-mem: 4 ditambahkan untuk meminta 4 GiB memori.

Langkah 3: Verifikasi konfigurasi

  1. Di halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel sebelah kiri, pilih Workloads > Pods.

  2. Klik Terminal di kolom Actions pod yang Anda buat, seperti tensorflow-mnist-multigpu-***. Pilih nama pod yang ingin Anda kelola, dan jalankan perintah berikut:

    nvidia-smi

    Output yang Diharapkan:

    Rab Jun 14 06:45:56 2023
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 515.105.01   Driver Version: 515.105.01   CUDA Version: 11.7     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |                               |                      |               MIG M. |
    |===============================+======================+======================|
    |   0  Tesla V100-SXM2...  On   | 00000000:00:09.0 Off |                    0 |
    | N/A   35C    P0    59W / 300W |    334MiB / 16384MiB |      0%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    +-----------------------------------------------------------------------------+

    Dalam contoh ini, GPU V100 digunakan. Output menunjukkan bahwa pod dapat menggunakan semua memori yang disediakan oleh GPU, yaitu berukuran 16.384 MiB. Ini berarti berbagi GPU diimplementasikan tanpa isolasi memori GPU. Jika isolasi memori GPU diaktifkan, ukuran memori yang ditampilkan di output akan sama dengan jumlah memori yang diminta oleh pod, yaitu 4 GiB dalam contoh ini.

    Pod menentukan jumlah memori GPU yang dapat digunakan berdasarkan variabel lingkungan berikut:

    ALIYUN_COM_GPU_MEM_CONTAINER=4 # Jumlah memori GPU yang dapat digunakan oleh pod.
    ALIYUN_COM_GPU_MEM_DEV=16 # Ukuran memori setiap GPU.

    Untuk menghitung rasio memori GPU yang dibutuhkan oleh aplikasi, gunakan rumus berikut:

    persentase = ALIYUN_COM_GPU_MEM_CONTAINER / ALIYUN_COM_GPU_MEM_DEV = 4 / 16 = 0,25