繁体   English   中英

限制 MXNet GPU Memory 使用

[英]Limit MXNet GPU Memory Usage

有没有一种方法可以限制此 Model 使用的 Memory 分配以允许并发模型运行?

我目前正在使用基于 MXNet构建的 InsightFace。

加载第一个 model 后,GPU 内存统计反映:

utilization.gpu 74 utilization.memory 0 memory.free 13353 memory.used 2777 memory.total 16130

运行第一次推理后,它会膨胀,但GPU Utilization仍然很低,为3

utilization.gpu 3 utilization.memory 0 memory.free 9789 memory.used 6341 memory.total 16130

这让我觉得我们应该能够在同一个 GPU 上加载更多模型,但不幸的是 memory 已经分配给 MXNet。


尝试过的解决方案:

  1. Trying ctx.empty_cache() between calls to the model - https://mxnet.apache.org/api/python/docs/api/mxnet/context/index.html#mxnet.context.Context.empty_cache
  2. 尝试MXNET_GPU_MEM_POOL_RESERVE:60 -https://discuss.mxnet.io/t/how-to-limit-gpu-memory-usage/6304/3
  3. 使用gc.collect() 重置 GPU memory 使用 Keras 1.2.2 和 MXnet 后端

但这些都不起作用。

通过查看MXNet 的环境变量,答案似乎是否定的。


您可以尝试设置MXNET_MEMORY_OPT=1MXNET_BACKWARD_DO_MIRROR=1 ,它们记录在我共享的链接的“内存优化”部分。

此外,请确保min(MXNET_EXEC_NUM_TEMP, MXNET_GPU_WORKER_NTHREADS) = 1对您来说是正确的,如果您使用此环境变量的默认值,则应该是这样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM