Ubuntu 20.04下多版本CUDA的安裝與切換 超詳細教程

目錄

  • 前言
  • 一、安裝 CUDA
    • 1.找到所需版本對應命令
    • 2.下載 .run 文件
    • 3.安裝 CUDA
    • 4.配置環境變量
      • 4.1 寫入環境變量
      • 4.2 軟連接
    • 5.驗證安裝
  • 二、安裝 cudnn
    • 1.下載 cudnn
    • 2.解壓文件
    • 3.替換文件
    • 4.驗證安裝
  • 三、切換 CUDA 版本
    • 1.切換版本
    • 2.檢查版本

前言

當我們復現代碼時,總會需要不同版本的 CUDA 。此時,我們就需要安裝多個版本的 CUDA ,并實現靈活切換。

本文將在已有 CUDA11.3 的 Ubuntu20.04 下,安裝 CUDA11.8 。

已經存在的CUDA環境

一、安裝 CUDA

1.找到所需版本對應命令

CUDA官方下載地址

1.1 找到對應版本
在這里插入圖片描述
1.2 選擇對應的操作系統
Linux -> x86_64 -> Ubuntu -> 20.04 -> runfile(local)
在這里插入圖片描述
可以看到有兩條命令,依次對應下載和安裝。

在這里插入圖片描述

2.下載 .run 文件

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

在這里插入圖片描述

3.安裝 CUDA

(1) 運行 .run 文件進行安裝

sudo sh cuda_11.8.0_520.61.05_linux.run

在這里插入圖片描述
(2) 方向下鍵↓,選中 “Continue” ,回車 “Enter” 確認
在這里插入圖片描述
(3) 輸入 accept,然后回車
在這里插入圖片描述

(4) 使用方向下鍵↓,移動到 Driver 上,回車勾選掉 Driver
由于安裝的多版本 CUDA ,安裝第一個 CUDA 的時候已經安裝過驅動,所以不需要再重復安裝。
在這里插入圖片描述
(5) 使用方向下鍵↓,移動到 Install 上,回車開始安裝
在這里插入圖片描述
(6) 之后一路默認,一直敲回車即可

出現如下圖的提示即是安裝成功
在這里插入圖片描述

4.配置環境變量

4.1 寫入環境變量

(1) 打開配置文件

sudo gedit ~/.bashrc

在這里插入圖片描述

(2) 寫入所需的環境變量

# CUDA enviroment variable
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda

在這里插入圖片描述

(3) 更新環境變量

source ~/.bashrc

4.2 軟連接

(1) 進入 /usr/local 目錄下

cd /usr/local

在這里插入圖片描述
在這里插入圖片描述

(2) 刪除原有的軟連接

sudo rm -rf cuda

在這里插入圖片描述

(3) 新建軟連接,將其連接到 CUDA11.8

sudo ln -s /usr/local/cuda-11.8 /usr/local/cuda

在這里插入圖片描述

5.驗證安裝

nvcc -V

可以看到 CUDA 版本已經更新為 11.8
在這里插入圖片描述

二、安裝 cudnn

1.下載 cudnn

CUDA官方網址
選擇適合自己 CUDA 版本的 cuDNN 下載
在這里插入圖片描述
在這里插入圖片描述

2.解壓文件

(1) 進入下載目錄
(2) 解壓 .xz

xz -d cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz

在這里插入圖片描述

(3) 解壓 .tar

tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar

在這里插入圖片描述

3.替換文件

(1) 切換超級用戶

su

(2) 復制 lib 或 lib64 文件夾下的文件到 CUDA 安裝位置的 lib64 文件夾下

