利用PPA源安装
sudo add-apt-repository -y ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install -y nvidia-390 # 这边可以指定安装的驱动版本
1、去官网下载CUDA
首先在官网上下载CUDA,这里我们选择CUDA Toolkit 9.0
2、下载完成后把下载的 CUDA 安装文件移动到 HOME 路径下并执行以下命令安装显卡驱动
PS:如果你确定你已经正确安装好NVIDIA显卡驱动,那就不必按Ctrl+Alt+F1进入命令行模式,直接在图形化界面安装即可。
cd /home
sudo chmod 777 cuda_9.0.176_384.81_linux.run #给用户增加读写和执行的权限
sudo ./cuda_9.0.176_384.81_linux.run
PS:执行上述命令约1分钟后会出现 0%信息,此时长按回车键让此百分比增长,直到100%,然后按照提示操作即可,先输入 accept ,然后让选择是否安装 nvidia 驱动,这里因为已经安装过显卡驱动就不能再重复安装,所以输入“n”不安装。剩下的选择则都输入“y”确认安装或确认默认路径安装,开始安装。
3、配置环境变量
sudo gedit ~/.bashrc
加入下面2行
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
使该配置生效
source ~/.bashrc
在/etc/profile文件中添加CUDA环境变量
sudo gedit /etc/profile
打开文档都在文档结尾加上下面两句
PATH=/usr/local/cuda/bin:$PATH
export PATH
保存后, 执行下列命令, 使环境变量立即生效
$ source /etc/profile
同时添加lib库路径,在 /etc/ld.so.conf.d/新建文件 cuda.conf
$ sudo gedit /etc/ld.so.conf.d/cuda.conf
在文中加入下面内容
/usr/local/cuda/lib64
执行下列命令使之立刻生效:
$ sudo ldconfig
4、执行以下命令测试cuda是否安装成功
$ cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
$ sudo make
$ sudo ./deviceQuery
如果显示一些关于GPU的信息,则说明安装成功。
查看nvidia-docker运行状态:
$ sudo service status nvidia-docker
# If you have nvidia-docker 1.0 installed: we need to remove it and all existing GPU containers
docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
sudo apt-get purge -y nvidia-docker
# Add the package repositories
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
# Install nvidia-docker2 and reload the Docker daemon configuration
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
# Test nvidia-smi with the latest official CUDA image
docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi
step 1: 下载安装包(这里是1.0.1版本)
wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb
step 2: 安装
$ sudo dpkg -i /tmp/nvidia-docker.deb && rm /tmp/nvidia-docker.deb
Step 3: 运行 nvidia-docker-plugin
$ sudo nvidia-docker-plugin s /var/lib/nvidia-docker/
Step 4: 启动nvidia-docker进程
$ sudo systemctl start nvidia-docker
nvidia-docker-plugin是一个docker plugin,被用来帮助我们轻松部署container到gpu混合的环境下。类似一个守护进程,发现宿主机驱动文件以及gpu 设备,并且将这些挂载到来自docker守护进程的请求中。以此来支持docker gpu的使用
Test nvidia-smi
$ sudo nvidia-docker run nvidia/cuda nvidia-smi
PS:这里有一个错误提示需要安装nvidia-modprobe
解决:利用一下三行命令安装
$ sudo apt-add-repository multiverse
$ sudo apt update
$ sudo apt install nvidia-modprobe
$ kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v1.11/nvidia-device-plugin.yml
在所有使用GPU的节点上,从Docker Hub中提取预构建的镜像:
$ docker pull nvidia / k8s-device-plugin:1.11
本地运行:
$ docker run --security-opt=no-new-privileges --cap-drop=ALL --network=none -it -v /var/lib/kubelet/device-plugins:/var/lib/kubelet/device-plugins nvidia/k8s-device-plugin:1.11
将nvidia-device-plugin部署为Daemon Set:
$ kubectl create -f nvidia-device-plugin.yml
PS:在安装nvidia-docker之后可能会出现原来的镜像不存在,导致pod创建失败,需要重新安装从节点镜像。
k8s.gcr.io/kube-proxy:v1.12.2
k8s.gcr.io/pause:3.1
创建gpu-test.yaml文件:
apiVersion: v1
kind: Pod
metadata:
name: gpu-pod
spec:
restartPolicy: Never
containers:
- image: nvidia/cuda:9.0-base # 这里要指定镜像的tag
name: cuda
command: ["nvidia-smi"]
resources:
limits:
nvidia.com/gpu: 1
$ kubectl apply -f gpu-test.yaml