大家好,又见面了,我是你们的朋友全栈君。
1.先记录下驱动问题:
1).run形式安装cuda。清理原有显卡驱动后,先安装自己显卡对应的驱动,在步骤中出现”Would you like to run the nvidia-xconfig utility to automatically update your X configuration file…”时,选择 No。(这里是cuda自带的旧版本的驱动)。
我安装cuda8.0时,是禁用原有驱动,使用cuda所带驱动。(应该是cuda之后的版本都可以了?)
2).deb形式安装cuda。由于会默认安装自带的旧版本驱动,故安装成功后,卸载此驱动,再重新安装显卡对应的驱动。
2.记录下大概步骤,详情见下:
1).进入cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb存放目录,安装deb。
sudo dpkg -i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
2).sudo apt-get update
3).回到主目录(否则提示找不到cuda文件)
sudo apt-get install cuda
安装过程非常漫长,如果中途断网输入:sudo apt-get install cuda –fix-missing
4).先把错配的显卡驱动清理干净
sudo apt-get –purge remove nvidia-*
5).由于cuda7.5中自带的Nvidia驱动是老版本,安装之后将会使得系统无法找到独立显卡(TITAN),故需要重新安装相应的驱动。
我安装后在python中执行以下代码时,提示找不到cuda7.5对应的驱动(好像是38*几 记不清了,但我的显卡对应的驱动是390.87),一下代码返回False。找来找去,打算第二天删掉一个驱动。没想到过一晚成功了~~~哦耶
代码语言:javascript复制import torch
print(torch.cuda.is_available())
6).重启。
7).环境变量
8).检测
1).先把错配的显卡驱动清理干净
sudo apt-get –purge remove nvidia-*
2).由于cuda7.5中自带的Nvidia驱动是老版本,安装之后将会使得系统无法找到独立显卡(TITAN),故需要重新安装相应的驱动。
我安装后在python中执行以下代码时,提示找不到cuda7.5对应的驱动(好像是38*几 记不清了,但我的显卡对应的驱动是390.87),一下代码返回False。找来找去,打算第二天删掉一个驱动。没想到过一晚成功了~~~哦耶
import torch
print(torch.cuda.is_available())
3).重启。
4).进入cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb存放目录,安装deb。
sudo dpkg -i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
5).sudo apt-get update
6).回到主目录(否则提示找不到cuda文件)
sudo apt-get install cuda
安装过程非常漫长,如果中途断网输入:sudo apt-get install cuda –fix-missing
插入下卸载旧版本问题:
由于需要安装cuda A,,所以需要卸载cuda B.
如果是使用.run 文件安装的,使用下面方法卸载
在/usr/local/cuda/bin
目录下,有cuda
自带的卸载工具uninstall_cuda_7.5.pl
cd /usr/local/cuda/bin
sudo ./uninstall_cuda_7.5.pl
如果是使用 .deb 安装的,使用下面方法卸载
代码语言:javascript复制 sudo apt-get --purge remove <package_name>
注:package_name即为cuda,或者/usr/local/cuda, /usr/local/cuda-7.5
over! 然后去官网下载需要的cuda安装就可以了
基础平台:64-bit,Ubuntu14.04
一、安装前的环境准备和检查
1、安装Ubuntu系统14.04
新安装完的14.04系统会提示很多更新项。 网上有很多帖子说不建议更新,说更新过后会导致安装CUDA发生系统界面循环登录的问题。 但是我更新后,并没有遇到任何问题。
2、检查否具备安装CUDA的条件
a) 查看显卡/GPU信息
在终端中输入:
代码语言:javascript复制 lspci | grep -i nvidia
还需要检查自己的GPU是否是CUDA-capable,去CUDA的官网查看自己的GPU版本是否在CUDA的支持列表中英伟达显卡计算力官网查询地址(非常重要!!!我看的教程都没有强调这一点,我也给简单的过去了,结果我安装的pytorch运行不了!!)。
深度学习中我们对GPU的计算能力一般是要求大于5.0,具体情况具体分析,低于5.0也并非一定不可以。 几款科学计算显卡对比
我的错误如图:
我的是非常低级的 ,考虑使用低版本的cuda。
b)查看 Ubuntu 系统的位数,终端输入命令,如下显示 x86_64,说明系统是 64 位。
代码语言:javascript复制uname -m && cat /etc/*release
c) 检查自己的Linux版本是否支持 CUDA(Ubuntu 14.04没问题)
d) 检查是否安装了gcc:没有的话可以通过 sudo apt-get install gcc安装。
代码语言:javascript复制gcc --version
3.安装显卡驱动
以上检查我的电脑系统都满足要求,如果没有满足要求的话,可以参考cuda的官方文档,里面有详细的针对每个问题的解决方案。
1.下载:根据上一步,进入Nvidia 的官网,找到对应 Quadro k2000 显卡的 Linux 64-bit 的驱动程序
我对应的是NVIDIA 390.87 而cuda7.5自带的是NVIDIA-SMI 384.130。
涉及到用哪个版本。(保留疑问,文末链接1是,卸载cuda自带的驱动。2018.8.31,先装cuda,按照此步骤,重新安装驱动。)
2. 屏蔽开源驱动 nouveau
代码语言:javascript复制sudo gedit /etc/modprobe.d/blacklist.conf
代码语言:javascript复制添加以下内容保存
代码语言:javascript复制blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv
(这里有一行空格)
代码语言:javascript复制3.清理旧显卡驱动
代码语言:javascript复制sudo apt-get --purge remove nvidia-*(需要清除干净)
sudo apt-get --purge remove xserver-xorg-video-nouveau
4. 重启电脑。
5.安装
5.1按Ctrl Alt F1(F1~F6均可)到x-server, Ctrl Alt F7是返回
5.2关闭图形环境,否则驱动无法正常安装,输入用户名密码登录,然后键入命令后执行(数字不能用小键盘输入)
代码语言:javascript复制sudo service lightdm stop
成功关闭服务后将出现:lightdm stop/waiting
(这里记录下一句指令,为 NVIDIA**.run 驱动程序添加可执行权限: sudo chmod x NVIDIA**.run)
5.3进入驱动所在的文件夹,执行
代码语言:javascript复制sudo sh NVIDIA*.run
后面就一路Accept就可以~报错The distribution-provided pre-install script failed!不必理会,继续安装。最重要的一步,安装程序问你是否使用nv的xconfig文件,这里一点要选yes,否则在启动x-window时不会使用nv驱动。
5.4重启 X-window 服务
代码语言:javascript复制sudo service lightdm start
5.5查看显卡是否装好,运行
代码语言:javascript复制glxinfo | grep rendering
假如显示”direct rendering: Yes“,则已安装。
代码语言:javascript复制nvidia-smi #查看驱动版本
也可以在 Ubuntu 已经安装的 Apps 中找到 NVIDIA X Server Settings 软件,可以查看到 GPU0 是 Quadro K2000,至此,本台 GPU 显卡驱动安装完毕。
二、安装Cuda
1.下载nvidia cuda的仓库安装包nvidia-cuda,找到自己电脑对应系统对应版本。
注意选择的是deb(network).
代码语言:javascript复制wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_7.5-18_amd64.deb
2.安装
代码语言:javascript复制# 安装cuda软件包
sudo dpkg -i cuda-repo-ubuntu1404_7.5-18_amd64.deb
# 更新本地仓库
sudo apt-get update
# 安装cuda啦
sudo apt-get install cuda
原来的技术博客里说Ubuntu系统安装好后不要更新系统补丁,原因见 博客3.
3.环境变量
代码语言:javascript复制echo ‘export PATH=/usr/local/cuda-7.5/bin:$PATH‘ >> ~/.bashrc
echo ‘export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH‘ >> ~/.bashrc source ~/.bashrc
4.验证
1) 查看NVCC编译器的版本
代码语言:javascript复制nvcc -V i
2)查看显卡的驱动版本
代码语言:javascript复制cat /proc/driver/nvidia/version
3)用例:
代码语言:javascript复制cd /usr/local/cuda/samples
sudo make ‐j8
代码语言:javascript复制4)
cd bin/x86_64/linux/release/
sudo ./deviceQuery
sudo ./bandwidthTest
最后一行 result=pass表示通过~
3. 验证环境
(1) 新建test.py,复制如下内容保存,(主目录/home/lvxia下)
代码语言:javascript复制from theano import function, config, shared, sandbox
import theano.tensor as T
import numpy
import time
vlen = 10 * 30 * 768 # 10 x #cores x # threads per core
iters = 1000
rng = numpy.random.RandomState(22)
x = shared(numpy.asarray(rng.rand(vlen), config.floatX))
f = function([], T.exp(x))
print(f.maker.fgraph.toposort())
t0 = time.time()
for i in xrange(iters):
r = f()
t1 = time.time()
print("Looping %d times took %f seconds" % (iters, t1 - t0))
print("Result is %s" % (r,))
if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):
print(‘Used the cpu‘)
else:
print(‘Used the gpu‘)
(2)新建 .theanorc 设置GPU代替CPU运算(主目录)
可以使用 gedit 打开,因为 vi 不太会操作。。复制如下内容到文件中保存。这个文件在home目录下看不到,可以通过命令 ls –all 看到的~
代码语言:javascript复制[global]
floatX=float32
device=gpu
(3) 运行test.py
代码语言:javascript复制python test.py
三、安装cudnn。
见https://blog.csdn.net/m0_37644085/article/details/81837410 第二部分
驱动问题:
0 down vote
Starting from CUDA 8.0, it’s possible to have multiple CUDA versions installed. You can then activate different values for PATH environment that will present you with different CUDA version.
Command to immediately obtain the CUDA version:
代码语言:javascript复制$ nvcc --version | grep "release" | awk '{print $6} | cut -c2-'
You can confirm the result by checking the install status of CUDA libraries:
代码语言:javascript复制$ dpkg -l | grep cuda
For installing multiple versions of CUDA, you can refer to this article.
其他资料:
http://blog.sina.com.cn/s/blog_3fe8bc880102wghj.html
# modprobe: ERROR: could not insert ‘nvidia_361_uvm’: Invalid argument
这是因为cuda8.0自带了361版本的nvidia driver
需要将其卸载
sudo apt-get remove nvidia-361
或者
sudo update-alternatives –config x86_64-linux-gnu_gl_conf
输出:
Selection Path Priority Status
————————————————————
0 /usr/lib/nvidia-361/ld.so.conf 8604 auto mode
1 /usr/lib/nvidia-361-prime/ld.so.conf 8603 manual mode
2 /usr/lib/nvidia-361/ld.so.conf 8604 manual mode
* 3 /usr/lib/x86_64-linux-gnu/mesa/ld.so.conf 500 manual mode
输入3按回车,再运行./deviceQuery就成功了。
这种方法有时候会自动跳回2,不知道为什么,重新按该过程配置一下就行了。直接卸载361有没有side effect不能确定。
到这里就配置好cuda8.0了。
Options : History : Feedback : Donate | Close |
---|
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137595.html原文链接:https://javaforall.cn