利用MPS提升GPU利用率:深度学习推理优化实践

版权申诉
5星 · 超过95%的资源 1 下载量 70 浏览量 更新于2024-07-06 收藏 675KB PDF 举报
"MPS技术 - 深度学习推理优化与部署实践.pdf" 本文档主要探讨了在深度学习推理优化和部署过程中,如何利用MPS(Multi-Process Service)技术提升GPU的利用率,以及在实际业务场景中的应用。文档作者陈名华来自vivoAI研究院,分享了在推荐业务中采用MPS技术的经验。 首先,背景介绍提到,作者所在的团队主要负责推荐业务,面临的问题是CPU推理效率不足和GPU利用率低。为了解决这些问题,他们尝试过多种方案,如拆图、结合Triton和TensorRT进行优化。随着团队结构的变化和技术调研,他们决定尝试使用MPS技术。 MPS技术是CUDA编程接口的一部分,它在CUDADriver层自动调用,对程序透明,通过算子并行来提高GPU的使用率。MPS使得多个进程可以在同一GPU上并发执行,从而充分利用GPU资源,尤其适用于需要大量计算的任务,如深度学习推理。 在使用MPS技术的过程中,他们构建了自己的推理引擎,该引擎基于TensorFlow,并采用了Rust语言进行开发,以支持多进程模型。在物理机上运行时,每台物理机配置了4张T4卡,每个GPU上有一个MPS服务器进程和多个推理服务进程。在Kubernetes(K8S)环境中,每个Pod包含一张T4卡,同样配置了MPS控制和服务进程,以及多个推理进程。 应用MPS技术后,推荐业务中的GPU通用问题得到了解决,显著提高了GPU的利用率和业务吞吐量,同时也降低了运营成本。这表明MPS对于优化大规模推荐系统的性能有着显著的效果,是深度学习推理部署的一个重要优化手段。 总结来说,MPS技术是提升深度学习推理效率的关键工具,尤其是在GPU资源受限的环境中。通过在多个进程中并行执行计算任务,MPS能够充分利用GPU的计算能力,为推荐系统和其他高负载的AI应用提供更强的性能支撑。在实际部署时,需要根据硬件环境和业务需求调整MPS的配置,以达到最佳的性能效果。

解释这些参数optional arguments: -h, --help show this help message and exit --host HOST --port PORT --config-installer Open config web page, mainly for windows installer (default: False) --load-installer-config Load all cmd args from installer config file (default: False) --installer-config INSTALLER_CONFIG Config file for windows installer (default: None) --model {lama,ldm,zits,mat,fcf,sd1.5,cv2,manga,sd2,paint_by_example,instruct_pix2pix} --no-half Using full precision model. If your generate result is always black or green, use this argument. (sd/paint_by_exmaple) (default: False) --cpu-offload Offloads all models to CPU, significantly reducing vRAM usage. (sd/paint_by_example) (default: False) --disable-nsfw Disable NSFW checker. (sd/paint_by_example) (default: False) --sd-cpu-textencoder Run Stable Diffusion text encoder model on CPU to save GPU memory. (default: False) --local-files-only Use local files only, not connect to Hugging Face server. (sd/paint_by_example) (default: False) --enable-xformers Enable xFormers optimizations. Requires xformers package has been installed. See: https://github.com/facebookresearch/xformers (sd/paint_by_example) (default: False) --device {cuda,cpu,mps} --gui Launch Lama Cleaner as desktop app (default: False) --no-gui-auto-close Prevent backend auto close after the GUI window closed. (default: False) --gui-size GUI_SIZE GUI_SIZE Set window size for GUI (default: [1600, 1000]) --input INPUT If input is image, it will be loaded by default. If input is directory, you can browse and select image in file manager. (default: None) --output-dir OUTPUT_DIR Result images will be saved to output directory automatically without confirmation. (default: None) --model-dir MODEL_DIR Model download directory (by setting XDG_CACHE_HOME environment variable), by default model downloaded to ~/.cache (default: /Users/cwq/.cache) --disable-model-switch Disable model switch in frontend (default: False)

2023-06-09 上传