我有一个 bash 文件 (.sh),其中包含数百行来执行 python 脚本。每行调用具有不同参数的 python 脚本来处理输入视频。为了处理视频,python 脚本可以访问并使用我机器上的两个 GPU 之一。
我想使用 GNU parallel(或 xargs 或 &)并行执行每个 python 脚本。但是,我在执行并行时遇到 cuda 内存不足错误,因为一个或两个 GPU 已满。我希望 GPU 并行等待一些作业完成,以便在 GPU 上有一些可用空间。否则,GPU 并行只能正确处理我的数百个 python 脚本的一个子部分(每个脚本处理不同的输入视频)。
谢谢你的回答!
目前,我尝试了 GNU parallel 和 &。它们都只考虑在 GPU 上正确“加载”的 python 脚本。一旦它们已满,其他 python 脚本将不会被处理,即使其他的已经完成。
像这样的东西:
cat python-lines.sh |
parallel -j2 CUDA_VISIBLE_DEVICES='$(({%} - 1))' {}