ubuntu18.04+GTX2080 部署cuda10.2

本文详细介绍如何在Ubuntu 18.04系统上安装配置CUDA 10.2开发环境,包括系统驱动安装、CUDA及cuDNN安装步骤,以及TensorFlow编译等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

台式机ubuntu18.04+GTX2080 部署cuda开发环境,是个理想的平台。部署不宜,遇到坑,且填且珍惜。

 

1、安装系统

主流的都是u盘用ultrISO刻录好系统18.04的iso文件安装。

分区的时候注意单独分个efi启动区(UEFI安装),别选成bios预留了,不然启动项找不到系统。(这一条在14.04试过, 18.04未试过, 但是第一次会失败, 再次重装会OK)

分区: boot, 主分区, ext4, 400MB; swap分区8G(对应内存32G); 根分区“ / ”, 主分区, ext4, 占有剩下所有大小。

用了一段时间14.04,发现swap分区太小了,只留了2G(内存32g,一般情况下内存使用都会超过2G),电脑休眠的时候数据会存到这个分区,太小了不够存放,休眠后重新唤醒,显示界面有大片花点区域,估计是数据丢失一部分导致的。以后swap多分些。

--------------------------以下内容属于标题相关的最近更新-------------------------

2、系统驱动安装前, 卸载已有nvidia驱动, 禁止nouveau驱动

2.1.sudo apt-get remove --purge nvidia*    #卸载原有的nvidia驱动
2.2.sudo gedit /etc/modprobe.d/blacklist-nouveau.conf        #创建文本文件
#打开后加上两行:1.blacklist nouveau    2.options nouveau modeset=0
2.3.sudo update-initramfs -u # 此时可以用lsmod | grep nouveau #查看没有输出即下载成功,如果有可重启再次查看

 

3 安装nvidia的指定版本驱动(tty中执行, ctrl+alt+F[1-9]  )

确定执行了: sudo apt-get remove --purge nvidia*

确定执行了:lsmod |grep nouveau #无显示。

确定tty中执行了:sudo service lightdm stop #关闭图形界面。

方法一:安装下载的 NVIDIA-XXXX.run:  sudo sh NVIDIA-XXXX.run #如果Ubuntu 安装nvidia驱动遇到 pre-install scipt failed 错误, 据说只是被nvidia开了个玩笑, 直接忽略继续下去。

方法二:
a. sudo add-apt-repository ppa:graphics-drivers/ppa
b. sudo apt-get update
c. sudo apt-get install nvidia-driver-410    #也可以选择自己需要的版本
d. 重启,使用nvidia-smi查询是否安装

方法三:

 

soft-update中直接选目标驱动安装(18.04的便利)

 

3、 装cuda10.2

我下载xxx.run的loca安装文件,注意10.2版本中选择安装哪一项,是用[X]表示选中安装,[ ] 表示不选择该项。 这个叉叉符号是反过来理解成勾勾。

这一步需要注意点比较多,直接参考官网文档(官网,官网,官网。重要的事情说三遍,官网才算权威,别瞎折腾看别人博客)

cuda官网安装文档链接[1] http://docs.nvidia.com/cuda/cuda-installation-guide-linux/#axzz4HIBXnwyt,通过官网指导运行.run文件。

但是,官网也不全完整。运行完 .run 文件,看============ Summary ============下面的运行结果提示,有missing的包,找到手动安装。

 

 

 

添加系统环境变量,写到/etc/profile的尾部

$ sudo gedit /etc/profile

 

export PATH=/usr/local/cuda-10.2/bin:$PATH

export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH

 

 

 

4、 检测cuda是否正常

$ nvcc -V //查看是否为10.2的nvcc版本

$ cd /usr/local/cuda-10.2/samples/1_Utilities/deviceQuery

$ make

$ sudo ./deviceQuery //查看是否有cuda8.0 的gpu内容

上面这一步,可能会报错could not insert 'nvidia_340_uvm'(跳过这一步检测,后面可能会继续报相同错误,或者提示gpu0不能用)。如下:

./deviceQuery Starting...
 CUDA Device Query (Runtime API) version (CUDART static linking)
modprobe: ERROR: could not insert 'nvidia_340_uvm': Invalid argument
cudaGetDeviceCount returned 30
-> unknown error
Result = FAIL

解决参考[3]中所述: sudo apt-get remove nvidia-340 。然后继续检测sudo ./deviceQuery 看是否正常。

 

