当前位置:首页 > 技术分析 > 正文内容

Ubuntu22.04中多版本CUDA切换

ruisui884个月前 (02-24)技术分析12

人工智能兴起,AI相关开源软件大部分都会使用到GPU,而NVIDIA的CUDA加速处于绝对垄断地位。而AI开源软件,使用的操作系统更倾向于Linux,但不同的软件对CUDA的版本有不同依赖,这样就造成开发调试不同软件,需要切换电脑到不同的CUDA版本。本文以Ubuntu22.04为例,说明本地电脑安装多版本CUDA并使用简单方式切换,以满足不同开发的需求。


当然,开发好的软件,docker部署运行时,只依赖特定版本CUDA,可以下载相关版本CUDA的镜像,宿主机只要安装最新GPU驱动与NVIDIA Container Toolkit。可以参考下面链接:

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html


GPU驱动

要在本机安装多版本cuda,并能切换后正常使用,首先要保障安装的GPU驱动是比较新的。可以从nvidia官方网站下载驱动。

安装驱动后,可以运行nvidia-smi ,如图查看到 CUDA version:12.2。表示此显卡可支持的CUDA版本最高到12.2。如果开发的软件依赖CUDA12.1,12.1<12.2,则这个显卡驱动版本满足要求。如果开发软件依赖CUDA12.4,则要首先升级GPU驱动到新版本。


多版本CUDA下载与安装

可以从
https://developer.nvidia.com/cuda-toolkit-archive 下载可能用到的CUDA版本。比如要下载cuda12.1、cuda11.8

根据自己的环境依次选择,推荐下载【runfile(local)】格式的文件。

wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.run
sudo sh cuda_12.1.1_530.30.02_linux.run

执行sh
cuda_12.1.1_530.30.02_linux.run开始安装此版本cuda。

  • 安装第一个CUDA版本:11.8

执行sudo sh
cuda_11.8.0_530.30.02_linux.run

因为已经安装过显卡驱动,这里选择【Continue】继续安装。

不选择Driver与Kernel Objects,Install

出现上面的画面表示cuda11.8已经安装完成。安装到的位置为:/usr/local/cuda-11.8

  • 安装第二个CUDA版本:12.1

如上运行sudo sh
cuda_12.1.1_530.30.02_linux.run。同样选择。

出现上面画面,选【Install】后,会出现新界面:

此界面是由于cuda11.8安装时,会自动在/usr/local/下建立软链接,名字为cuda,指向/usr/local/cuda-11.8。而此处安装cuda12.1.1,如果选【Yes】也会同样操作,将cuda软链接,指向/usr/local/cuda-12.1。因为我有很多的程序都是依赖cuda11.8的,所以此处选【No】

看到此界面,表示已经安装cuda12.1成功。


多版本cuDNN下载与安装

cuDNN(CUDA Deep Neural Network library)是 NVIDIA 提供的一个深度神经网络库。它为深度学习应用提供特别优化,如卷积、池化、归一化和激活函数等。如果安装CUDA是用于人工智能网络工作,需要安装此库。当然,这个库的版本与CUDA版本有依赖关系。

https://developer.nvidia.com/cudnn-archive

可以从上面的网址下载cudnn库。要下载库,需要用邮箱注册一个账号。

cuDNN 8.x - 1.x (December 2023 - August 2014) 是 8.x版及以前的cudnn版本。选择此种版本,选择方式与9.x方式稍有不同。但都是推荐下载tar 包文件为好。

根据操作系统及文件格式,选要下载的cudnn包。

cuDNN 9.1.0 (April 2024)

上面的选择界面中,有一个链接【Tarball and Zip Archive Deliverables

