UbuntuにCUDAとCUDNNをインストールしてアンインストールします

元のブログ:[Doiテクニカルチーム](http://blog.doiduoyi.com/)
リンクアドレス:[https://blog.doiduoyi.com/authors/1584446358138](https://blog.doiduoyi.com/authors/1584446358138)
当初の意図:優れた土井技術チームの学習経験を記録する

目次#

記事ディレクトリ###

序文#

最近、さまざまなグラフィックカードドライバーバージョンでのPaddlePaddleのインストールと使用法を研究しているので、UbuntuでCUDAとCUDNNをインストールおよびアンインストールする方法と、学習プロセスを記録する方法も学びました。誰もが学ぶことができる一方で、彼らはまた彼らの記憶を強化しています。この記事では、例としてCUDA8.0とCUDNN7.05のアンインストール、例としてCUDA10.0とCUDNN7.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

次の3つのコマンドを実行して、元のグラフィックスドライバーをアンインストールします。

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

最後に、restartコマンドを実行して、システムを再起動します。

reboot

**注:**システムの再起動後にログインが繰り返されると、ほとんどの場合、間違ったバージョンのグラフィックスドライバーがインストールされます。自分のマシンにインストールされているグラフィックカードバージョンをダウンロードする必要があります。

CUDAをアンインストールします#

そもそもCUDAをアンインストールしたのはなぜですか?グラフィックカードRTX2070を変更したためです。CUDA8.0とCUDNN7.0.5のオリジナルインストールは正常に使用できません。CUDA10.0とCUDNN7.4.2をインストールする必要があるので、まずは元のCUDAをアンインストールします。以下のコマンドはすべてrootユーザーの下で操作されることに注意してください。

CUDAのアンインストールは非常に簡単です。1つのコマンドで十分です。主な実行はCUDAに付属のアンインストールスクリプトです。読者は、自分のcudaバージョンに従ってアンインストールスクリプトを見つける必要があります。

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

アンインストール後もフォルダが残っています。CUDA8.0は以前にインストールされていました。一緒に削除できます:

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

このように、CUDAがアンインストールされても。

CUDA#をインストールします

インストールされているCUDAおよびCUDNNバージョン:

次のインストール手順はすべて、rootユーザーの下で操作されます。

CUDAをダウンロードしてインストールします##

公式サイトにアクセスできます:[CUDA10ダウンロードページ](https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=runfilelocal)、
自分のシステムバージョンに一致するCUDAをダウンロードします。ページは次のとおりです。

ダウンロードが完了したら、ファイルに実行権限を付与します。

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

インストールパッケージを実行し、インストールを開始します。

. /cuda_10.0.130_410.48_linux.run

インストールを開始した後、指示を読む必要があります。Ctrl+ Cを使用して直接読み取るか、 Spacebarを使用してゆっくり読み取ることができます。次に、構成します。ここで説明します。

(条件に同意しますか、インストールを続行することに同意する必要があります)
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キーを押すだけです)
 [ 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.0export 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:7950MBytes(8335982592 bytes)(36) Multiprocessors,(64) CUDA Cores/MP:2304 CUDA Cores
 GPU Max Clock rate:1620MHz(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 with3 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の公式ダウンロードWebサイト(https://developer.nvidia.com/rdp/cudnn-download)にアクセスし、[ダウンロード]をクリックしてダウンロードバージョンの選択を開始します。もちろん、ダウンロードする前にログインする必要があります。バージョンインターフェイスは次のとおりです。「cuDNNライブラリ」を選択します。 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

次の2つのコマンドを使用して、これらのファイルを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

インストール結果のテスト#

これで、CUDA10とCUDNN7.4.2のインストールが完了しました。対応する[GPU](https://cloud.tencent.com/product/gpu?from=10680)バージョンのPytorchをインストールして、正常に使用できるかどうかをテストできます。インストールは次のとおりです。

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

classNet(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)inenumerate(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 inrange(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

参考文献#

  1. https://developer.nvidia.com
  2. https://www.cnblogs.com/luofeel/p/8654964.html

Recommended Posts

UbuntuにCUDAとCUDNNをインストールしてアンインストールします
Ubuntu16.04VMwareのインストールとアンインストール-Workstation14
UbuntuにMySQLをインストールして構成する
UbuntuサーバーにGnomeとVNCをインストールする
ubuntuと基本的な使用法にdockerをインストールします
Ubuntuにフォントをインストールし、デフォルトのフォントを切り替えます
ubuntu18にvscodeをインストールします
UbuntuにRedisをインストールする
ubuntu20にR4をインストールします
Ubuntu18.04にnvtopをインストールします
Ubuntu18.04にpostgresql-10をインストールします
Ubuntuにdockerをインストールする
ubuntu18.04にDockerをインストールします
Ubuntu16にnodejs10をインストールします
UbuntuにDjangoをインストールします
Ubuntu16.04にPytorch + CUDAをインストールします
Ubuntu14.04にPython3をインストールします
Ubuntu18にrJavaをインストールします
Ubuntu16.04にPython3をインストールします
Ubuntu16.04.2にKDEをインストールします
Ubuntu18にDockerをインストールする
UbuntuにPython3.7をインストールする
Ubuntuにflashplayerをインストールする
Ubuntu 16.04 /18.04にPycharmとIpythonをインストールする方法
Ubuntu16.04にNATSをインストールして構成する方法
Ubuntu18.04にGogsをインストールして構成する方法
Ubuntu18.04にCyberpanelをインストールして構成する方法
Ubuntu16.04にphpMyAdminをインストールして保護する方法
Ubuntu16.04にownCloudをインストールして構成する方法
Ubuntu16.04にownCloudをインストールして構成する方法
UbuntuLinuxにGitとGitHubをインストールして使用する
Ubuntu18.04にGitLabをインストールして構成する方法
Ubuntu20.04にDockerをインストールして使用する方法
Ubuntu18.04にAnsibleをインストールして構成する方法
Ubuntu18.04にCurlをインストールして使用する方法
Ubuntu18.04にComposerをインストールして使用する方法
Ubuntu18.04にWineをインストールして使用する方法
Ubuntu16.04にphpMyAdminをインストールして保護する方法
Ubuntu16.04にElasticsearchをインストールして構成する方法
Ubuntu14.04にPostGISをインストールして構成する方法
Ubuntu14.04にBaasBoxをインストールして使用する方法
Ubuntu18.04にVNCをインストールして構成する方法
Ubuntu16.04にSphinxをインストールして構成する方法
Ubuntu14.04にOrientDBをインストールして構成する方法
Ubuntu16.04にPostgreSQLをインストールして使用する方法
Ubuntu12.04にAppScaleをインストールして構成する方法
centosにtomcatをインストールおよびアンインストールする方法
Ubuntu16.04にDockerをインストールして使用する方法
Ubuntu14.04にPostGISをインストールして構成する方法
Dockerプラクティス(1):Ubuntu16.04にDockerをインストールします
仮想マシンにubuntuをインストールします
Ubuntu Server14.04にOpenSSL1.0.2をインストールします
Ubuntu16.04にQQロボットをインストールします
Ubuntu 18.04LTSにPython3.7をインストールします
win7とarchlinuxをubuntuの下のハードディスクにインストールします
Ubuntu16.04はPHP7.2をコンパイルしてインストールします
ubuntu18.04python3.8をコンパイルしてインストールします
ubuntuにスクレイプフレームワークをインストールする
Ubuntu18.04にMySQLWorkbenchをインストールして使用する方法
ubuntuはGitLabをインストールして構成します
EthereumクライアントMistをWindowsとubuntuにインストールします