欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > Ubuntu安裝和卸載CUDA和CUDNN的實現

Ubuntu安裝和卸載CUDA和CUDNN的實現

熱門標簽:ai電銷機器人 如何開發 電銷機器人對公司貢獻 山東400電話如何辦理 電話機器人服務差 高德地圖標注在建線路 宿州防封外呼系統廠家 濟源電話外呼系統怎么樣 智能外呼系統如何部署 蘭州語音電銷機器人軟件

前言

最近在學習PaddlePaddle在各個顯卡驅動版本的安裝和使用,所以同時也學習如何在Ubuntu安裝和卸載CUDA和CUDNN,在學習過程中,順便記錄學習過程。在供大家學習的同時,也在加強自己的記憶。本文章以卸載CUDA 8.0 和 CUDNN 7.05 為例,以安裝CUDA 10.0 和 CUDNN 7.4.2 為例。

安裝顯卡驅動

禁用nouveau驅動

sudo vim /etc/modprobe.d/blacklist.conf

在文本最后添加:

blacklist nouveau
options nouveau modeset=0

然后執行:

sudo update-initramfs -u

重啟后,執行以下命令,如果沒有屏幕輸出,說明禁用nouveau成功:

lsmod | grep nouveau

下載驅動

官網下載地址:https://www.nvidia.cn/Download/index.aspx?lang=cn ,根據自己顯卡的情況下載對應版本的顯卡驅動,比如筆者的顯卡是RTX2070:

下載完成之后會得到一個安裝包,不同版本文件名可能不一樣:

NVIDIA-Linux-x86_64-410.93.run

卸載舊驅動

以下操作都需要在命令界面操作,執行以下快捷鍵進入命令界面,并登錄:

Ctrl-Alt+F1

執行以下命令禁用X-Window服務,否則無法安裝顯卡驅動:

sudo service lightdm stop

執行以下三條命令卸載原有顯卡驅動:

sudo apt-get remove --purge nvidia*
sudo chmod +x NVIDIA-Linux-x86_64-410.93.run
sudo ./NVIDIA-Linux-x86_64-410.93.run --uninstall

安裝新驅動

直接執行驅動文件即可安裝新驅動,一直默認即可:

sudo ./NVIDIA-Linux-x86_64-410.93.run

執行以下命令啟動X-Window服務

sudo service lightdm start

最后執行重啟命令,重啟系統即可:

reboot

注意: 如果系統重啟之后出現重復登錄的情況,多數情況下都是安裝了錯誤版本的顯卡驅動。需要下載對應本身機器安裝的顯卡版本。

卸載CUDA

為什么一開始我就要卸載CUDA呢,這是因為筆者是換了顯卡RTX2070,原本就安裝了CUDA 8.0 和 CUDNN 7.0.5不能夠正常使用,筆者需要安裝CUDA 10.0 和 CUDNN 7.4.2,所以要先卸載原來的CUDA。注意以下的命令都是在root用戶下操作的。

卸載CUDA很簡單,一條命令就可以了,主要執行的是CUDA自帶的卸載腳本,讀者要根據自己的cuda版本找到卸載腳本:

sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl

卸載之后,還有一些殘留的文件夾,之前安裝的是CUDA 8.0。可以一并刪除:

sudo rm -rf /usr/local/cuda-8.0/

這樣就算卸載完了CUDA。

安裝CUDA

安裝的CUDA和CUDNN版本:

  • CUDA 10.0
  • CUDNN 7.4.2

接下來的安裝步驟都是在root用戶下操作的。

下載和安裝CUDA

我們可以在官網:CUDA10下載頁面,
下載符合自己系統版本的CUDA。頁面如下:

下載完成之后,給文件賦予執行權限:

chmod +x cuda_10.0.130_410.48_linux.run

執行安裝包,開始安裝:

./cuda_10.0.130_410.48_linux.run

開始安裝之后,需要閱讀說明,可以使用Ctrl + C直接閱讀完成,或者使用空格鍵慢慢閱讀。然后進行配置,我這里說明一下:

(是否同意條款,必須同意才能繼續安裝)
accept/decline/quit: accept

(這里不要安裝驅動,因為已經安裝最新的驅動了,否則可能會安裝舊版本的顯卡驅動,導致重復登錄的情況)
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48?
(y)es/(n)o/(q)uit: n

Install the CUDA 10.0 Toolkit?(是否安裝CUDA 10 ,這里必須要安裝)
(y)es/(n)o/(q)uit: y

Enter Toolkit Location(安裝路徑,使用默認,直接回車就行)
 [ default is /usr/local/cuda-10.0 ]: 

Do you want to install a symbolic link at /usr/local/cuda?(同意創建軟鏈接)
(y)es/(n)o/(q)uit: y

