赞
踩
PS:由于自己的智商掉线,此过程持续了近三天的时间,非常痛苦,记录一下,以明我不再犯错的决心之志/(ㄒoㄒ)/~~
因为我已实现在win11下用docker创建运行我代码的某个镜像,现在考虑在该镜像实例中(容器)调用GPU,加速代码运行速度。
即我已完成:
注意哦,此步是在宿主机上安装:官网链接
PS:好像下载的就是最新的nvidia windows 驱动程序,其中已带有了对WSL的CUDA支持。(【小白谨慎)
tips:可以在宿主机的终端中,输入nvidia-smi查看当前驱动程序版本。
docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
输出如下内容,即证明可访问
> Windowed mode
> Simulation data stored in video memory
> Single precision floating point simulation
> 1 Devices used for simulation
GPU Device 0: "Pascal" with compute capability 6.1
> Compute 6.1 CUDA device: [NVIDIA GeForce GTX 1060]
10240 bodies, total time for 10 iterations: 9.040 ms
= 115.995 billion interactions per second
= 2319.891 single-precision GFLOP/s at 20 flops per interaction
(PS:懒得执行了,直接copy我参考的大佬的博文里的)
注意!!!,此时仅仅是可以访问,对应要在一些深度学习框架中真正使用之,还需要在你喜爱的容器内,配置相应的CUDA和cudnn环境。
因为我宿主机和容器内用的都是tensorflow2.4.0,而且我容器内的系统版本是Ubuntu16.04,所以只要在官网中下载对应的cuda(版本为11.0)和cudnn(版本为8.0.5),并在容器安装即可。
CUDA11.0官网链接
cudnn官网链接
我使用的是run的安装方式,因为听说用deb格式安装的话,会在安装过程中替换掉已经安装好的nvidia显卡驱动。
下载好run文件后,执行命令sudo sh cuda_11.0.3_450.51.06_linux.run就进入安装过程,具体安装过程截图找不到了,首先是输入accept,然后再直接选install即可。
PS:安装过程中,并没有提醒是否移除已有的nvidia显卡驱动,也没有安装相应的驱动,而是在安装结束后多输出一些信息,如下:
上述信息是警告,提醒CUDA没有对应的驱动,可以执行命令安装之:
sudo sh cuda_11.0.3_450.51.06_linux.run --silent --driver
不谙世事的我…一开始乖乖执行了,但现在觉得不执行也可以,因为在容器内执行命令nvidia-smi已经有输出驱动的版本,说明驱动已经安装好了,只是cuda安装程序检测不到cuda for wsl的驱动?
Anyway,接下来按常规操作,配置环境路径,输入命令sudo vim ~/.bashrc,在该文件末尾加入:
export PATH=/usr/local/cuda-11.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
保持退出,再执行命令source ~/.bashrc 刷新一下环境变量。
最后执行命令nvcc -V,输出cuda版本(如下)即证明cuda安装成功。
下载对应版本的cudnn的三个文件:
分别执行命令:
sudo dpkg -i libcudnn8_8.0.5.39-1+cuda11.0_amd64.deb
sudo dpkg -i libcudnn8-dev_8.0.5.39-1+cuda11.0_amd64.deb
sudo dpkg -i libcudnn8-samples_8.0.5.39-1+cuda11.0_amd64.deb
安装结束后,输入命令:
cp -r /usr/src/cudnn_samples_v8/ ~
cd ~/cudnn_samples_v8/mnistCUDNN/
make clean && make
./mnistCUDNN
输出如下即证明cudnn安装成功。
中间的输出省略。。太长了
最后看到test passed!即可
docker run -it --gpus all --shm-size=8gb 镜像名
docker run -it --gpus all -v宿主机文件夹地址:容器内对应地址 --shm-size=8gb 镜像名
docker ps #查看当前运行的容器及其id
docker commit -a="作者名字" -m="描述信息" 容器id 新镜像名字:版本号
docker images #查看本机已有的镜像
uname -a
cat /etc/issue
lsb_release -a
显示如下
Distributor ID: Ubuntu //类别是ubuntu
Description: Ubuntu 16.04.3 LTS //16年3月发布的稳定版本,LTS是Long Term Support:长时间支持版本,支持周期长达三至五年
Release: 16.04 //发行日期或者是发行版本号
Codename: xenial //ubuntu的代号名称
https://www.cnblogs.com/booturbo/p/13960935.html
https://blog.csdn.net/chenxizhan1995/article/details/117855448
https://www.cnblogs.com/coco9821/p/14859325.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。