All Products
Search
Document Center

:Gunakan komponen ack-cgpu

Last Updated:Mar 09, 2026

Topik ini menjelaskan cara menggunakan cGPU dalam klaster khusus Container Service for Kubernetes (ACK) yang berisi node dengan akselerasi GPU setelah Anda menginstal komponen ack-cgpu.

Prasyarat

Komponen ack-cgpu telah diinstal di klaster Anda. Untuk informasi lebih lanjut, lihat Instal ack-cgpu.

Catatan penggunaan

Untuk node GPU yang dikelola dalam klaster Container Service for Kubernetes (ACK), perhatikan hal-hal berikut ketika meminta sumber daya GPU untuk aplikasi dan menggunakan sumber daya tersebut:

  • Jangan jalankan aplikasi berat GPU secara langsung pada node.

  • Jangan gunakan alat seperti Docker, Podman, atau nerdctl untuk membuat kontainer dan meminta sumber daya GPU. Sebagai contoh, jangan jalankan perintah docker run --gpus all atau docker run -e NVIDIA_VISIBLE_DEVICES=all dan jalankan aplikasi berat GPU.

  • Jangan tambahkan variabel lingkungan NVIDIA_VISIBLE_DEVICES=all atau NVIDIA_VISIBLE_DEVICES=<GPU ID> ke bagian env dalam file YAML pod. Jangan gunakan variabel lingkungan NVIDIA_VISIBLE_DEVICES untuk meminta sumber daya GPU untuk pod dan menjalankan aplikasi berat GPU.

  • Jangan atur NVIDIA_VISIBLE_DEVICES=all dan jalankan aplikasi berat GPU saat Anda membangun gambar kontainer jika variabel lingkungan NVIDIA_VISIBLE_DEVICES tidak ditentukan dalam file YAML pod.

  • Jangan tambahkan privileged: true ke bagian securityContext dalam file YAML pod dan jalankan aplikasi berat GPU.

Risiko potensial berikut mungkin terjadi jika Anda menggunakan metode sebelumnya untuk meminta sumber daya GPU untuk aplikasi Anda:

  • Jika Anda menggunakan salah satu metode sebelumnya untuk meminta sumber daya GPU pada node tetapi tidak menentukan detail dalam buku besar sumber daya perangkat scheduler, informasi alokasi sumber daya GPU aktual mungkin berbeda dari yang ada dalam buku besar sumber daya perangkat scheduler. Dalam skenario ini, scheduler masih dapat menjadwalkan beberapa pod yang meminta sumber daya GPU ke node tersebut. Akibatnya, aplikasi Anda mungkin bersaing untuk mendapatkan sumber daya yang disediakan oleh GPU yang sama, seperti meminta sumber daya dari GPU yang sama, dan beberapa aplikasi mungkin gagal memulai karena sumber daya GPU yang tidak mencukupi.

  • Menggunakan metode sebelumnya juga dapat menyebabkan masalah lain yang tidak diketahui, seperti masalah yang dilaporkan oleh komunitas NVIDIA.

Prosedur

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

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

  3. Masuk ke node master dan jalankan perintah berikut untuk memeriksa status berbagi GPU klaster:

    Catatan
    kubectl inspect cgpu

    Output yang diharapkan:

    NAME                     IPADDRESS    GPU0(Allocated/Total)  GPU1(Allocated/Total)  GPU Memory(GiB)
    cn-beijing.192.168.XX.XX   192.168.XX.XX  0/7                    0/7                    0/14
    ---------------------------------------------------------------------
    Allocated/Total GPU Memory In Cluster:
    0/14 (0%)
    Catatan

    Untuk memeriksa informasi rinci tentang berbagi GPU, jalankan perintah kubectl inspect cgpu -d.

  4. Di panel navigasi kiri, pilih Workloads > Jobs. Di pojok kanan atas halaman Jobs, klik Create from YAML. Pada halaman Create, pilih namespace dari daftar drop-down Namespace dan pilih template yang tersedia atau template kustom dari daftar drop-down Sample Template. Masukkan konten berikut ke dalam editor kode, lalu klik Create.

    apiVersion: v1
    kind: Pod
    metadata:
      name: gpu-share-sample
    spec:
      containers:
      - name: gpu-share-sample
        image: registry.cn-hangzhou.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:
            # Pod meminta total 3 GiB memori GPU.
            aliyun.com/gpu-mem: 3 # Tentukan jumlah memori GPU yang diminta.
        workingDir: /root                    
  5. Jalankan perintah berikut lagi di node master untuk memeriksa penggunaan memori GPU:

    kubectl inspect cgpu

    Output yang diharapkan:

    NAME                      IPADDRESS      GPU0(Allocated/Total)  GPU Memory(GiB)
    cn-beijing.192.168.XX.XX  192.168.XX.XX  3/14                   3/14
    ---------------------------------------------------------------------
    Allocated/Total GPU Memory In Cluster:
    3/14 (21%)

    Output menunjukkan bahwa total memori GPU node cn-beijing.192.168.XX.XX adalah 14 GiB dan 3 GiB memori GPU telah dialokasikan.

Verifikasi hasil

Anda dapat menggunakan metode berikut untuk memeriksa apakah isolasi memori GPU diaktifkan untuk node.

  1. Masuk ke node master.

  2. Jalankan perintah berikut untuk mencetak log aplikasi yang diterapkan dan memeriksa apakah isolasi memori GPU diaktifkan:

    kubectl logs gpu-share-sample --tail=1

    Output yang diharapkan:

    2023-08-07 09:08:13.931003: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1326] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 2832 MB memory) -> physical GPU (device: 0, name: Tesla T4, pci bus id: 0000:00:07.0, compute capability: 7.5)

    Output menunjukkan bahwa 2.832 MiB memori GPU diminta oleh kontainer.

  3. Jalankan perintah berikut untuk masuk ke kontainer dan melihat jumlah memori GPU yang dialokasikan ke kontainer:

    kubectl exec -it gpu-share-sample nvidia-smi

    Output yang diharapkan:

    Mon Aug 7 08:52:18 2023
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 418.87.01    Driver Version: 418.87.01    CUDA Version: 10.1     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |===============================+======================+======================|
    |   0  Tesla T4            On   | 00000000:00:07.0 Off |                    0 |
    | N/A   41C    P0    26W /  70W |   3043MiB /  3231MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                       GPU Memory |
    |  GPU       PID   Type   Process name                             Usage      |
    |=============================================================================|
    +-----------------------------------------------------------------------------+

    Output menunjukkan bahwa jumlah memori GPU yang dialokasikan ke kontainer adalah 3.231 MiB.

  4. Jalankan perintah berikut untuk memeriksa total memori GPU node dengan akselerasi GPU tempat aplikasi diterapkan.

    nvidia-smi

    Output yang diharapkan:

    Mon Aug  7 09:18:26 2023 
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 418.87.01    Driver Version: 418.87.01    CUDA Version: 10.1     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |===============================+======================+======================|
    |   0  Tesla T4            On   | 00000000:00:07.0 Off |                    0 |
    | N/A   40C    P0    26W /  70W |   3053MiB / 15079MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                       GPU Memory |
    |  GPU       PID   Type   Process name                             Usage      |
    |=============================================================================|
    |    0      8796      C   python3                                     3043MiB |
    +-----------------------------------------------------------------------------+
    
                            

    Output menunjukkan bahwa total memori GPU node adalah 15.079 MiB dan 3.053 MiB memori GPU dialokasikan ke kontainer.

Referensi