搭建服务器基础环境
英伟达GPU在Docker容器内的调用是怎么实现的呢?主要有三种方法:
- 第一种方法是在容器内部署一编NVIDIA GPU驱动和CUDA包;
- 第二种方法,是把宿主服务器的GPU驱动文件映射到容器内部使用;
- 第三种方法,不再映射宿主服务器GPU驱动,而是直接把宿主服务器的GPU运行时(runtime)映射到容器,可以认为是第二种方法的优化。方法一流程繁琐,不推荐;方法二是NVIDIA早前提供的方案,对应的工具包为nvidia-docker1库包,但目前已停止维护;方法三是NVIDIA目前主推的方案,对应的工具为nvidia-docker2库包,但是对于19.03以上Docker版本,NVIDIA还推出更加优秀的nvidia-container-toolkit工具取代nvidia-docker2。nvidia-container-toolkit本质上就是最新版的nvidia-docker2,故以下教程也会基于19.03以上版本的Docker-ce(备注:Docker-ce是Docker的社区版本)。
安装英伟达GPU驱动
在容器内使用GPU,需要确保宿主服务器上的GPU驱动已被正常安装。由于NVIDIA NGC提供的容器内已经安装CUDA,因此宿主服务器可以只安装GPU驱动而不安装CUDA,但需要注意的是,宿主服务器的GPU驱动版本决定了容器内支持的GPU版本。假设宿主服务器的GPU驱动版本为410,而容器内的CUDA版本为11.1,则在容器内是无法正常使用GPU训练模型的,因为GPU驱动和CUDA版本不兼容。有关它们之间的版本依赖关系可以查看官方给出的CUDA版本兼容说明页面。
有关在服务器上安装英伟达GPU驱动的方法可参考GPU云服务器安装Tesla驱动,此处不做重点介绍。
安装Docker-ce
注意:要求Docker-ce版本号高于19.03。
修改Docker挂载路径和容量限制
搭建NGC环境
搭建TAO Toolkit环境
搭建Jupyter Lab环境
直接进入NGC容器内进行模型训练
使用TAO Toolkit进行模型训练
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
请登录后查看评论内容