首先确认是否安装了nvidia显卡驱动,这边虽然已经安装了nvidia的驱动,但是下面安装的CUDA9.2要求驱动版本不低于390,所以后面安装CUDA的时候选择了安装显卡驱动。
$nvidia-smi
jimmy@jimmy-MS-7B53:~/AI$ nvidia-smi
Mon Aug 20 16:09:03 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.130 Driver Version: 384.130 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 106... Off | 00000000:01:00.0 On | N/A |
| 21% 33C P8 4W / 130W | 253MiB / 6069MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1075 G /usr/lib/xorg/Xorg 118MiB |
| 0 11748 G unity-control-center 1MiB |
| 0 22250 G compiz 130MiB |
+-----------------------------------------------------------------------------+
CUDA8.0下载
https://developer.nvidia.com/cuda-toolkit-archive
选择下载的类型
CUDA8.0安装
下载完成后,执行
$sudo sh cuda_8.0.61_375.26_linux.run
执行后会有一个协议,默认都同意就行了
这边要说的是CUDA9对驱动有版本要求,可能要更新驱动版本,所以驱动选择YES
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 396.37?
(y)es/(n)o/(q)uit: y
更新驱动需要关闭当前的图形界面
sudo service lightdm stop
如果在本机操作的话需要先进入命令行界面按组合键Ctrl + Alt + F1进入命令行界面
安装驱动的时候会包有些库没有完全安装,所以重新配置了一下没有安装OpenGL Libraries
This package includes over 100+ CUDA examples that demonstrate
Do you accept the previously read EULA?
accept/decline/quit: accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 396.37?
(y)es/(n)o/(q)uit: y
Do you want to install the OpenGL libraries?
(y)es/(n)o/(q)uit [ default is yes ]: n
Do you want to run nvidia-xconfig?
This will update the system X configuration file so that the NVIDIA X driver
is used. The pre-existing X configuration file will be backed up.
This option should not be used on systems that require a custom
X configuration, such as systems with multiple GPU vendors.
(y)es/(n)o/(q)uit [ default is no ]:
Install the CUDA 9.2 Toolkit?
(y)es/(n)o/(q)uit: y
Enter Toolkit Location
[ default is /usr/local/cuda-9.2 ]:
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y
Install the CUDA 9.2 Samples?
(y)es/(n)o/(q)uit: y
Enter CUDA Samples Location
[ default is /home/jimmy ]:
安装完成
Driver: Installed
Toolkit: Installed in /usr/local/cuda-9.2
Samples: Installed in /home/jimmy, but missing recommended libraries
Please make sure that
- PATH includes /usr/local/cuda-9.2/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-9.2/lib64, or, add /usr/local/cuda-9.2/lib64 to /etc/ld.so.conf and run ldconfig as root
To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-9.2/bin
To uninstall the NVIDIA Driver, run nvidia-uninstall
Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-9.2/doc/pdf for detailed information on setting up CUDA.
按照上面的要求添加环境路径
sudo vi ~/.bashrc
export PATH=/usr/local/cuda-9.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.2/lib64:$LD_LIBRARY_PATH
生效脚本
source ~/.bashrc
注:如果需要所有人都能使用的话再全局的/etc/profile添加环境变量
验证是否安装成功,编译下载的Samples,编译的时候遇到一个glut的报错,需要安装一下freeglut3,如果是CUDA8.0编译的时候可能会报“cannot find -lnvcuvid”,这个问题是由于驱动版本不一致导致,8.0要求的驱动版本是nvidia-367,所以在NVIDIA_CUDA-8.0_Samples中grep 所有*.mk的文件,把里面有nvidia-367地方,改成当前用的驱动版本,比如nvidia-384
cd ~/NVIDIA_CUDA-8.0_Samples
sudo make
sudo apt-get install freeglut3 freeglut3-dev
编译结束后验证是否安装成功
sudo ./bin/x86_64/linux/release/deviceQuery
jimmy@jimmy-MS-7B53:~/NVIDIA_CUDA-8.0_Samples$ sudo ./bin/x86_64/linux/release/deviceQuery
./bin/x86_64/linux/release/deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "GeForce GTX 1060 6GB"
CUDA Driver Version / Runtime Version 9.0 / 8.0
CUDA Capability Major/Minor version number: 6.1
Total amount of global memory: 6070 MBytes (6364463104 bytes)
(10) Multiprocessors, (128) CUDA Cores/MP: 1280 CUDA Cores
GPU Max Clock rate: 1709 MHz (1.71 GHz)
Memory Clock rate: 4004 Mhz
Memory Bus Width: 192-bit
L2 Cache Size: 1572864 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total number of registers available per block: 65536
Warp size: 32
Maximum number of threads per multiprocessor: 2048
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent copy and kernel execution: Yes with 2 copy engine(s)
Run time limit on kernels: Yes
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Disabled
Device supports Unified Addressing (UVA): Yes
Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = GeForce GTX 1060 6GB
Result = PASS