1,首先要有台牛逼的主机,主机上要有英伟达的显卡 NVIDIA+CUDA目前在机器学习领域的地位还无人能够撼动
如何配主机请参照以下链接
https://www.zhihu.com/question/33996159/answer/102691414
2,Ubuntu系统安装好,考虑到大多数人都要装双系统具体可以参考以下链接
https://blog.csdn.net/chandoudeyuyi/article/details/59651406
3,NVIDIA显卡驱动安装
注意Ubuntu自带的驱动更新可以完成这样的操作而且不用输命令!
点左边栏的设置,下面找到“Software & Updates”,在点上面的“Additional Drivers”,会发现会有一个显卡的驱动,恰好和要找的版本相同~选中之后确认更新即可。在这里新出的显卡核心都可以检测成功 ,自动安装驱动。不需要手动去下载驱动安装。
接下来安装CUDA 和cuDNN ,2018年五月版本应该是 cuDNN v7.0.5 for CUDA 9.0
4,安装CUDA
还是先进网页下载
我选的配置如下:
之后按照要求,运行:
-
sudo sh cuda_9.0.176_384.81_linux.run
之后会有三个提示:
- 是否安装驱动(装过的不要装)
- 是否安装CUDA(yes)
- 是否安装sample(看自己)
结束之后会有摘要:
===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-version
Samples: Not Selected
Please make sure that
– PATH includes /usr/local/cuda-version/bin
– LD_LIBRARY_PATH includes /usr/local/cuda-version/lib64, or, add /usr/local/cuda-version/lib64 to /etc/ld.so.conf and run ldconfig as root
接下来是添加到环境变量。
首先打开文件:
-
sudo vim /etc/profile
在最下面添加两行:
-
export PATH=/usr/local/cuda-9.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
至此CUDA安装结束~
5,安装cudnn
cuDNN v7.0.5 for CUDA 9.0
cuDNN(请检查兼容性再下载):https://developer.nvidia.com/rdp/cudnn-download1.下载cuDNN压缩包;
2.对下载文件进行解压:-
tar -zxvf cudnn-9.0-linux-x64-v7.0.5.1.tgz
3.解压后会看到一个cuda文件夹,里面包含了include以及lib64两个子目录。我们需要做的就是将这两个字母里面的文件复制到cuda对应的安装目录。这里以cuda的安装目录为/usr/local/cuda/,这个目录下也会包含include/以及lib64/这两个文件夹,将之前目录的文件复制过来即可。
sudo cp -p cuda/include/cudnn.h /usr/local/cuda/include sudo cp -p cuda/lib64/* /usr/local/cuda/lib64/
6,tensorflow-GPU安装
pip install tensorflow-gpu
没有提示失败就成了,安装过程中有可能需要root权限,命令前加上 sudo就行了
在Python环境中输入:
import numpy import tensorflow as tf a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a') b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b') c = tf.matmul(a, b) sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
之后就会出现详细的信息:
Device mapping: /job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: Tesla K40c, pci bus id: 0000:05:00.0 b: /job:localhost/replica:0/task:0/device:GPU:0 a: /job:localhost/replica:0/task:0/device:GPU:0 MatMul: /job:localhost/replica:0/task:0/device:GPU:0 [[ 22. 28.] [ 49. 64.]]