.deb版本cuda安装。

.deb版本cuda安装。1.先记录下驱动问题:1).run形式安装cuda。清理原有显卡驱动后,先安装自己显卡对应的驱动,在步骤中出现”Wouldyouliketorunthenvidia-xconfigutilitytoautomaticallyupdateyourXconfigurationfile…”时,选择No。(这里是cuda自带的旧版本的驱动)。我安装cuda8.0时,是…

大家好,又见面了,我是你们的朋友全栈君。

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。找来找去,打算第二天删掉一个驱动。没想到过一晚成功了~~~哦耶

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 安装的,使用下面方法卸载

 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信息

在终端中输入: 

 lspci | grep -i nvidia

.deb版本cuda安装。

还需要检查自己的GPU是否是CUDA-capable,去CUDA的官网查看自己的GPU版本是否在CUDA的支持列表中英伟达显卡计算力官网查询地址(非常重要!!!我看的教程都没有强调这一点,我也给简单的过去了,结果我安装的pytorch运行不了!!)。

深度学习中我们对GPU的计算能力一般是要求大于5.0,具体情况具体分析,低于5.0也并非一定不可以。
几款科学计算显卡对比

我的错误如图:.deb版本cuda安装。

我的是非常低级的 ,考虑使用低版本的cuda。

b)查看 Ubuntu 系统的位数,终端输入命令,如下显示 x86_64,说明系统是 64 位。

