为了防止做深度学习的时候出现较长时间的GPU空间,用bash写了个GPU检测的程序。
主要就是通过nvidia-smi
的API获取当前节点上GPU的使用情况,如果空闲内存小于所需的最小内存就一直等待,大于则执行code.sh
文件。
#!/bin/bash
# use 'nvidia-smi' API to get used memory
memory=`nvidia-smi --format=csv,noheader --query-gpu=memory.free -i 0`
memory=${memory: 0: -3}
memory_1=`nvidia-smi --format=csv,noheader --query-gpu=memory.free -i 1`
memory_1=${memory_1: 0: -3}
echo ${memory_1}
# set model size
min_size=10000
while ((memory<min_size||memory_1<min_size))
do
memory=`nvidia-smi --format=csv,noheader --query-gpu=memory.free -i 0`
memory=${memory: 0: -3}
echo "Out of Memory, Wait to Execute..."
sleep 3
done
# Execute code
echo $(bash code.sh)