Install the CUDA 10.0 Samples?(不用安裝測試,本身就有了)
(y)es/(n)o/(q)uit: n

Installing the CUDA Toolkit in /usr/local/cuda-10.0 ...(開始安裝)

安裝完成之后,可以配置他們的環境變量,在vim ~/.bashrc的最后加上以下配置信息:

export CUDA_HOME=/usr/local/cuda-10.0
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}/bin:${PATH}

最后使用命令source ~/.bashrc使它生效。

可以使用命令nvcc -V查看安裝的版本信息:

test@test:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130

測試安裝是否成功

執行以下幾條命令:

cd /usr/local/cuda-10.0/samples/1_Utilities/deviceQuery
make
./deviceQuery

正常情況下輸出:

./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce RTX 2070"
 CUDA Driver Version / Runtime Version   10.0 / 10.0
 CUDA Capability Major/Minor version number: 7.5
 Total amount of global memory:     7950 MBytes (8335982592 bytes)
 (36) Multiprocessors, ( 64) CUDA Cores/MP:  2304 CUDA Cores
 GPU Max Clock rate:       1620 MHz (1.62 GHz)
 Memory Clock rate:        7001 Mhz
 Memory Bus Width:        256-bit
 L2 Cache Size:         4194304 bytes
 Maximum Texture Dimension Size (x,y,z)   1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
 Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layers
 Maximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 2048 layers
 Total amount of constant memory:    65536 bytes
 Total amount of shared memory per block:  49152 bytes
 Total number of registers available per block: 65536
 Warp size:          32
 Maximum number of threads per multiprocessor: 1024
 Maximum number of threads per block:   1024
 Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
 Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
 Maximum memory pitch:       2147483647 bytes
 Texture alignment:        512 bytes
 Concurrent copy and kernel execution:   Yes with 3 copy engine(s)
 Run time limit on kernels:      Yes
 Integrated GPU sharing Host Memory:   No
 Support host page-locked memory mapping:  Yes
 Alignment requirement for Surfaces:   Yes
 Device has ECC support:      Disabled
 Device supports Unified Addressing (UVA):  Yes
 Device supports Compute Preemption:   Yes
 Supports Cooperative Kernel Launch:   Yes
 Supports MultiDevice Co-op Kernel Launch:  Yes
 Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0
 Compute Mode:
  < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.0, CUDA Runtime Version = 10.0, NumDevs = 1
Result = PASS

下載和安裝CUDNN

進入到CUDNN的下載官網:https://developer.nvidia.com/rdp/cudnn-download ,然點擊Download開始選擇下載版本,當然在下載之前還有登錄,選擇版本界面如下,我們選擇cuDNN Library for Linux

下載之后是一個壓縮包,如下:

cudnn-10.0-linux-x64-v7.4.2.24.tgz 

然后對它進行解壓,命令如下:

tar -zxvf cudnn-10.0-linux-x64-v7.4.2.24.tgz 

解壓之后可以得到以下文件:

cuda/include/cudnn.h
cuda/NVIDIA_SLA_cuDNN_Support.txt
cuda/lib64/libcudnn.so
cuda/lib64/libcudnn.so.7
cuda/lib64/libcudnn.so.7.4.2
cuda/lib64/libcudnn_static.a

使用以下兩條命令復制這些文件到CUDA目錄下:

