GPU使用
Docker中使用GPU
工作中经常遇到需要在容器中调度GPU的事情,比较早之前Docker调动GPU需要安装nvidia-docker,可以在容器中看到并使用宿主机的nvidia显卡。
https://github.com/NVIDIA/nvidia-docker
从docker 19版本之后不需要单独去下nvidia-docker这个独立的docker应用程序,只需要安装并配置一下nvidia-runtime,使用的时候用–gpus参数来控制。
#安装Docker和nvidia-container-toolkit
yum install docker-ce
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin nvidia-container-toolkit
#docker run --help | grep -i gpus
--gpus gpu-request GPU devices to add to the container ('all' to pass all GPUs)
#启动容器时,容器如果想使用gpu,镜像里必须有cuda环境,就是说,针对想使用gpu的容器,镜像在制作时必须吧cuda环境打进去
#--gpus '"device=1,2"',将ID是1,2的卡指定给容器使用
#docker run --gpus '"device=1,2"' nvidia/cuda:9.0-base nvidia-smi
https://github.com/NVIDIA/nvidia-container-toolkit

/etc/docker/daemon.json内容如下:
cat /etc/docker/daemon.json
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
},
"registry-mirrors": [""],
"insecure-registries" : [""],
"data-root": "/disk1/docker",
"exec-opts": ["native.cgroupdriver=systemd"]
}
1. docker run 的时候不加 --gpus参数,docker run -it --rm --name test ubuntu:latest

2.docker run 的时候加 --gpus参数,docker run -it --rm --name test --gpus all ubuntu:latest

K8S中使用GPU
参考:
线上K8S集群使用的是gpu-operator, gpu-operator 里包含了 nvidia-device-plugin,具体详见:
Installing the NVIDIA GPU Operator

物理机上使用GPU
参考:https://zhuanlan.zhihu.com/p/669089641
CUDA是一种并行计算平台和编程模型,而CUDA Toolkit是包含用于CUDA开发的一系列软件工具和库的集合。

显示的驱动版本以及支持的CUDA版本

安装CUDA的时候需要升级一下内核,然后下载cuda_12.4.0_550.54.14_linux.run进行安装,安装完成后

写在最后
简单记录一下工作中遇到的使用GPU遇到的安装过程,后续遇到新的问题再进行补充。