首页 > 其他分享 >安装cuda

安装cuda

时间:2024-11-29 15:59:39浏览次数:4  
标签:架构 cuDNN cuda 版本 安装 CUDA


(1)介绍


CUDA(Compute Unified Device Architecture)

  • 是 NVIDIA 推出的一种并行计算平台和编程模型。它允许开发者利用 NVIDIA GPU(图形处理器)的强大计算能力进行通用计算,而不仅仅局限于图形渲染。eg:大量的矩阵运算等计算密集型任务

  • CUDA 提供了一套完整的开发工具,包括编译器、调试器等,使程序员能够编写在 GPU 上运行的代码。这些代码可以用 C/C++ 等编程语言编写,并通过 CUDA 的特定扩展语法来调用 GPU 的功能。例如,通过 CUDA 可以将数据从 CPU 内存传输到 GPU 内存,然后在 GPU 上启动大量的线程来并行处理数据


cuDNN(CUDA Deep Neural Network library)

  • cuDNN 是 NVIDIA 专门为深度学习任务设计的,它构建在 CUDA 之上

  • 它提供了高度优化的深度学习原语,如卷积、池化、归一化等操作的实现。以卷积神经网络(CNN)为例,卷积操作是其核心操作之一,cuDNN 对卷积操作进行了专门的优化,能够极大地提高卷积计算的速度

  • 例如,它可以根据 GPU 的架构特点(如不同的流处理器数量、内存带宽等)来调整计算策略,以达到最佳性能


  • CUDA 提供了通用的 GPU 计算功能,是一个比较基础的平台。而 cuDNN 是在 CUDA 的基础上,针对深度学习领域进行了更高层次的抽象和优化。



(2)一些疑问


问1:cuDNN是python库吗?

答1:cuDNN不是Python库。cuDNN 本质上是一个用 C/C++ 编写的库。

  • 虽然 cuDNN 本身不是 Python 库,但是在 Python 的深度学习框架(如 TensorFlow、PyTorch 等)中提供了 Python 接口来调用 cuDNN

  • 例如,当安装了支持 cuDNN 的 PyTorch 版本并且系统正确安装了 cuDNN 和 CUDA 后,PyTorch 会在底层自动利用 cuDNN 来加速深度学习操作。具体来说,在执行卷积神经网络的训练或推理过程中,像卷积层的前向传播和反向传播等操作会调用 cuDNN 中经过优化的卷积函数来提高计算速度。



问2:安装 CUDA 时会自带安装 cuDNN 吗?

答2:安装 CUDA 时并不会自带安装 cuDNN,二者需要分别进行安装

  • 只有在系统中先安装好 CUDA 后,才能安装和使用 cuDNN

  • 下载时需要根据已安装的 CUDA 版本选择对应的 cuDNN 版本,然后将下载的文件解压并复制到 CUDA 的安装目录下相应的文件夹中,还需要进行一些环境变量的配置等操作才能使用




(3)在ubuntu上安装cuda/cuDNN



如图所示,本机已经有cuda11.5和cuda12.4两个版本。

现在由于实验环境需要,要下载 cuda11.8 版本以及其配套的 cuDNN


1.查看本机的一些信息


查看系统架构:uname -m命令或arch命令

系统架构是指一个系统的基本结构和组织方式,它描述了系统的各个组成部分以及这些部分之间如何相互关联和交互。

  1. 硬件架构
    • x86架构
      • 这是一种常见的计算机微处理器架构,由英特尔(Intel)开发。x86架构有32位(如i686)和64位(如x86_64)版本。它广泛应用于个人计算机、服务器等。其特点是具有强大的计算能力和丰富的软件生态系统。
    • ARM架构
      • ARM架构最初由ARM公司设计,常用于移动设备(如智能手机、平板电脑)和嵌入式系统。ARM架构有多种变体,如arm64 - sbsa(基于服务器的标准引导架构)和aarch64 - jetson(NVIDIA Jetson系列开发板使用的架构)。ARM架构的优点是功耗低,适合电池供电设备。
  2. 软件架构
    • 包括操作系统架构(如Linux内核架构、Windows NT架构)和应用程序架构(如三层架构、微服务架构)。
      • 例如,Linux内核采用了模块化的架构,它由进程管理、内存管理、文件系统、设备驱动等模块组成,各个模块之间通过系统调用等机制相互通信和协作。

系统架构的设计需要考虑性能、可靠性、可扩展性、安全性等多个因素,不同的架构适用于不同的应用场景。例如,对于高性能计算场景,可能会选择x86架构的服务器;而对于物联网设备,通常会选择低功耗的ARM架构。


2.下载cuda安装包并安装


