Meningkatkan performa pada GPU bersama menggunakan NVIDIA MPS

Jika menjalankan beberapa proses SDK di GPU Dataflow bersama, Anda dapat meningkatkan efisiensi dan pemanfaatan GPU dengan mengaktifkan Layanan Multi-Proses (MPS) NVIDIA. MPS mendukung pemrosesan serentak di GPU dengan memungkinkan proses untuk berbagi konteks CUDA dan resource penjadwalan. MPS dapat mengurangi biaya pengalihan konteks, meningkatkan paralelisme, dan mengurangi persyaratan penyimpanan.

Alur kerja target adalah pipeline Python yang berjalan di pekerja dengan lebih dari satu vCPU.

MPS adalah teknologi NVIDIA yang mengimplementasikan CUDA API, platform NVIDIA yang mendukung komputasi GPU tujuan umum. Untuk informasi selengkapnya, lihat panduan pengguna Layanan Multiproses NVIDIA.

Manfaat

  • Meningkatkan pemrosesan paralel dan throughput secara keseluruhan untuk pipeline GPU, terutama untuk workload 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 melebihi memori GPU yang tersedia, terutama untuk kasus penggunaan yang melibatkan pemuatan model machine learning yang 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 MPS.

Mengaktifkan MPS

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

  • Di 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.
  2. Gunakan perangkat logis dengan batas memori yang sesuai.
  3. Untuk performa yang optimal, terapkan penggunaan GPU jika memungkinkan dengan menggunakan penempatan perangkat soft atau penempatan manual.

Langkah selanjutnya