cp lib/* /usr/local/cuda-11.8/lib64/

在這里插入圖片描述

(3) 復制 include 文件夾下的全部文件到 CUDA 安裝位置的 include 文件夾下

cp include/* /usr/local/cuda-11.8/include/

在這里插入圖片描述

4.驗證安裝

cat /usr/local/cuda-11.8/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

出現下圖提示即為安裝成功
在這里插入圖片描述

三、切換 CUDA 版本

1.切換版本

(1) 進入 /usr/local 目錄下

cd /usr/local

在這里插入圖片描述

(2) 刪除軟連接

sudo rm -rf cuda

在這里插入圖片描述

(3) 新建軟連接到想切換的版本

sudo ln -s /usr/local/cuda-11.3 /usr/local/cuda

在這里插入圖片描述

2.檢查版本

nvcc -V

可以看到版本已經切換成功
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/41253.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41253.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41253.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深入分析SSL/TLS服務器的證書(C/C++代碼實現)

SSL(Secure Sockets Layer)和TLS(Transport Layer Security)是網絡安全領域的重要協議,它們在保護網絡通信中發揮著至關重要的作用。這些協議通過加密和身份驗證機制,確保數據在傳輸過程中的機密性和完整性…

建投數據與中再數科簽署戰略合作協議

近日,建投數據科技股份有限公司(以下簡稱“建投數據”)與中再保數字科技有限責任公司(以下簡稱“中再數科”)簽署戰略合作協議。雙方通過資源整合共享,實現優勢互補,共同探索產品及服務的跨領域…

初見:AntDB智能運維“三劍客“之ACC

前情回顧 在前兩個章節中,我們介紹了 AntDB 智能運維"三劍客"的 ADC 和 MTK。 初見:AntDB智能運維"三劍客"之ADC 初見:AntDB智能運維"三劍客"之MTK 本文將繼續介紹 AntDB 數據庫智能運維平臺 ACC。 AntDB 介紹…

如何設置PHP wkhtmltopdf

首先參考:Composer三步曲:安裝、使用、發布 在 php 路徑下,應能打開命令行輸入php -v能夠看到php版本信息。 然后執行以下三條: php -r "copy(https://install.phpcomposer.com/installer, composer-setup.php);"php…

minist數據集分類模型的訓練

minist數據集訓練 訓練方法:利用pytorch來實現minist數據集的分類模型訓練 訓練模型如下圖所示 模型代碼: import torch from torch import nn from torch.nn import Flattenclass Net(nn.Module):def __init__(self):super().__init__()self.module …

ChatGPT對話:Scratch編程中一個單詞,如balloon,每個字母行為一致,如何優化編程

【編者按】balloon 7個字母具有相同的行為,根據ChatGPT提供的方法,優化了代碼,方便代碼維護與復用。初學者可以使用7個字母精靈,復制代碼到不同精靈,也能完成這個功能,但不是優化方法,也沒有提高…

__builtin_constant_p 常量檢查函數

__builtin_constant_p 詳細介紹 功能:__builtin_constant_p 是 GCC (GNU Compiler Collection) 提供的一個內置函數,用于在編譯時檢測一個表達式是否是常量。它返回一個整型值: 如果表達式 exp 是編譯時常量,則返回 1。否則&…

【sklearn模型訓練全指南】深入理解機器學習模型的構建過程

標題:【sklearn模型訓練全指南】深入理解機器學習模型的構建過程 在機器學習中,模型訓練是一個核心過程,它涉及到從數據中學習并獲得預測能力。scikit-learn(簡稱sklearn)作為Python中一個廣泛使用的機器學習庫&#…

FairJob:促進在線廣告系統公平性研究

在人工智能(AI)與人類動態的交匯處,既存在機遇也存在挑戰,特別是在人工智能領域。盡管取得了進步,但根植于歷史不平等中的持續偏見仍然滲透在我們的數據驅動系統中,這些偏見不僅延續了不公平現象&#xff0…

Centos新手問題——yum無法下載軟件

起因:最近在學習centos7,在VM上成功安裝后,用Secure進行遠程登陸。然后準備下載一個C編譯器,看網絡上的教程,都是用yum來下載,于是我也輸入了命令: yum -y install gcc* 本以為會自動下載&…

使用Python繪制雷達圖

使用Python繪制雷達圖 雷達圖效果代碼 雷達圖 雷達圖,也稱為蛛網圖或星型圖,是一種二維圖表,用于顯示多變量數據。每個變量在一個從中心點向外輻射的軸上表示,軸的數量與變量的數量相同。雷達圖通常用于比較多個樣本的多維數據&a…

docker部署redis/mongodb/

一、redis 創建/root/redis/conf/redis.conf 全部執行命令如下 docker run -it -d --name redis -p 6379:6379 --net mynet --ip 172.18.0.9 -m 400m -v /root/redis/conf:/usr/local/etc/redis -e TXAsia/Shangehai redis redis-server /usr/local/etc/redis/redis.conf 部署…

C#——密封類詳情

密封類 密封類是密封方法的擴展,用于確保某個類不會被繼承。在C#中,你可以使用sealed關鍵字來聲明一個密封類。 public sealed class SealedClass {// 類成員定義 } 如果使用密封類繼承的話,程序會報錯!!&#xff0…

01:spring

文章目錄 一:常見面試題1:什么是Spring框架?1.1:spring官網中文1.2:spring官網英文 2:談談自己對于Spring IOC和AOP的理解2.1:IOCSpring Bean 的生命周期主要包括以下步驟: 2.2&…

Centos7開放端口

在CentOS 7中,開放端口的命令主要通過firewall-cmd工具來執行。以下是詳細的步驟和命令說明: 一、使用firewall-cmd開放端口 查看當前的防火墻區域(zone) 執行命令: firewall-cmd --get-active-zones此命令將顯示當前…

代碼的壞味道——長函數

前言:一個函數應該盡量做一件事情,如果非要做多個事情,要做函數提取,每次迭代應該考慮到是否有重復代碼或者可以優化的代碼。 長函數:長函數的產生: 邏輯是平鋪直敘的需求迭代沒有考慮優化,一次…

解決微信讀書和Apple Books導入epub電子書不顯示圖片的問題

title: 解決微信讀書和Apple Books導入epub電子書不顯示圖片的問題 tags: 個人成長 categories:雜談 最近找到一本很喜歡的書的電子版的epub版,發現無論是導入微信讀書,還是Apple家的Books, 都無法正常顯示圖片。 于是我用calibre打開epub電子書&#x…

安卓虛擬位置修改

隨著安卓系統的不斷更新,確保軟件和應用與最新系統版本的兼容性變得日益重要。本文檔旨在指導用戶如何在安卓14/15系統上使用特定的功能。 2. 系統兼容性更新 2.1 支持安卓14/15:更新了對安卓14/15版本的支持,確保了軟件的兼容性。 2.2 路…

linux中可執行文件為什么不能拷貝覆蓋

對于一個普通的文件,假如有兩個文件,分別是file和file1,我們使用 cp file1 file的方式使用file1的內容來覆蓋file的內容,這樣是可以的。 但是對于可執行文件來說,當這個文件在執行的時候,是不能通過cp的方…

將 KNX 接入 Home Assistant 之四 功能測試

一:測試標準的KNX網關功能 測試軟件識別是否正常 可以看到再ETS6和ETS5上都能正常識別 測試數據收發 可以正常發送數據 測試配置設備參數(下載配置) 可以看出,在ETS5上是可以正常下載參數的 但是 ETS6下載是失敗的&#xff…