Tensorflow内核探究1
研究生期间要做的课题是深度学习inference任务的加速和调度问题,因为已经有很多不错的开源深度学习框架(Tensorflow,Pytorch2,Caffe2。。。),所以想在框架的基础上来做调度器和加速。
然后Google大法确实厉害,有很多充足的文档、资料和论文实现,所以决定以Tensorflow入手,最近在学习Tensorflow的相关实现和原理,想在这篇博客里总结一下所学。
Tensorflow GPU版本安装
要安装进行train,inference加速,我们需要一块好的GPU。如果你有NVDIA 1080 Ti或者NVDIA TitanX,那加速效果可能达到10——20倍,效果是很直观的。其他Nvdia显卡也可以,只是性能没有这么好。可以在NVDIA官网查看市面上常用显卡的计算性(使用Tensorflow GPU版本需要大于等于3.0以上的显卡)Nvdia显卡计算性
安装包准备
安装的Tensorflow为V1.8版本,需要CUDA9.0和Cudnn7.1,推荐使用Anaconda来使用Tensorflow。
anaconda3-5.1.0-windows10
cuda-9.1-windows10
cudnn-7.1-windows10
关于Tensorflow和CUDA,Cudnn的版本对应关系可以参考下图。
Tensorflow版本 | CUDA版本 | Cudnn版本 | Python版本 |
1.1-1.2 | 8.0 | v5.1 | 3.5 |
1.3 | 8.0 | v6,V6.1 | 3.5,3.6 |
1.4 | 8.0 | V6.1 | 3.5,3.6 |
1.5-1.8 | 9.0 | V7.0 | 3.5,3.6 |
因为NVDIA官网即使是科学上网也经常崩,所以把百度网盘连接分享到文件里,需要的可以自取,密码ia9l
安装过程
只要要三步:
(1)下载并安装cuda9.1
(2)下载并安装cudnn7.1
(3) 下载并安装annaconda3-5.1.0
注意:1.查看cuda能否安装成功:在cmd(win+r)中输入:nvcc -V
2.安装cudnn7.0详细方法:
将cudnn压缩包中所有文件放入1
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0
目录下对应目录中,同时将1
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\CUPTI\libx64\cupti64_91.dll
拷贝到1
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin
CUDA环境测试
CMD中输入1
nvcc -V
如果成功出现下图,则说明CUDA和Cudnn已经配置成功
安装tensorflow
打开Anaconda Prompt,创建tensorflow虚拟环境1
conda create -n tensorflow python=3.5
然后启用虚拟环境1
activate tensorflow
最后安装tensorflow1
pip install tensorflow-gpu
如果安装速度较慢,可以使用清华大学开源软件镜像站的TensorFlow 镜像。
测试tensorflow安装情况
在刚才的Anaconda Prompt中输入1
Python
在Python的交互界面中输入1
2
3
4
5import tensorflow as tf
hello=tf.constant('Hello tensorflow!')
sess=tf.Session()
sess.run(hello)
sess.close()
然后激动人心的时刻,我们可以使用TF了。
可能出现的问题
- 找不到cudart64_90.dll:
- ImportError: DLL loaded failed: 找不到指定模块
出现上述问题是显卡驱动没有更新,手动到NVDIA对应网站下载对应显卡最新驱动安装,即可。
额外内容
为了方便之后的开发,我们可以安装Spyder这款十分强大的科学计算IDE。
首先添加清华大学镜像源1
2conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
然后1
conda install spyder
记得输入Yes,这样进行深度学习的环境就配置好了。