官网链接:https://developer.nvidia.com/cuda-11-8-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=runfile_local

根据官网给出的命令下载cuda11.8安装包:

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run

wget 命令在尝试下载 CUDA 安装包时遇到了“Permission denied”(权限被拒绝)的错误。
可以在 wget 命令前加上 sudo,这样你就可以以超级用户权限下载文件:

sudo wget https://developer.download.nvidia.cn/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run

安装包下载成功后,开始安装:

sudo sh cuda_11.8.0_520.61.05_linux.run

之后,又遇到提示“A symlink already exists at /usr/local/cuda. Update to this installation?”
因为在 /usr/local 目录下已经存在一个指向 CUDA 安装目录的符号链接(symlink)。这个符号链接通常指向你之前安装的 CUDA 版本,选择yes会将现有的符号链接更新为指向新安装的 CUDA 版本。

安装好后,检查确认环境变量配置确实连接到了cuda11.8版本:使用命令nvcc --version查看cuda版本是否是11.8版本


3.下载安装对应版本的cuDNN


cuDNN安装方式
  1. 官网下载

    • 优势:官网提供的cuDNN版本齐全,且能够确保下载到的是正版、未经篡改的软件,与NVIDIA的CUDA等相关技术具有最佳的兼容性,适合追求稳定性和兼容性的用户.
    • 劣势:下载速度可能较慢,且注册和问卷调查等流程相对繁琐.
  2. pip工具下载

    • 命令示例:在Windows系统中,要安装对应CUDA 12的cuDNN,可以在命令行中输入 py -m pip install nvidia-cudnn-cu12;如果要安装对应CUDA 11的cuDNN,则输入 py -m pip install nvidia-cudnn-cu11 。若要安装指定版本的cuDNN,如cuDNN 9.x.y.z for CUDA 12,则运行 py -m pip install nvidia-cudnn-cu12==9.x.y.z ;安装cuDNN 9.x.y.z for CUDA 11,则运行 py -m pip install nvidia-cudnn-cu11==9.x.y.z.
    • 优势:使用pip下载cuDNN较为便捷,无需手动查找和下载对应的安装包,再进行复杂的配置和安装,能够自动处理依赖关系,简化了安装过程,适合希望快速安装和使用cuDNN的用户.
    • 劣势:可选择的cuDNN版本相对有限,且可能存在与系统中已安装的其他软件或库的版本冲突问题,需要用户自行解决。

cuDNN安装路径:
  • 官网下载:安装有默认的目录,但是也可以自定义安装目录,只要配置好对应的系统变量即可正确调用。

  • pip工具下载:在 Linux 系统中,如果是在虚拟环境下使用 pip 安装 cuDNN,文件通常会被安装到虚拟环境中的lib/python[版本号]/site-packages目录。对于配置问题有以下两种情况:

    • Python深度学习框架场景下:
      • 在很多情况下,如果仅在Python虚拟环境中使用cuDNN,并且是结合如TensorFlow、PyTorch等深度学习框架使用,这些框架在设计上通常会自动检测虚拟环境中cuDNN的安装路径。
      • 例如,当在虚拟环境中正确安装了TensorFlow - GPU版本(其依赖cuDNN),在导入TensorFlow库时,它会尝试在虚拟环境下查找cuDNN相关的库文件和头文件路径。如果安装过程没有出现异常,且遵循了正常的pip安装流程,框架自身可以处理好路径查找的问题,此时可能不需要手动配置环境变量
    • 非深度学习框架相关的C/C++等语言场景下:
      • 即使是在虚拟环境中,如果要在C/C++程序中使用cuDNN,还是可能需要配置环境变量
      • 因为在编译C/C++程序时,编译器需要知道cuDNN头文件的位置,通过-I(指定头文件路径)和-L(指定库文件路径)选项来编译。例如,在Linux系统下,虚拟环境中安装的cuDNN头文件可能在/home/user/venv/lib/python[版本号]/site-packages/cudnn/include,库文件可能在/home/user/venv/lib/python[版本号]/site-packages/cudnn/lib,在编译程序时需要将这些路径通过-I-L选项告知编译器,这类似于手动配置了一种临时的“编译环境变量”。
      • 在运行C/C++程序时,在Linux系统下还需要确保LD_LIBRARY_PATH环境变量包含了库文件所在目录,否则程序可能无法找到库文件而导致运行错误。在Windows系统下,需要确保PATH环境变量包含库文件所在目录,以便正确加载动态链接库。

使用pip工具下载cuDNN

CUDA 11.8 兼容的 cuDNN 版本主要有 cuDNN 8.x 系列,eg:cuDNN 8.9 cuDNN 8.8,由于实验的需要,这里使用8.7版本