cp cuda/lib64/* /usr/local/cuda-10.0/lib64/
cp cuda/include/* /usr/local/cuda-10.0/include/

拷貝完成之后,可以使用以下命令查看CUDNN的版本信息:

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

測試安裝結果

到這里就已經完成了CUDA 10 和 CUDNN 7.4.2 的安裝。可以安裝對應的Pytorch的GPU版本測試是否可以正常使用了。安裝如下:

pip3 install https://download.pytorch.org/whl/cu100/torch-1.0.0-cp35-cp35m-linux_x86_64.whl
pip3 install torchvision

然后使用以下的程序測試安裝情況:

import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
import torch.backends.cudnn as cudnn
from torchvision import datasets, transforms


class Net(nn.Module):
 def __init__(self):
  super(Net, self).__init__()
  self.conv1 = nn.Conv2d(1, 10, kernel_size=5)
  self.conv2 = nn.Conv2d(10, 20, kernel_size=5)
  self.conv2_drop = nn.Dropout2d()
  self.fc1 = nn.Linear(320, 50)
  self.fc2 = nn.Linear(50, 10)

 def forward(self, x):
  x = F.relu(F.max_pool2d(self.conv1(x), 2))
  x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)), 2))
  x = x.view(-1, 320)
  x = F.relu(self.fc1(x))
  x = F.dropout(x, training=self.training)
  x = self.fc2(x)
  return F.log_softmax(x, dim=1)


def train(model, device, train_loader, optimizer, epoch):
 model.train()
 for batch_idx, (data, target) in enumerate(train_loader):
  data, target = data.to(device), target.to(device)
  optimizer.zero_grad()
  output = model(data)
  loss = F.nll_loss(output, target)
  loss.backward()
  optimizer.step()
  if batch_idx % 10 == 0:
   print('Train Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}'.format(
    epoch, batch_idx * len(data), len(train_loader.dataset),
      100. * batch_idx / len(train_loader), loss.item()))

def main():
 cudnn.benchmark = True
 torch.manual_seed(1)
 device = torch.device("cuda")
 kwargs = {'num_workers': 1, 'pin_memory': True}
 train_loader = torch.utils.data.DataLoader(
  datasets.MNIST('../data', train=True, download=True,
      transform=transforms.Compose([
       transforms.ToTensor(),
       transforms.Normalize((0.1307,), (0.3081,))
      ])),
  batch_size=64, shuffle=True, **kwargs)

 model = Net().to(device)
 optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.5)

 for epoch in range(1, 11):
  train(model, device, train_loader, optimizer, epoch)


if __name__ == '__main__':
 main()

如果正常輸出一下以下信息,證明已經安裝成了:

Train Epoch: 1 [0/60000 (0%)] Loss: 2.365850
Train Epoch: 1 [640/60000 (1%)] Loss: 2.305295
Train Epoch: 1 [1280/60000 (2%)] Loss: 2.301407
Train Epoch: 1 [1920/60000 (3%)] Loss: 2.316538
Train Epoch: 1 [2560/60000 (4%)] Loss: 2.255809
Train Epoch: 1 [3200/60000 (5%)] Loss: 2.224511
Train Epoch: 1 [3840/60000 (6%)] Loss: 2.216569
Train Epoch: 1 [4480/60000 (7%)] Loss: 2.181396

參考資料

https://developer.nvidia.com

https://www.cnblogs.com/luofeel/p/8654964.html

到此這篇關于Ubuntu安裝和卸載CUDA和CUDNN的實現的文章就介紹到這了,更多相關Ubuntu安裝和卸載CUDA和CUDNN內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

標簽:晉中 衡水 云南 畢節 巴中 南寧 佛山 安陽

巨人網絡通訊聲明:本文標題《Ubuntu安裝和卸載CUDA和CUDNN的實現》,本文關鍵詞  Ubuntu,安裝,和,卸載,CUDA,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Ubuntu安裝和卸載CUDA和CUDNN的實現》相關的同類信息!
  • 本頁收集關于Ubuntu安裝和卸載CUDA和CUDNN的實現的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    欧美三级蜜桃2在线观看| 婷婷丁香久久五月婷婷| 国产一区二区视频在线播放| 性久久久久久久久久| 欧美精品vⅰdeose4hd| 亚洲香肠在线观看| 91蝌蚪porny成人天涯| av女名字大全列表| 国产精品国产三级国产普通话蜜臀 | 国产网红主播福利一区二区| 狠狠色狠狠色综合| 亚洲人成人无码网www国产| 欧美成人在线直播| 美女脱光内衣内裤视频久久影院| 中文字幕av观看| 日韩精品专区在线影院重磅| 免费黄网站欧美| 国产精品免费无码| 国产亚洲成年网址在线观看| 国产一区二区免费看| 国产精品麻豆免费版现看视频| 国产午夜亚洲精品理论片色戒 | 日韩情涩欧美日韩视频| 麻豆91免费看| 国产wwwwxxxx| 成人免费在线视频| 制服下的诱惑暮生| 在线综合+亚洲+欧美中文字幕| 天堂av在线一区| 国产小视频自拍| 中文子幕无线码一区tr| 99久久精品免费观看| 欧美日韩黄视频| 奇米影视一区二区三区| 国产一二三四视频| 综合婷婷亚洲小说| 国产a级黄色片| 久久这里只有精品首页| 丁香激情综合国产| 欧美日韩国产精品自在自线| 日韩av一级电影| 国产三级在线观看完整版| 中文字幕亚洲综合久久菠萝蜜| 欧美午夜精品一区二区| 日韩三级电影网址| 国产98色在线|日韩| 欧美人狂配大交3d怪物一区| 久久精品国产99久久6| 成人免费毛片xxx| 亚洲午夜精品在线| 五月天综合视频| 中文字幕亚洲区| 波多野结衣影院| 国产女同互慰高潮91漫画| 国产电影精品久久禁18| 91在线无精精品白丝| 亚洲色图制服诱惑 | 美女伦理水蜜桃4| www久久精品| 国产又粗又猛又爽又黄| 久久久亚洲国产美女国产盗摄| 成人av第一页| 91精品国产综合久久国产大片 | 国产视频123区| 亚洲一区二区视频| 亚洲女同二女同志奶水| 亚洲国产精品一区二区www在线| 一级黄色毛毛片| 亚洲一二三区在线观看| 青青操在线视频观看| 亚洲一区二区三区在线看| 日本不卡一区视频| 爽好多水快深点欧美视频| 日韩在线视频免费看| 午夜精品久久久久久久久| 小向美奈子av| 日韩激情一二三区| 91国偷自产一区二区三区成为亚洲经典| 日韩电影在线看| 色偷偷久久人人79超碰人人澡| 蜜臀av一区二区在线观看| 在线精品视频一区二区| 国产在线国偷精品免费看| 欧美日韩国产影片| 东方aⅴ免费观看久久av| 亚洲精品在线一区二区| 91人人澡人人爽| 国产精品二区一区二区aⅴ污介绍| 亚洲av无码一区二区三区观看| 亚洲欧美视频在线观看视频| 国产三级在线观看完整版| 日本亚洲一区二区| 欧美午夜免费电影| 成人午夜在线免费| 国产亚洲福利社区一区| 男生草女生视频| 五月天亚洲婷婷| 欧美色涩在线第一页| 成人免费视频网站在线观看| 久久久亚洲午夜电影| 女人被狂躁c到高潮| 亚洲成人一区二区在线观看| 91国偷自产一区二区开放时间| 国产**成人网毛片九色 | 国内精品久久久久影院薰衣草 | 3d动漫精品啪啪一区二区竹菊| av激情亚洲男人天堂| 国产精品拍天天在线| 波多野结衣a v在线| 奇米色一区二区三区四区| 欧美美女视频在线观看| 91在线观看免费视频| 国产精品久久久久7777按摩| 国产破处视频在线观看| 极品美女销魂一区二区三区免费 | 91视频观看视频| 亚洲天堂2014| 懂色av懂色av粉嫩av| 国产成人福利片| 中文字幕二三区不卡| 四虎地址8848| 高清不卡一二三区| 国产精品日韩成人| 国产男女猛烈无遮挡在线喷水| 国产一区三区三区| 国产肉丝袜一区二区| 亚洲精品一区二区三区在线播放| 国产剧情一区二区| 亚洲国产电影在线观看| 一区二区三区影视| 成人app网站| 亚洲三级在线免费| 欧美影视一区在线| 国产51自产区| 日本不卡123| 久久香蕉国产线看观看99| 日韩福利在线视频| 国产成人在线视频播放| 中文字幕一区二区三区四区 | 国产剧情一区二区| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 男人的天堂久久久| 91麻豆成人久久精品二区三区| 一区二区不卡在线播放 | 床上的激情91.| 亚洲同性同志一二三专区| 91福利在线导航| 日本少妇xxxx| 精品一区二区三区免费观看 | 久久久久久久久久看片| 激情五月深爱五月| 不卡高清视频专区| 亚洲在线一区二区三区| 欧美一级欧美三级在线观看| 性欧美一区二区| 国产99久久久久| 亚洲精品菠萝久久久久久久| 制服.丝袜.亚洲.另类.中文| 精品人妻一区二区三区蜜桃视频| 国产成人av福利| 亚洲一区影音先锋| 欧美成人艳星乳罩| 日韩精品一二三区| 国产女人18水真多18精品一级做| 午夜69成人做爰视频| 国内精品免费视频| 久久国产精品色婷婷| 国产精品美女久久久久久久 | 精品成人a区在线观看| 黑人操日本美女| 少妇精品无码一区二区| 美女一区二区久久| 亚洲欧美日韩综合aⅴ视频| 欧美一区二区三区男人的天堂| 色偷偷男人天堂| 日本天堂在线播放| 国产一区二区主播在线| 亚洲精品乱码久久久久久日本蜜臀| 欧美高清激情brazzers| 亚洲色图 激情小说| 女女调教被c哭捆绑喷水百合| 精品一区二区三区视频在线观看| 日韩伦理av电影| 欧美va亚洲va香蕉在线| 色综合亚洲欧洲| 亚洲av无码一区二区二三区| 不卡的av在线| 蜜臀久久久久久久| 有码一区二区三区| 久久久精品欧美丰满| 欧美日本韩国一区| 国产三级aaa| 久久午夜夜伦鲁鲁片| 成人精品国产一区二区4080| 日本美女视频一区二区| 亚洲天堂成人网| 日韩亚洲欧美成人一区| 色香蕉久久蜜桃| 成人免费视频入口| 野外性满足hd|