安装
// 首先,创建一个虚拟环境 conda create -n my_paddle python=3.8 // 安装Paddle GPU版 // 没有加版本号会自动下载最新版 pip install paddlepaddle-gpu // 安装PaddleNLP pip install paddlenlp
例子:
以官方的Example: sentence_transformers为例
// 下载源码 git clone https://github.com/PaddlePaddle/PaddleNLP.git // 进入项目根目录 cd PaddleNLP/examples/text_matching/sentence_transformers // 运行 // 先指定gpu 编号, 从0开始的 export CUDA_VISIBLE_DEVICES=2 // 训练 由于只有一个GPU可见,默认用可用列表中的第一个 python train.py --device gpu --save_dir ./checkpoint
// 预测
python predict.py --device gpu --params_path checkpoint/model_9900/model_state.pdparams
paddle还支持多gpu并行训练,使用 paddle.distributed.launch
paddle.distributed.launch
启动多卡训练时,设置 --log_dir
参数会将每张卡的日志保存在设置的文件夹下。
// 训练 python -m paddle.distributed.launch train.py --device gpu --save_dir ./checkpoint // 预测 python -m paddle.distributed.launch predict.py --device gpu --params_path checkpoints/model_9900/model_state.pdparams
用的默认的 ernie-tlny
模型和 LCQMC
数据集,
离谱,每次预测结果都不相同xs
最后记录一下GPU的使用
为了不让自己霸占所有的GPU,要手动指定GPU
先看看GPU使用情况: nvidia-smi<c/ode>
设置GPU可见情况: export CUDA_VISIBLE_DEVICES=2
或者多个 export CUDA_VISIBLE_DEVICES=0,2
等等
查看CUDA_VISIBLE_DEVICES: echo $CUDA_VISIBLE_DEVICES
用pytorch查看可用的gpu列表:
>>> import torch >>> available_gpus = [torch.cuda.device(i) for i in range(torch.cuda.device_count())] >>> available_gpus [<torch.cuda.device object at 0x7f2585882b50>] # 获取可用数量 print(torch.cuda.device_count())
监控系统资源:htop
,比top
更直观一点
监控GPU使用情况: watch -n 1 nvidia-smi
,这里是1s打印一次
参考链接:
1. stack overflow_Change default GPU in TensorFlow