先激活虚拟环境,再使用pip工具下载对应的包即可nvidia-cudnn-cu11==8.7.0.84具体版本根据实验和本机的cuda版本来确定

(具体安装特定版本遇到的问题可参考:https://www.cnblogs.com/kakafa/p/18576875 里的内容)


另外,还可以用一种更简便的方法,如果硬件环境操作系统等都一致,可以直接用conda虚拟环境打包的功能,把整个环境复制到另一台机子上。具体操作课查询chatgpt













参考链接:https://blog.csdn.net/weixin_44573410/article/details/119735565


标签:架构,cuDNN,cuda,版本,安装,CUDA
From: https://www.cnblogs.com/kakafa/p/18574408

相关文章

  • 宝塔安装wordpress打不开
    当你在宝塔面板上安装了WordPress但无法打开时,可以尝试以下几个步骤来排查和解决问题:检查网站配置确认在宝塔面板中,WordPress站点的配置是否正确,包括域名、端口等信息。检查站点的伪静态设置是否已开启,对于WordPress,通常需要启用伪静态规则。检查数据库连接确保WordPr......
  • 一台电脑如何安装多个不同版本的Node并能自由切换(NVM)
    使用场景:在做前端开发时公司有vue2和vue3的项目需要维护或自学,vue2大多只需要Node14版本,而vue3则是16以上版本,但电脑只能装一个Node,可我全都要。比如一会切到Node14vue2开发,一会切到Node16+vue3开发,所以我就想如果一台电脑能装多个不同Node版本,同时能自由切换,于是就查到了神器......
  • 【Python学习】2024Python安装与配置IDE汉化集活的全套教程
    包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】领取!【一】Python解释器下载【运行环境】【1】Python官网包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】![https://www.python.org](官网进不去的可以点击点击领取,100%免费!安装包)......
  • 重新启动CUDA驱动
    重新启动CUDA驱动在Linux中,CUDA驱动通常是由NVIDIA的nvidia-driver控制的。如果CUDA驱动出现问题,你可以通过重启NVIDIA的驱动程序来恢复正常。可以通过以下步骤进行重启:1.1停止GPU服务你可以使用以下命令停止nvidia-persistenced服务(这个服务管理GPU的持久化模式):sudosyste......
  • 2024年Python&pycharmIDE安装与配置汉化教程!
    【一】Python解释器下载【运行环境】包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】!【1】Python官网[https://www.python.org](官网进不去的可以点击点击领取,100%免费!安装包)【2】Python各版本解释器官网【二】Windows系统安装Python解释器【1】......
  • task1安装
    task01安装1.安装并激活anaconda>通过输入condainit实现。2.更换镜像源。(国内网站速度过慢)1)condia更换镜像源通过校园网联合镜像站复制镜像源,进行换源2)pypi更换镜像源pipconfigsetglobal.index-urlhttps://mirrors.cernet.edu.cn/pypi/web/simple3.课程环境搭建1)创......
  • PakePlus只要9分钟把网站打包成轻量跨平台APP,安装包仅5M左右
    开源地址:https://github.com/Sjj1024/PakePlus哔哩哔哩视频教程:PakePlus只需要9分钟就可以生成一个跨平台APP很简单的用Rust打包网页生成很小的桌面App......
  • Tomcat新手成长之路:安装部署优化全解析(上)
    文章目录1.Tomcat简介2.Tomcat原理架构2.1.总体架构2.2.连接器2.2.1.具体功能2.2.2.IO模型2.2.3.逻辑处理流程2.2.4.内部处理流程2.3.容器2.4.启动过程2.5.请求过程3.Tomcat适用场景4.Tomcat与其他Web容器对比5.Tomcat安装和启动5.1.Java环境变量5.2.系统服务5.3.启动......
  • SD下载安装教程,学习AI绘画软件必看(SD怎么安装,SD安装教程,安装stable diffusion软件必看
    去年,我开始花大量时间研究各种AI产品,仿佛打开了新世界大门。AI不仅帮我大幅提升了工作效率,也为我开拓了新的[副业]。AI到底有多好用?我举个例子,前几天我跟朋友一起做个项目,他费劲巴拉干了2天,结果还不理想。我用ChatGPT不到半个小时就搞定了,差点惊掉了他的下巴,以为我得到了什......
  • Andriod SDK安装教程
    前言最简单的方式我们使用ANDROIDSTUDIO这款开发工具下载对应的AndriodSDK。可是我们如果不开发安卓,只是用它的一些SDK包的话而安装整个开发工具,就没必要了。这里讲的是用独立的命令行工具来操作。下载命令行工具点击此处进入下载页面,滑动到最下边,选择合适的系统下载,我......