【Linux shell命令】实验室监控空闲GPU,及时运行python代码程序

1. 环境配置

下载安装 gpustat

pip install gpustat

2. 脚本编写

假设我有一段需要运行的python代码如下:

CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --master_port 10025 --nproc_per_node=2 tools/relation_train_net.py --config-file "configs/e2e_relation_X_101_32_8_FPN_1x.yaml" MODEL.ROI_RELATION_HEAD.USE_GT_BOX True MODEL.ROI_RELATION_HEAD.USE_GT_OBJECT_LABEL True MODEL.ROI_RELATION_HEAD.PREDICTOR MotifPredictor SOLVER.IMS_PER_BATCH 12 TEST.IMS_PER_BATCH 2 DTYPE "float16" SOLVER.MAX_ITER 50000 SOLVER.VAL_PERIOD 2000 SOLVER.CHECKPOINT_PERIOD 2000 GLOVE_DIR /home/kaihua/glove MODEL.PRETRAINED_DETECTOR_CKPT /home/kaihua/checkpoints/pretrained_faster_rcnn/model_final.pth OUTPUT_DIR /home/kaihua/checkpoints/motif-precls-exmp

现在我需要把它放到一个shell文件中,方便等下程序传入空闲的GPU序号。

新建一个shell脚本,例子如下:

vi run_code.sh

将我要运行的代码复制到这个文件中,这里需要做一点修改,将代码中的CUDA_VISIBLE_DEVICES=0,1改为CUDA_VISIBLE_DEVICES=$1,$2,这样等下传入run_code.sh的前两个GPU序号就会被获取到(不同数量的GPU需要灵活处理,以此类推很容易吧?)。

执行:wq保存退出。



再新建一个shell脚本,作为GPU监控脚本,例子如下:

vi my_gpu_shell.sh

将下面的代码复制到这个文件中:

while true
do
  # 改动项1 relation_train_net 这里改成你命令中包含的字符串
  # 比如我要运行的代码如下:
  # CUDA_VISIBLE_DEVICES=0,1 python ... --nproc_per_node=2 ./relation_train_net.py ...
  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值