见缝插针式炼丹

见缝插针式炼丹

穷人的烦恼

是不是每当你准备训练时就发现GPU被其他小伙伴占用了呢?

+-------------------------------+----------------------+----------------------+
|   2  NVIDIA GeForce ...  Off  | 00000000:5E:00.0 Off |                  N/A |
| 69%   61C    P2   306W / 350W |  11181MiB / 24268MiB |     68%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   3  NVIDIA GeForce ...  Off  | 00000000:86:00.0 Off |                  N/A |
| 70%   58C    P2   158W / 350W |  13835MiB / 24268MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

当然这种情况最简单的方法就是把别人的进程kill掉啦,或者让老板再买几块,咳咳。
感觉还是第一种比较现实,但是做人还是要有节操,只能等他训练完我们再干啦。
为了在他训练完后及时点燃我们的丹炉,需要一个自动化的脚本,在显卡空闲后立马开始我们的训练。

解决方案

实时监控GPU占用情况,当被监控的GPU Mem use降低到某一值以下,立马开始我们的训练。
下面上脚本 wait_for_train.sh

#!/bin/bash
GPU_ID=$1
MEM_USED=999
while [[ $MEM_USED -gt 11 ]];
do
MEM_USED=$(nvidia-smi --id=$GPU_ID --query-gpu='memory.used' --format=csv,noheader | awk '{print $1}')
echo "GPU"$GPU_ID $MEM_USED"MiB"
sleep 60s
done

export CUDA_VISIBLE_DEVICES=$1
python3 train.py ******

这样我们只用在终端运行:

wait_for_train.sh 3

这样在gpu3 空闲后,我们的丹炉就能自行启动了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值