5、装cudnn, [5]是nvidia官方的cudnn指导文档(https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#axzz4qYJp45J2)。

另外,[4]和[2]都有详述,以[2]为主要参考, 目前不支持cudnn6吧,我试了下失败。

选择对应你cuda版本的cudnn下载。这里我下载的是cudnn5.1,解压后复制到相应位置,授权,增加链接关系。如下:

$ cd cudnn/include/ (解压后的cudnn目录,目录文件有可能叫cudn)

$ sudo cp cudnn.h /usr/local/cuda/include/   #复制头文件

$ cd cudnn/lib64/

$ sudo cp lib*  /usr/local/cuda/lib64/   #复制动态链接库

$ cd /usr/local/cuda/lib64/sudo rm -rf libcudnn.so libcudnn.so.5   #删除原有动态文件

$ sudo ln -s libcudnn.so.5.0.5 libcudnn.so.5 #生成软衔接

$ sudo ln -s libcudnn.so.5 libcudnn.so     #生成软链接

--------------------------以上内容属于标题相关的最近更新-------------------------

6、各种依赖项安装,详细看[4]。

6.1  装bazel,看[4],也可参考bazel官网。

6.2  装jdk8,看[4],这个也可以百度,就复制+环境变量操作而已。

6.3  装其他python 依赖:

# For Python 2.7:
$ sudo apt-get install python-numpy swig python-dev python-wheel
# For Python 3.x:
$ sudo apt-get install python3-numpy swig python3-dev python3-wheel 

 

7、编译tensorflow

 这一步要一气呵成,中途出错回到7的起点继续往后装。下载好的tensorflow编译文件备份,出错就删掉之前用过的,再用备份的。别问为什么,填过的坑,没必要再填。

7.1 从tensorflow的github仓库下载代码
$ git clone https://github.com/tensorflow/tensorflow

$ cd tensorflow根目录

$ ./configure 出现error或者没有successful,退回到7的起点。

7.2 配置GPU支持,这一步耗费时间比较长

$ bazel build -c opt --config=cuda //tensorflow/cc:tutorials_example_trainer
$ bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu(这步有可能出现4中错误)
# Lots of output. This tutorial iteratively calculates the major eigenvalue of
# a 2x2 matrix, on GPU. The last few lines look like this.
000009/000005 lambda =2.000000 x = [0.894427 -0.447214] y = [1.788854 -0.894427]

7.3 创建pip包并安装它

$ bazel build -c opt //tensorflow/tools/pip_package:build_pip_package
# To build with GPU support:
$ bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
#The name of the .whl file will depend on your platform.
#这一步之前,你要进入/te//tensorflow_pkg目录查看具体生成的whl文件的名称

#进入anaconda的bin目录,执行
./pip install /tmp/tensorflow_pkg/tensorflow-0.11.0rc0-py2-none-any.w

到这里算是修道飞升成功!

 

8 、reference

[1] http://docs.nvidia.com/cuda/cuda-installation-guide-linux/#axzz4HIBXnwyt

[2] http://www.th7.cn/system/lin/201608/176823.shtml

[3] https://github.com/fchollet/keras/issues/3043

[4] http://blog.youkuaiyun.com/u010900574/article/details/52201808

[5] https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#axzz4qYJp45J2





<think>好的,我现在需要帮助用户解决在Ubuntu 18.04上安装GPU驱动并验证可用性的问题。首先,我得回顾用户之前的对话和提供的引用内容,确保回答准确且覆盖可能的问题点。 用户之前已经得到过安装驱动的几种方法,包括自动安装、手动指定版本和图形界面安装。现在用户再次提问,可能需要更详细的步骤或额外的注意事项。同时,用户提供的引用中提到了双显卡安装的问题、手动运行.run文件安装驱动以及特定硬件(如RTX3090)的兼容性问题,这些都需要考虑进去。 首先,我得确认Ubuntu 18.04对较新显卡的支持情况。比如引用中提到RTX3090需要CUDA 11.0+,而用户可能在使用这类新显卡时遇到驱动兼容性问题。此外,双显卡配置可能导致循环登录问题,这也是用户之前提到的,需要给出解决方法。 接下来,安装方法方面,除了之前提到的自动和手动安装,用户引用中提到了使用.run文件安装的方法,这可能在某些情况下更灵活,但需要关闭nouveau驱动,并处理相关依赖。需要将此方法补充到回答中,并提醒用户注意安全启动设置。 验证步骤部分,用户可能不仅需要基础的nvidia-smi和glxinfo命令,还需要CUDA测试和深度学习框架的验证,特别是引用中提到的TensorFlow和MMDetection的安装,这可能属于高级验证,但用户可能有相关需求,所以可以简要提及。 常见问题方面,用户引用中的ACPI BIOS错误、循环登录问题以及Secure Boot的影响都需要涵盖,给出具体的解决步骤,如修改grub参数、禁用nouveau驱动等。 最后,确保回答结构清晰,分步骤说明,引用相关来源,并提示用户可能遇到的陷阱,比如驱动版本与CUDA的兼容性、双显卡切换等。需要保持语言简洁,技术细节准确,同时避免使用用户不熟悉的术语,必要时给出命令示例和解释。</think>以下是在Ubuntu 18.04上安装GPU驱动及验证可用性的完整指南,整合了系统级操作和引用中的关键信息: ### 一、安装GPU驱动的三种方法 #### █ 方法1:自动安装(推荐) ```bash $ sudo ubuntu-drivers devices # 查看推荐驱动版本[^1] $ sudo ubuntu-drivers autoinstall && sudo reboot ``` ▲ 适用场景:普通NVIDIA显卡(如GTX 10/16系) ▲ 优势:自动选择兼容驱动版本(如470/510) #### █ 方法2:PPA仓库安装(新硬件支持) ```bash $ sudo add-apt-repository ppa:graphics-drivers/ppa $ sudo apt update $ ubuntu-drivers devices # 显示更多可选版本 $ sudo apt install nvidia-driver-525 && sudo reboot ``` ▲ 适用场景:RTX 30/40系新显卡(需CUDA 11+支持)[^3] #### █ 方法3:手动安装.run文件 ```bash $ sudo telinit 3 # 进入文本模式 $ sudo service gdm3 stop $ sudo bash NVIDIA-Linux-x86_64-510.54.run --no-opengl-files $ sudo reboot ``` ▲ 适用场景:需要完全控制安装参数时[^2] ▲ 注意:必须禁用nouveau驱动: ```bash $ sudo nano /etc/modprobe.d/blacklist-nouveau.conf # 添加: blacklist nouveau options nouveau modeset=0 $ sudo update-initramfs -u ``` ### 二、深度验证GPU可用性 #### █ 基础验证 ```bash $ nvidia-smi # 检查驱动版本和GPU状态 $ nvidia-settings # 图形界面查看详细信息 ``` ▲ 合格输出应显示: ``` +-----------------------------------------------------------------------------+ | NVIDIA-SMI 525.85.12 Driver Version: 525.85.12 CUDA Version: 12.0 | ``` [^2] #### █ 高级验证(针对深度学习) 1. **CUDA验证**: ```bash $ sudo apt install nvidia-cuda-toolkit $ nvcc --version # 应显示与驱动兼容的CUDA版本 ``` 2. **TensorFlow验证**: ```python import tensorflow as tf print(tf.config.list_physical_devices('GPU')) # 应显示GPU信息[^3] ``` 3. **OpenMMLab框架验证**: ```bash $ pip install openmim $ mim install mmdet $ python -c "import mmdet; print(mmdet.__version__)" # 应返回版本号[^4] ``` ### 三、双显卡特殊配置 针对核显+NVIDIA双显卡: ```bash $ sudo prime-select query # 查看当前使用显卡 $ sudo prime-select nvidia # 强制使用NVIDIA显卡 $ sudo reboot ``` ▲ 若出现循环登录问题: 1. 安装时添加`nomodeset`参数 2. 禁用Wayland: ```bash $ sudo nano /etc/gdm3/custom.conf # 取消注释:WaylandEnable=false ``` ### 四、故障排查指南 | 现象 | 解决方案 | |-------|---------| | 安装后黑屏 | 在GRUB引导时添加`nomodeset`参数[^1] | | ACPI BIOS Error | 更新主板BIOS或添加`acpi=off`临时参数 | | CUDA版本不匹配 | 使用`nvidia-uninstall`完全卸载后重装驱动 | | TensorFlow检测不到GPU | 检查CUDA/cuDNN版本兼容性 | ### 五、版本兼容性对照表 | 显卡型号 | 推荐驱动版本 | CUDA支持 | |---------|-------------|---------| | RTX 3090/4090 | ≥515 | CUDA 11.7+ | | RTX 20系 | 470-510 | CUDA 11.0+ | | GTX 10系 | 390-470 | CUDA 10.2 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值