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
, tambahkanuse_nvidia_mps
ke parameterworker_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:
- 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.
- Aktifkan pertumbuhan memori dengan memanggil
- Gunakan perangkat logis dengan batas memori yang sesuai.
- Untuk performa yang optimal, terapkan penggunaan GPU jika memungkinkan dengan menggunakan penempatan perangkat soft atau penempatan manual.
Langkah selanjutnya
- Untuk meninjau praktik terbaik lainnya, lihat GPU dan paralelisme pekerja.