

GPU容器环境搭建
source link: https://www.zoucz.com/blog/2022/04/26/20baff30-c50f-11ec-9fe7-534bbf9f369d/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

GPU容器环境搭建
近期做了一些机器学习平台开放API接入的事情,涉及到一些环境搭建的工作,整理一份文档,帮助理解,并作为备忘。
转一张来自知乎的图,对整个结构描述的比较清晰。 我要说话
我要说话
从底层到上层依次是:硬件 → 操作系统 → 驱动程序 → cuda开发工具包 → GPU运算加速库 → 机器学习框架。我要说话
显卡驱动程序
显卡硬件,在机器学习领域,基本上都是 nvidia 家的。插上显卡后,需要安装显卡驱动程序,才能正常识别显卡,并使用显卡功能。
驱动安装的过程可以从 nvidia 官网找到
https://docs.nvidia.com/datacenter/tesla/tesla-installation-notes/index.html#introduction
安装后就能通过 nvidia-smi 命令观察 nvidia 的GPU资源使用情况了。 我要说话
cuda工具包
nvidia cuda 描述文档我要说话
上图是来自 nvidia 官网的 cuda组成 图,cuda本身只包含图中的 CUDA Toolkit 部分,包括 runtime、一些依赖库,和工具。
为了方便使用,cuda也集成了一个 nvidia 显卡驱动包,其中 nvidia.ko 为显卡驱动程序,libcuda.so 为给开发者提供的编程接口。 我要说话
驱动版本兼容性
如上图的组成结构,CUDA Toolkit 和 显卡驱动之间是不同的版本体系。机器上已经安装的驱动程序,可能会和用户安装的 CUDA Toolkit 间存在不兼容的问题,官方给出了兼容性表格。我要说话
从官方docker获取
cuda与cudnn可以从dockerhub快速获取基础镜像,不用自己编译安装。
https://hub.docker.com/r/nvidia/cuda/tags。
例如
我要说话
FROM nvidia/cuda:11.2.2-devel-centos7
我要说话
其中 我要说话
- base镜像 包含 cuda runtime
- runtime镜像,基于base镜像制作,包含了一些运算库
- devel镜像,基于 runtime 镜像制作,包含了一些开发用的头文件和工具集
如果要自己安装也行,参考 官方的安装指南我要说话
cudnn运算加速库
cudnn 是 nvida 为他家显卡开发的深度卷积神经网络的加速库,要使用 nvidia 的GPU进行GPU运算,一般的训练/推导框架,都需要安装这个库。我要说话
从docker获取
找到镜像
我要说话
FROM nvidia/cuda:11.2.2-cudnn8-devel-centos7
我要说话
参考 官方的安装指南我要说话
容器中挂载GPU
很多时候,训练/运算任务并不是直接在物理机/虚拟机上进行,而是在容器中进行的。 直接启动一个 带 cuda 的容器,也是没办法调用 cuda 的,需要在宿主机上安装一些组件,并且在容器启动时增加一些参数。 我要说话
安装 nvidia-container-runtime
为了支持容器挂载GPU驱动,首先需要安装 nvidia-container-runtime:
https://nvidia.github.io/nvidia-container-runtime/我要说话
详见 docker run 命令文档 我要说话
本文链接:https://www.zoucz.com/blog/2022/04/26/20baff30-c50f-11ec-9fe7-534bbf9f369d/我要说话
☞ 参与评论我要说话
</div
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK