Ubtuntu16.04 CUDA安装

CUDA安装官方教程
CUDNN安装官方教程

1. 安装驱动(可选)

有用的驱动调试命令https://blog.csdn.net/wf19930209/article/details/81877822,
可以参考这里,https://blog.csdn.net/ghw15221836342/article/details/79571559。
如果选择这里安装了驱动,那么在第二步安装CUDA的时候就不要选择安装驱动了,
注:因为我是这里安装的,所以最后我的信息显示的是
CUDA Driver Version = 9.1, CUDA Runtime Version = 8.0
如果你想方便安装可以在安装CUDA的时候:
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26? (y)es/(n)o/(q)uit: yes
那么最后你测试程序输出的信息应该是
CUDA Driver Version = 9.1, CUDA Runtime Version = 8.0

2. 安装CUDA tool kit 8.0

cuda下载网址

方法一:下载deb安装包
$ sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb

但是我这样报错了

dpkg-deb: error: 'cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb' is not a debian format archive
dpkg: error processing archive cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb (--install):
 subprocess dpkg-deb --control returned error exit status 2
Errors were encountered while processing:
 cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb

我查了一下试了一下

$ sudo dpkg -i --force-overwrite cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb

但是并没有什么用。blog说是因为deb里似乎带了旧显卡驱动,安装完后还要重新装显卡驱动。可能是因为我安装了的驱动版本过高,而且没有卸载旧的驱动版本导致的。

方法二:下载 runfile安装包
$ sudo sh cuda_8.0.61_375.26_linux.run

安装过程出现如下选择,如果你在安装cuda之前安装了驱动,要选择no,如果没有选择yes
安装过程中会询问是否下载Samples,建议选择,方便安装后做测试

Do you accept the previously read EULA?
accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26?
(y)es/(n)o/(q)uit: no

Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: yes

Enter Toolkit Location
 [ default is /usr/local/cuda-8.0 ]: 

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: 
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: yes

Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: yes

Enter CUDA Samples Location
 [ default is /home/ai ]: 

Installing the CUDA Toolkit in /usr/local/cuda-8.0 ...

Missing recommended library: libXmu.so

Installing the CUDA Samples in /home/ai ...
Copying samples to /home/ai/NVIDIA_CUDA-8.0_Samples now...
Finished copying samples.

===========
= Summary =
===========

Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-8.0
Samples:  Installed in /home/ai, but missing recommended libraries

Please make sure that
 -   PATH includes /usr/local/cuda-8.0/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf for detailed information on setting up CUDA.

***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
    sudo <CudaInstaller>.run -silent -driver

Logfile is /tmp/cuda_install_10888.log

配置环境变量

配置一些环境变量,自我感觉可有可无,但是许多的方案都会有所涉及,包括安装的输出信息,建议配上吧。

$ sudo vim /etc/profile # 文件末尾添加一下两行
$ export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
$ export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
$ sudo gedit /etc/profile #导入动态库 
$ export PATH = /usr/local/cuda/bin:$PATH #在文件末尾加入
$ sudo gedit /etc/ld.so.conf.d/cuda.conf #创建链接文件 
$ /usr/local/cuda/lib64 #在打开的文件中添加以下内容
$ sudo ldconfig #执行使得链接生效
检查安装是否成功
$ cd NVIDIA_CUDA-8.0_Samples/1_Utilities/deviceQuery
$ make
$ sudo ./deviceQuery 

注意关注最后一行,pass就没错
输出如下:

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.1, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = GeForce GTX 960M
Result = PASS

安装cudnnv5.1

网址:https://developer.nvidia.com/rdp/cudnn-archive

$ tar -zxvf xxx.tar
$ cd xxx/include   #切换进入include路径 
$ sudo cp cudnn.h /usr/local/cuda/include/    #复制头文件
$ cd xxx/lib64    #切换进入lib64目录
$ sudo cp lib* /usr/local/cuda/lib64/          #复制动态链接库
$ cd /usr/local/cuda/lib64/
$ sudo rm -rf libcudnn.so libcudnn.so.5        #删除原有动态文件
$ sudo ln -sf libcudnn.so.5.0.5 libcudnn.so.5  #生成软衔接
$ sudo ln -sf libcudnn.so.5 libcudnn.so      #生成软链接
$ sudo ldconfig

在本地cuda/lib64下检测一下