通过此处,可以从列表方式中选择要下载的cudnn Tar包。

  • cuDNN安装
  • cuDNN的安装,实际只是下载的tar包解压,然后把解压后文件,拷贝到对应版本的cuda下的对应目录。

    上面的两个cuda版本默认安装到/usr/local/下

    cuda-11.8/

    cuda-12.1/

    如下拷贝解压的tar包中文件,到对应的cuda版本目录下即可(cudaxx为对应的cuda-11.8或cuda-12.1):

    ?cp include/*.*? ? ? ? ? ? ? /usr/local/cudaxx/include? ? ? ?
    
    cp? lib/.*.*? ? ? ? ? ? ? ? ? ? ? ?/usr/local/cudaxx/lib64/

    配置文件修改

    修改/etc/profile文件,添加:

    export PATH=$PATH:/usr/local/cuda/bin
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
    export CUDA_HOME=/usr/local/cuda

    cuda版本切换

    上面说过,/usr/local/cuda是一个软链接。设置上面的环境变量后,只要切换软链接的指向位置,即可在实现切换cuda版本。

    cd /usr/local
    rm  cuda  				 删除软链接
    ln  -s  cuda-12.1/   cuda     	 将cuda-12.1/映射到cuda.

    上面的命令,即可实现切换到cuda12.1的环境。

    可以用 nvcc -V 来验证切换是否成功。

    扫描二维码推送至手机访问。

    版权声明:本文由ruisui88发布,如需转载请注明出处。

    本文链接:http://www.ruisui88.com/post/2208.html

    分享给朋友:

    “Ubuntu22.04中多版本CUDA切换” 的相关文章

    发行版Vanilla OS 2发布稳定版:彻底重写、改变使用Linux的方式

    Vanilla OS 是去年崭露头角的 Linux 发行版,最初的 1.0 版本基于 Ubuntu 构建 —— 亮点之一是系统核心“不可变”。后来改用 Debian 测试分支 (Debian Sid),免费且开源,默认桌面环境是 GNOME。什么是不可变 Linux 发行版?不可变发行版确保操作系统...

    10个实例小练习,快速入门熟练 Vue3 核心新特性(一)

    作者:xuying 全栈修炼转发链接:https://mp.weixin.qq.com/s/_n2seDbbiO5hXQfuUGbUCQ前言Vue3.0 发 beta 版都有一段时间了,正式版也不远了,所以真的要学习一下 Vue3.0 的语法了。本篇文章总共分两部分,望小伙伴们认真阅读。下一篇:10...

    Gitlab+Jenkins通过钩子实现自动部署web项目,图文详细教程

    扩展参考:Jenkins+Gitlab通过脚本自动部署回滚web项目至集群 一:基础环境介绍及准备1):Gitlab服务器:ubuntu 192.168.152.131 ---参考搭建:Linux安装gitlab,docker安装gitlab教程2):Jenkins服务器:ubunu 192.168...

    前后端分离自动化运维平台开发

    运维平台采用前后端分离:前端vue,框架vue-element-admin;后端python,框架django-rest-framework.目前运维平台模块如下:1、 CMDB管理应用管理、环境管理、开发语言管理、产品项目管理、资产管理2、 构建发布持续构建、持续部署、Jar工程依赖构建3、 容器...

    Acustica Audio 发布模拟Roland Jupiter 双声道合成器插件 TH2

    福利: Acustica Audio 发布模拟Roland Jupiter 风格的双声道合成器插件 TH2 免费下载 意大利 Acustica Audio 公司发布布模拟Roland Jupiter 风格的双声道合成器插件 TH2 ,灵感来源于Acustica Audio的THING-8系列,它是...

    一文让你彻底搞懂 vue-Router

    路由是网络工程里面的专业术语,就是通过互联把信息从源地址传输到目的地址的活动。本质上就是一种对应关系。分为前端路由和后端路由。后端路由:URL 的请求地址与服务器上的资源对应,根据不同的请求地址返回不同的资源。前端路由:在单页面应用中,根据用户触发的事件,改变URL在不刷新页面的前提下,改变显示内容...