All Products
Search
Document Center

Container Service for Kubernetes:Aktifkan Berbagi Multi-GPU dengan Penjadwalan GPU Bersama

Last Updated:Mar 25, 2026

ACK managed cluster Pro edition mendukung shared GPU. Shared GPU memungkinkan penjadwalan GPU bersama dan isolasi memori GPU di Kubernetes. Topik ini menjelaskan cara mengonfigurasi kebijakan berbagi multi-GPU untuk penjadwalan GPU bersama.

Prasyarat

Pengantar Berbagi Multi-GPU

Penting

Saat ini, berbagi multi-GPU mendukung isolasi memori GPU dengan berbagi daya komputasi, tetapi tidak mendukung alokasi daya komputasi.

Saat mengembangkan model, Anda mungkin memerlukan beberapa kartu GPU meskipun tidak membutuhkan sumber daya dalam jumlah besar. Mengalokasikan seluruh kartu GPU ke platform pengembangan dapat menyebabkan pemborosan sumber daya. Berbagi multi-GPU melalui penjadwalan GPU bersama menyelesaikan masalah ini.

Kebijakan berbagi multi-GPU berarti sebuah aplikasi meminta N GiB memori GPU yang dialokasikan oleh M kartu GPU, dengan setiap kartu menyediakan N/M GiB. (N/M harus berupa bilangan bulat, dan M kartu GPU tersebut harus berada pada node Kubernetes yang sama.) Sebagai contoh, jika Anda meminta 8 GiB memori GPU dan menentukan 2 kartu GPU, setiap kartu akan menyediakan 4 GiB.

  • Berbagi GPU tunggal: Sebuah Pod hanya meminta satu kartu GPU dan menggunakan sebagian sumber dayanya.

  • Berbagi multi-GPU: Sebuah Pod meminta beberapa kartu GPU. Setiap GPU menyediakan sebagian sumber dayanya, dan jumlah sumber daya yang disediakan oleh setiap GPU adalah sama.

image

Tetapkan Kebijakan Berbagi Multi-GPU

  1. Masuk ke Container Service Management Console . Di panel navigasi sebelah kiri, klik Clusters.

  2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi sebelah kiri, klik Workloads > Jobs.

  3. Pada halaman Jobs, klik Create from YAML. Salin konten berikut ke area Template, lalu klik Create.

    Perluas untuk melihat detail YAML

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: tensorflow-mnist-multigpu
    spec:
      parallelism: 1
      template:
        metadata:
          labels:
            app: tensorflow-mnist-multigpu
            # Nyatakan 8 GiB memori GPU dalam label Pod, disediakan oleh 2 kartu GPU, dengan masing-masing kartu menyediakan 4 GiB memori GPU.
            aliyun.com/gpu-count: "2"
        spec:
          containers:
          - name: tensorflow-mnist-multigpu
            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: 8 # Meminta total 8 GiB memori GPU.
            workingDir: /root
          restartPolicy: Never

    File YAML dijelaskan sebagai berikut:

    • YAML ini mendefinisikan sebuah Job yang menggunakan contoh TensorFlow MNIST. Tugas ini meminta 8 GiB memori GPU dan 2 kartu GPU, dengan setiap kartu GPU menyediakan 4 GiB memori GPU.

    • Anda dapat meminta 2 kartu GPU dengan mendefinisikan label aliyun.com/gpu-count: 2 dalam label Pod.

    • Anda dapat meminta 8 GiB memori GPU dengan mendefinisikan aliyun.com/gpu-mem: 8 dalam resources.limits Pod.

Verifikasi Kebijakan Berbagi Multi-GPU

  1. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi sebelah kiri, klik Workloads > Pods.

  2. Pada baris container yang telah dibuat, misalnya tensorflow-mnist-multigpu-***, klik Actions. Lalu, klik Terminal untuk mengakses container. Jalankan perintah berikut:

    nvidia-smi

    Output yang diharapkan:

    Wed Jun 14 03:24:14 2023
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 470.161.03   Driver Version: 470.161.03   CUDA Version: 11.4     |
    |-------------------------------+----------------------+----------------------+
    | 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   38C    P0    61W / 300W |    569MiB /  4309MiB |      2%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
    |   1  Tesla V100-SXM2...  On   | 00000000:00:0A.0 Off |                    0 |
    | N/A   36C    P0    61W / 300W |    381MiB /  4309MiB |      0%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    +-----------------------------------------------------------------------------+

    Output tersebut menunjukkan bahwa container hanya dapat menggunakan 2 kartu GPU. Setiap kartu memiliki total memori GPU sebesar 4309 MiB (setara dengan 4 GiB memori GPU yang diminta, sedangkan memori GPU aktual per kartu adalah 16160 MiB).

  3. Pada baris container yang telah dibuat, misalnya tensorflow-mnist-multigpu-***, klik Actions. Lalu, klik Logs untuk melihat log container. Anda akan melihat informasi penting berikut:

    totalMemory: 4.21GiB freeMemory: 3.91GiB
    totalMemory: 4.21GiB freeMemory: 3.91GiB

    Informasi tersebut menunjukkan bahwa dalam informasi perangkat yang diambil oleh aplikasi, total memori GPU setiap kartu sekitar 4 GiB, bukan memori GPU aktual sebesar 16160 MiB per kartu. Hal ini berarti memori GPU yang digunakan oleh aplikasi telah diisolasi.