$ ll

有类似这样的:

lrwxrwxrwx  1 root root        13 Oct 15 06:55 libcudnn.so -> libcudnn.so.7*
lrwxrwxrwx  1 root root        17 Oct 15 06:55 libcudnn.so.7 -> libcudnn.so.7.3.1*
-rwxr-xr-x  1 root root 302770160 Oct 15 06:53 libcudnn.so.7.3.1*

说明安装成功了

参考:

https://blog.csdn.net/qq_33638017/article/details/78297318
https://developer.nvidia.com/cuda-80-ga2-download-archive
https://blog.csdn.net/Fishmemory/article/details/73770841
https://blog.csdn.net/WZZ18191171661/article/details/70141328

版本包含的 JEP(Java/JDK Enhancement Proposals,JDK 增强提案)比 Java 12 和 13 加起来的还要多。总共 16 个新特性如下: 305:Pattern Matching for instanceof (Preview) 为 instanceof 运算符引入模式匹配(预览阶段) 通过模式匹配,开发者可以用更简洁和更安全的方式来表达通用的程序逻辑。instanceof 运算符的模式匹配支持从对象中按条件来提取组件,此语言特性目前处于预览阶段。 343:Packaging Tool (Incubator) 打包工具(孵化阶段) 创建一个用于打包独立 Java 应用程序的工具。 345:NUMA-Aware Memory Allocation for G1 针对 G1 的 NUMA-Aware 内存分配 通过实现 NUMA-aware 内存分配,提升 G1 在大型机器上的性能。 349:JFR Event Streaming JFR 事件流 暴露 JDK Flight Recorder 数据以进行连续监视。 352:Non-Volatile Mapped Byte Buffers 非易失性映射的字节缓冲 非易失性映射的字节缓冲将添加新的 JDK 特定文件映射模式,该模式允许 FileChannel API 用于创建引用非易失性内存(NVM)的 MappedByteBuffer 实例。 358:Helpful NullPointerExceptions 改进 NullPointerExceptions,通过准确描述哪些变量为 null 来提高 JVM 生成的异常的可用性。该提案的作者希望为开发人员和支持人员提供有关程序为何异常终止的有用信息,并通过更清楚地将动态异常与静态程序代码相关联来提高对程序的理解。 359:Records (Preview) Records 提供了一种紧凑的语法来声明类,以帮助开发者写出更简洁的代码,这些类是浅层不可变数据(shallowly immutable data)的透明拥有者。该特性主要用在特定领域的类,这些类主要用于保存数据,不提供领域行为。 361:Switch Expressions (Standard) Switch Expressions 在 JDK 12 与 13 中都是预览状态,现在在 JDK 14 中已成为稳定特性。switch 表达式扩展了 switch 语句,使其不仅可以作为语句(statement),还可以作为表达式(expression),并且两种写法都可以使用传统的 switch 语法,或者使用简化的“case L ->”模式匹配语法作用于不同范围并控制执行流。这些更改将简化日常编码工作,并为 switch 中的模式匹配做好准备。 362:Deprecate the Solaris and SPARC Ports 弃用 Solaris 和 SPARC 端口 弃用 Solaris/SPARC, Solaris/x64 和 Linux/SPARC 端口,以便在未来的版本进行移除。 363:Remove the Concurrent Mark Sweep (CMS) Garbage Collector 移除 CMS(Concurrent Mark-Sweep) 垃圾回收器。 364:ZGC on macOS 将 ZGC 垃圾回收器移植到 macOS。 365:ZGC on Windows 将 ZGC 垃圾回收器移植到 Windows。 366:Deprecate the ParallelScavenge + SerialOld GC Combination 弃用 ParallelScavenge + SerialOld GC 的垃圾回收算法组合。 367:Remove the Pack200 Tools and API 移除 Pack200 工具和 API 删除 java.util.jar 包中的 pack200 和 unpack200 工具以及 Pack200 API。 368:Text Blocks (Second Preview) 文本块特性(Text Blocks)与常见的 Python"""any input"""特性一样,它支持多行字符串文字,可以不需要使用大多数转义序列,并以一种可预测的方式自动设置字符串格式,同时可以让开发人员控制格式。虽然这不是特别复杂的特性,但对于开发中想将 HTML 代码引入 Java 来说是极大的便利,代码可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值