如何编写 GPU 工作池以在 bash 中同时运行多个任务?

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

假设我的电脑上有 4 个 CUDA 设备(0,1,2,3),有 10 个任务要运行,每个任务都是一个脚本,名为

run01.sh
,
run02.sh
, ...,
run10.sh
.

问题是,每个任务仅使用 1 个 GPU,我想编写一个 bash 脚本来同时运行这 10 个任务,以充分利用 4 个 CUDA 设备。我怎样才能做到?

bash parallel-processing
1个回答
0
投票

如果您的 GPU 有足够的 RAM 来同时托管 3 个任务,那么我能想到的最简单的脚本是:

#!/bin/bash

for i in {01..10}
do
    CUDA_VISIBLE_DEVICES=$((10#$i % 4)) ./run"$i".sh &
done

wait
© www.soinside.com 2019 - 2024. All rights reserved.