uname -m && cat /etc/*release

.deb版本cuda安装。
c) 检查自己的Linux版本是否支持 CUDA(Ubuntu 14.04没问题)

d) 检查是否安装了gcc:没有的话可以通过 sudo apt-get install gcc安装。

gcc --version 

.deb版本cuda安装。

3.安装显卡驱动

以上检查我的电脑系统都满足要求,如果没有满足要求的话,可以参考cuda的官方文档,里面有详细的针对每个问题的解决方案。

1.下载:根据上一步,进入Nvidia 的官网,找到对应 Quadro k2000 显卡的 Linux 64-bit 的驱动程序

我对应的是NVIDIA 390.87 而cuda7.5自带的是NVIDIA-SMI 384.130。

涉及到用哪个版本。(保留疑问,文末链接1是,卸载cuda自带的驱动。2018.8.31,先装cuda,按照此步骤,重新安装驱动。
.deb版本cuda安装。
.deb版本cuda安装。

2. 屏蔽开源驱动 nouveau

sudo gedit /etc/modprobe.d/blacklist.conf
添加以下内容保存
blacklist vga16fb 
blacklist nouveau 
blacklist rivafb 
blacklist nvidiafb 
blacklist rivatv 
(这里有一行空格)
3.清理旧显卡驱动
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关闭图形环境,否则驱动无法正常安装,输入用户名密码登录,然后键入命令后执行(数字不能用小键盘输入)

sudo service lightdm stop

    成功关闭服务后将出现:lightdm stop/waiting

(这里记录下一句指令,为 NVIDIA**.run 驱动程序添加可执行权限: sudo chmod +x NVIDIA**.run)

5.3进入驱动所在的文件夹,执行

sudo sh NVIDIA*.run

后面就一路Accept就可以~报错The distribution-provided pre-install script failed!不必理会,继续安装。最重要的一步,安装程序问你是否使用nv的xconfig文件,这里一点要选yes,否则在启动x-window时不会使用nv驱动。

5.4重启 X-window 服务

sudo service lightdm start

5.5查看显卡是否装好,运行

glxinfo | grep rendering

假如显示”direct rendering: Yes“,则已安装。

nvidia-smi #查看驱动版本

也可以在 Ubuntu 已经安装的 Apps 中找到 NVIDIA X Server Settings 软件,可以查看到 GPU0 是 Quadro K2000,至此,本台 GPU 显卡驱动安装完毕。

.deb版本cuda安装。

二、安装Cuda

1.下载nvidia cuda的仓库安装包nvidia-cuda,找到自己电脑对应系统对应版本。

技术分享

注意选择的是deb(network).

wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_7.5-18_amd64.deb

2.安装

# 安装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.环境变量

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编译器的版本

nvcc -V i

2)查看显卡的驱动版本

cat /proc/driver/nvidia/version

3)用例:

cd /usr/local/cuda/samples 
sudo make ‐j8 
4)
cd bin/x86_64/linux/release/
sudo ./deviceQuery
sudo ./bandwidthTest

最后一行 result=pass表示通过~

3. 验证环境

(1) 新建test.py,复制如下内容保存,(主目录/home/lvxia下)

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 看到的~

[global]
floatX=float32
device=gpu

(3) 运行test.py

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:

$ nvcc --version | grep "release" | awk '{print $6} | cut -c2-'

You can confirm the result by checking the install status of CUDA libraries:

$ 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.net/137595.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 安全帽识别软件使用中常见问题分析[通俗易懂]

    安全帽识别软件使用中常见问题分析[通俗易懂]一、安全帽识别软件的主要功能是什么?安全帽识别是通俗的说法,相对准确的名称应该是安全帽佩戴检测,是用深度学习的算法对视频流进行分析,通过人工智能来判断视频中的人是否未佩戴安全帽,如果未佩戴,则触发告警规则。二、安全帽识别软件的技术成熟吗?2012年人工智能领域的卷积神经网络迎来重大突破,深圳强美随即将此尖端技术应用于工业安全监控,因为掌握海量样本数据的先天优势,鹰眸安全帽(佩戴检测)识别系…

    2022年5月19日
    51
  • 安卓app十大开发框架_web应用开发学什么

    安卓app十大开发框架_web应用开发学什么国内第一本基于Android2.0的经典著作,5大专业社区联袂推荐,权威性毋庸置疑!·Android开发与传统的J2ME开发有何相似与不同?·如何通过SharedPreferences、Files、Network和SQLite等方式高效实现Android数据的存储?又如何通过ContentProviders轻松地实现Android数据的共享?·如何使用OpenCore、MediaPlayer、MediaRecorder方便快速地开发出包含音频和视频等流媒体的丰富多媒体应用?·如何

    2022年5月3日
    42
  • 数据链路层学习之LLDP「建议收藏」

    一、LLDP协议概述 随着网络技术的发展,接入网络的设备的种类越来越多,配置越来越复杂,来自不同设备厂商的设备也往往会增加自己特有的功能,这就导致在一个网络中往往会有很多具有不同特性的、来自不同厂商的设备,为了方便对这样的网络进行管理,就需要使得不同厂商的设备能够在网络中相互发现并交互各自的系统及配置信息。 LLDP(LinkLayerDiscoveryProtocol,链路层发现协

    2022年4月3日
    104
  • 一致性hash算法 java实现_信息的一致性

    一致性hash算法 java实现_信息的一致性介绍一致性Hash算法是实现负载均衡的一种策略,后续会写如何实现负载均衡一致哈希是一种特殊的哈希算法。在使用一致哈希算法后,哈希表槽位数(大小)的改变平均只需要对K/n个关键字重新映射,其中K是关键字的数量,n是槽位数量。然而在传统的哈希表中,添加或删除一个槽位的几乎需要对所有关键字进行重新映射。强哈希考虑到单服务器不能承载,因此使用了分布式架构,最初的算法为hash()modn,hash()通常取用户ID,n为节点数。此方法容易实现且能够满足运营要求。缺点是当单点发

    2022年9月27日
    0
  • 利用STM32F103精确控制步进电机「建议收藏」

    利用STM32F103精确控制步进电机「建议收藏」**利用STM32F103控制步进电机精确角度转动**欢迎使用Markdown编辑器你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器,可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,…

    2022年6月1日
    34
  • linux查看网卡名称_linux网卡名字总是变化

    linux查看网卡名称_linux网卡名字总是变化网卡如果没有启动的话可以到/etc/sysconfig/network-scripts目录去看配置文件cd/etc/sysconfig/network-scripts进入目录后输入ls展示文件列表一般网卡名字都是ifcfg-开头如ifcfg-eth0ifcfg-ens32等…

    2022年10月18日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号