Ubuntu下安装cuda_Ubuntu下KDE的安装删除

Ubuntu下安装cuda_Ubuntu下KDE的安装删除Ubuntu下安装CUDA、cuDNN;多版本安装

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

系列总目录 链接→ [系统配置、包/库安装、问题修复]

注意:

  • Ubuntu18.04默认GCC-7,由于CUDA 9.x不支持GCC-7(下载页面没有对ubuntu18的支持),所以需要安装低版本的5或者<= 6.3.0,并设置为默认版本。否则应安装10.0以上版本CUDA
  • Nvidia显卡驱动与CUDA版本对应关系,显卡驱动版本越高,就可支持越高版本的CUDA,并对低等级驱动向下支持

安装步骤

  1. 查看是否安装了cuda

    # 法1
    cat  /usr/local/cuda/version.txt
    # 法2
    nvcc --version
    
  2. 若没有安装,则查看是否有N卡驱动,若无N卡驱动,则到软件与更新 -> 附加驱动中安装驱动

  3. 查看N卡驱动支持的cuda版本

    nvidia-smi
    

    如下图支持最高CUDA版本是11.4在这里插入图片描述

  4. cuda-toolkit-archive,选择需要的CUDA下载

  5. 如下图,选择runfile(local),并使用生成的指令进行下载和安装
    在这里插入图片描述
    若第1步提示Existing package manager installation of the driver found. It is strongly recommended that you remove this before continuing.,选择continue,在下一步中去除driver项,之后选择install在这里插入图片描述
    安装完成后,显示如下:
    在这里插入图片描述

  6. ~/.bashrc文件中添加如下环境变量:

    export PATH=/usr/local/cuda-11.3/bin${ 
         PATH:+:${ 
         PATH}}
    export LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
    
  7. 验证是否安装成功

    nvcc -V
    

    在这里插入图片描述

  8. 安装cuDNN,到cudnn-archive下载和CUDA对应的版本

    1.Navigate to your <cudnnpath> directory containing the cuDNN tar file.
    2.Unzip the cuDNN package.
      $ tar -xvf cudnn-linux-x86_64-8.x.x.x_cudaX.Y-archive.tar.xz
    3. Copy the following files into the CUDA toolkit directory.
      $ sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include 
      $ sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64 
      $ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
    

    按照↑教程,可下载cuDNN Library for Linux (x86_64)用复制的方式安装,使用如下命令查看安装版本

    cat /usr/local/cuda-11.3/include/cudnn.h | grep CUDNN_MAJOR -A 2
    
  9. 也可下载Runtime LibraryDeveloper Library的deb包,使用sudo dpkg -i xxx.deb命令进行安装,使用如下命令查看安装版本

    cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
    
  10. ~/.bashrc文件中添加cudnn环境变量如下:

    export LD_LIBRARY_PATH=/usr/local/cuda-11.3/targets/x86_64-linux/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
    
  11. 多版本CUDA安装重复上述步骤即可,最后通过更改第6步、第10步中环境变量切换CUDA版本

Cuda使用中的一些问题

  • cmake error,报错找不到cuda_cublas_device_library
    解决:出错版本为cuda10.2。cuda10.0版本的libcublas.so在其lib64目录下,cuda11.x版本的libcublas.so在其targets/x86_64-linux/lib/目录下,但cuda10.2放在系统目录中,要升级到高版本cmake才能让其主动找到对应文件。经查其他博文,cuda10.2需要camke3.17以上。cmake升级参考cmake 升级,cmake下载时下那个源码包。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/190384.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • python 2022.01.13 激活【2021最新】

    (python 2022.01.13 激活)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/ide…

  • beanutils.copyproperties源码_beanutils.populate用法

    beanutils.copyproperties源码_beanutils.populate用法总结:BeanUtils.copyProperties(b,a);原理:1根据b的属性来2调用原理a.set+b的属性名(b.get+b的属性名)下面是实例代码[code="java"]importorg.springframework.beans.BeanUtils;publicclassTest{…

  • werkzeug LocalProxy

    werkzeug LocalProxy1.当我们代理的理解fromwerkzeug.localimportLocalStack,LocalProxyl_stack=LocalStack()l_stack.push({‘name’:’wang’})l_stack.push({‘name’:’wei’})defget_name():returnl_stack.pop()#不用代理name=get_name()print(f”nameis{name[‘name’]}”)print(f”

  • slic超像素分割算法_hdr算法

    slic超像素分割算法_hdr算法原文出自:https://blog.csdn.net/Fighting_Dreamer/article/details/77170859SLIC与目前最优超像素算法的比较RadhakrishnaAchanta,AppuShaji,KevinSmith,AurelienLucchi,PascalFua,andSabineS¨usstrunk摘要近年来,计算机视觉应用越来越依赖…

    2022年10月28日
  • idea ultimate 激活码[最新免费获取]

    (idea ultimate 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • VMM callback「建议收藏」

    VMM callback「建议收藏」vmm的callback调用的是基类,而不是扩展类。这样做的目的,就是不修改原程序结构的基础上来增加或者替换内容,大大的提高了重用性。修改的内容在扩展类中增添。这种思想应该来源于SV中的虚方法,虚方法可以重写其所有基类中的方法,然普通的重写只能在本身及其扩展类中有效。这样就可以调用基类的时候,访问到扩展类中对基类中虚函数的重写。由虚函数发展到虚类,虚类是一个定义抽象概念的类模板,不可以实…

发表回复

您的电子邮箱地址不会被公开。

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