1.引言
我们经常使用GPU来训练和部署神经网络,因为与CPU相比,它提供了更多的计算能力。在本教程中,我们将介绍如何将GPU与MXNet GluonTS一起使用。
首先,确保您的机器中至少有一个Nvidia GPU,并正确安装了CUDA以及CUDNN。但是在引入import mxnet后出现下面的问题:
MXNet的OSError: libnccl.so.2: cannot open shared object file: No such file or directory
本文将会解决这一问题,亲测好用。
2.博主服务器配置
- Ubuntu 18.04
- cuda11.3
- cudnn 8.2.1
3.安装
(1)首先安装mxnet gpu版本,根据自己的cuda版本,如果是10.0那么就是mxnet-cu100以此类推。
pip install mxnet-cu113
(2)安装gluonts.
pip install gluonts
4.解决问题
(1)去 NVIDIA 官网下载(Log in | NVIDIA Developer)跟你 CUDA 版本和操作系统(我的是Ubuntu18.04)适配的 NCCL 文件
(2) 配置下载的deb文件
sudo dpkg -i nccl-local-repo-ubuntu1804-2.9.9-cuda11.3_1.0-1_amd64.deb
sudo apt update
sudo apt install libnccl2=2.9.9-1+cuda11.3 libnccl-dev=2.9.9-1+cuda11.3
(3)你可以检查你的mxnet当前版本,以及可用的GPU数目:
import mxnet as mx
print(f'Number of GPUs: {mx.context.num_gpus()}')
然后就解决了,可以利用 GPU 跑 MXNet GluonTS 的深度学习模型做时间序列预测项目。
(3)指定第四块GPU卡参与训练(它应该自动检测GPU,但你可以强制它)
trainer=Trainer(
ctx=mxnet.context.gpu(3),
epochs=train_conf.max_epochs,
num_batches_per_epoch=train_conf.num_batches_per_epoch,
)
从下面的图可以看出,指定了第四块卡训练,显存得到占用。