Tingkatkan performa pada GPU bersama menggunakan NVIDIA MPS

Jika menjalankan beberapa proses SDK pada Dataflow GPU bersama, Anda dapat meningkatkan efisiensi dan pemanfaatan GPU dengan mengaktifkan NVIDIA Multi-Process Service (MPS). MPS mendukung pemrosesan serentak di GPU dengan memungkinkan proses berbagi konteks CUDA dan menjadwalkan resource. MPS dapat mengurangi biaya peralihan konteks, meningkatkan paralelisme, dan mengurangi persyaratan penyimpanan.

Alur kerja target adalah pipeline Python yang berjalan pada pekerja yang memiliki lebih dari satu vCPU.

MPS adalah teknologi NVIDIA yang mengimplementasikan CUDA API, sebuah platform NVIDIA yang mendukung komputasi GPU untuk tujuan umum. Untuk mengetahui informasi selengkapnya, lihat panduan pengguna Layanan Multi-Proses NVIDIA.

Manfaat

  • Meningkatkan pemrosesan paralel dan throughput keseluruhan untuk pipeline GPU, terutama untuk beban kerja dengan penggunaan resource GPU yang rendah.
  • Meningkatkan penggunaan GPU, yang dapat mengurangi biaya Anda.

Dukungan dan batasan

  • MPS hanya didukung pada pekerja Dataflow yang menggunakan satu GPU.
  • Pipeline tidak dapat menggunakan opsi pipeline yang membatasi paralelisme.
  • Hindari melampaui memori GPU yang tersedia, terutama untuk kasus penggunaan yang melibatkan pemuatan model machine learning besar. Seimbangkan jumlah vCPU dan proses SDK dengan memori GPU yang tersedia yang diperlukan proses ini.
  • MPS tidak memengaruhi konkurensi operasi non-GPU.
  • Dataflow Prime tidak mendukung MP.

Aktifkan MPS

Saat Anda menjalankan pipeline dengan GPU, aktifkan MPS dengan melakukan hal berikut:

  • Pada opsi pipeline --dataflow_service_options, tambahkan use_nvidia_mps ke parameter worker_accelerator.
  • Tetapkan count ke 1.
  • Jangan gunakan opsi pipeline --experiments=no_use_multiple_sdk_containers.

Opsi pipeline --dataflow_service_options terlihat seperti berikut:

--dataflow_service_options="worker_accelerator=type:GPU_TYPE;count:1;install-nvidia-driver;use_nvidia_mps"

Jika Anda menggunakan TensorFlow dan mengaktifkan MPS, lakukan hal berikut:

  1. Aktifkan alokasi memori dinamis di GPU. Gunakan salah satu opsi TensorFlow berikut:
    • Aktifkan pertumbuhan memori dengan memanggil tf.config.experimental.set_memory_growth(gpu, True).
    • Tetapkan variabel lingkungan TF_FORCE_GPU_ALLOW_GROWTH ke benar (true).
  2. Gunakan perangkat logis dengan batas memori yang sesuai.
  3. Untuk performa yang optimal, terapkan penggunaan GPU jika memungkinkan dengan menggunakan penempatan perangkat lunak atau penempatan manual.

Langkah selanjutnya