如何并行执行多个使用 2 个 GPU 的 python 脚本并避免 cuda 内存不足?

问题描述 投票:0回答:1

我有一个 bash 文件 (.sh),其中包含数百行来执行 python 脚本。每行调用具有不同参数的 python 脚本来处理输入视频。为了处理视频,python 脚本可以访问并使用我机器上的两个 GPU 之一。

我想使用 GNU parallel(或 xargs 或 &)并行执行每个 python 脚本。但是,我在执行并行时遇到 cuda 内存不足错误,因为一个或两个 GPU 已满。我希望 GPU 并行等待一些作业完成,以便在 GPU 上有一些可用空间。否则,GPU 并行只能正确处理我的数百个 python 脚本的一个子部分(每个脚本处理不同的输入视频)。

谢谢你的回答!

目前,我尝试了 GNU parallel 和 &。它们都只考虑在 GPU 上正确“加载”的 python 脚本。一旦它们已满,其他 python 脚本将不会被处理,即使其他的已经完成。

python parallel-processing cuda out-of-memory xargs
1个回答
0
投票

像这样的东西:

cat python-lines.sh |
  parallel -j2 CUDA_VISIBLE_DEVICES='$(({%} - 1))' {}
© www.soinside.com 2019 - 2024. All rights reserved.