命令行指定显卡GPU运行python脚本
在大型机构分配的服务器集群中,需要使用GPU的程序默认都会在第一张卡上进行,如果第一张卡倍别人占用或者显存不够的情况下,程序就会报错说没有显存容量,所以能够合理地利用GPU资源能帮助你更快更好地跑出实验效果。因此,这里特地总结了一些指定GPU运行python程序的教程供大家学习。
1、指定使用GPU0运行脚本(默认是第一张显卡, 0代表第一张显卡的id,其他的以此类推)
第一种方式:
CUDA_VISIBLE_DEVICES=0 python ***.py
第二种方式:在python脚本文件中添加如下内容进行指定:
import osos.environ["CUDA_VISIBLE_DEVICES"] = "0"
如果在脚本文件中已经写明了第二种方式,则不支持第一种方式的指定。
2、指定使用多张显卡运行脚本
在GPU的id为0和1的两张显卡上运行***.py程序:
CUDA_VISIBLE_DEVICES=0,1 python ***.py
3、在单张显卡的情况下开启多个进程运行脚本
命令行程序如下:(其中NUM_GPUS_YOU_HAVE代表运行的进程数)
说明:程序会根据卡的容量分配成两个程序,不一定在两张卡,有时候一张卡的容量够则会在该张卡上开启新的进程。
python -m torch.distributed.launch --nproc_per_node=NUM_GPUS_YOU_HAVE ***.py
5、查看GPU状态
1、单次查看
nvidia-smi
2、隔一秒查看GPU状态:
watch -n 1 nvidia-smi