1. ホーム
  2. Machine Learning

Ubuntu 18.04で深層学習フレームワークPytorch(GPUアクセラレーション)をインストールする。

2022-02-22 13:37:14

すでにwindows10環境ではCPU版Pytorchのインストールに成功しており、Anacondaでのインストールが推奨されています。

ブログ主はほぼ1日かけて、Ubuntu 18.04を使用して、LinuxシステムにGPUアクセラレーションによるPytorchをインストールすることに成功しました。

CUDAとCUDNNとは何か、少しお聞かせください。

CUDA(Compute Unified Device Architecture)は、新しい並列プログラミングモデルと命令セットアーキテクチャに基づいたNVIDIAの汎用コンピューティングアーキテクチャで、NVIDIA GPUの並列コンピューティングエンジンを用いて、多くの複雑な計算タスクをCPUよりも効率的に解くことができるようにします。

CUDNNは、ディープニューラルネットワークのためのGPUアクセラレーションライブラリです。

ブログの具体的な参照先

https://blog.csdn.net/qq_28660035/article/details/80959752

https://blog.csdn.net/fangjin_kl/article/details/53906874

I. Anacondaのインストール

Linux での Anaconda のインストールは簡単で、その手順は Windows での前回の投稿に似ています。

1. Anacondaのダウンロード

このプロセスは、いつものように、ダウンロードするミラーソースに行く、ダウンロードするミラーソースに行く、ダウンロードするミラーソースに行く、公式サイトが遅すぎるから!再説されません。その後、選択したバージョンは、linuxの下にある、あなたのコンピュータが動作するビット数に応じて、32または64ビットを選択します。

<スパン ミラーダウンロードアドレス で、前回のブログを参考に修正しました。 https://blog.csdn.net/wuzhiwuweisun/article/details/82689151

ここでは、pythonバージョン3.6が付属しているAnaconda3-5.0.1-Linux-x86_64.shをダウンロードしました。Baidu cloud のリンクにも Anaconda 3.4.3 があり、python バージョン 3.5 が付属しています。

以下は、投稿です。 <スパン バイドゥクラウドリンク リンク:https://pan.baidu.com/s/15N7KdtxkChOH7WsMaC_IJQ 抽出コードです。286y

2. Anacondaのインストール

ウィンドウズより簡単、コマンド1つです。

まず、anaconda のインストールパッケージのパスに切り替え、そのパスでコマンドを実行します。

sh Anaconda3-5.0.1-Linux-x86_64.sh # followed by the name of your installation package

後半の言葉はシンプルです。

Welcome to Anaconda3 5.0.1

In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue
>>> Press ENTER
#then keep pressing ENTER until the agreement is complete
#Appears.
Do you accept the license terms? [yes|no]
>>> type yes
#The following is to ask you the installation directory, we recommend that is the default installation path, directly press enter
Anaconda3 will now be installed into this location:
/home/mayunteng/anaconda3

  - Press ENTER to confirm the location
  - Press CTRL-C to abort the installation
  - Or specify a different location below

[/home/mayunteng/anaconda3] >>> Press ENTER
#The next step is to wait for the installation to complete
#Note that after the installation is complete, you will be asked if you want to add the path of anaconda3 to the environment variable, make sure to select yes, make sure to select yes, make sure to select yes.


インストールが完了すると 端末を再起動する pythonのanacondaバージョンが表示されれば、インストールは成功です。

First type: source ~/.bashrc
and then type: python
The python version displayed is followed by the Anaconda logo, which means the installation was successful
Python 3.6.3 |Anaconda, Inc.| (default, Oct 13 2017, 12:02:49) 
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
#Exit python by typing exit() on the command interactive line and you're done.


また、次のように入力することもできます。 コンダリスト をクリックすると、インストールされているライブラリが表示されます。

Enter: conda list
Display (installed libraries).
# packages in environment at /home/mayunteng/anaconda3:
#
# Name Version Build Channel
_ipyw_jlab_nb_ext_conf 0.1.0 py36he11e457_0 defaults
alabaster 0.7.10 py36h306e16b_0 defaults
anaconda 5.0.1 py36hd30a520_1 defaults
anaconda-client 1.6.5 py36h19c0dcd_0 defaults
anaconda-navigator 1.6.9 py36h11ddaaa_0 defaults
anaconda-project 0.8.0 py36h29abdf5_0 defaults
asn1crypto 0.22.0 py36h265ca7c_1 defaults
astroid 1.5.3 py36hbdb9df2_0 defaults
astropy 2.0.2 py36ha51211e_4 defaults
babel 2.5.0 py36h7d14adf_0 defaults
backports 1.0 py36hfa02d7e_1 defaults
backports.shutil_get_terminal_size 1.0.0 py36hfea85ff_2 defaults
beautifulsoup4 4.6.0 py36h49b8c8c_1 defaults
bitarray 0.8.1 py36h5834eb8_0 defaults
bkcharts 0.2 py36h735825a_0 defaults
blas 1.0 mkl https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
blaze 0.11.3 py36h4e06776_0 defaults
bleach 2.0.0 py36h688b259_0 defaults
bokeh 0.12.10 py36hbb0e44a_0 defaults
boto 2.48.0 py36h6e4cd66_1 defaults
bottleneck 1.2.1 py36haac1ea0_0 defaults
bzip2 1.0.6 h0376d23_1 defaults

次のコマンドを入力すると <スパン Spyder、IPython、Jupyter Notebook、Anaconda Navigatorを起動します。 .

spyder #Open Spyder
ipython #Open IPython
jupyter notebook #Open Jupyter notebook
anaconda-navigator #Open Anaconda Navigator


PS: 以前、Anaconda3のパスを環境変数に追加しなかった場合は、このように変更することができます。

At the command line, type
sudo gedit ~/.bashrc
Open the bashrc file and enter the following statement at the end.
export PATH="/home/mayunteng/anaconda3/bin:$PATH" # /home/mayunteng/anaconda3/ replace with your installation path
After closing the bashrc file, at the command line type.
source .bashrc # to make the updated environment variables take effect immediately

II. CUDAとCUDNNのインストール

1. NVIDIAグラフィックスカードがGPUコンピューティングをサポートしているかどうかを検出する

GPUコンピューティングに対応しているかどうかを確認してからインストールする必要がありますが、そうでない場合はインストールする必要もありません。

まず、お使いのコンピュータのグラフィックカードのモデルを確認してください。

ターミナルでコマンドを入力することで確認できます。

Enter.
ubuntu-drivers devices
Output shows.
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001380sv00001B4Csd0000105Fbc03sc00i00
vendor : NVIDIA Corporation
model : GM107 [GeForce GTX 750 Ti]# This is the graphics card type
driver : nvidia-340 - distro non-free
driver : nvidia-driver-390 - distro non-free recommended
driver : xserver-xorg-video-nouveau - distro free builtin

ここで、私のグラフィックカードがGTX 750 Tiであることがわかります。

このグラフィックカードのドライバをNAVIDIAのサイトに持ち込んで、GPUコンピューティングに対応しているかどうかを確認してください。

そのURLは https://developer.nvidia.com/cuda-gpus

インターフェイスはおおよそ以下のように開き、モデルが中に入っている限りはGPUの操作が可能です。

2. 推奨されるグラフィックカードドライバをインストールする

最初の方法(推奨)。

まずlinuxを開きます(Ubuntu 18.04) <スパン セットアップ を"で表示します。 <スパン ソフトウェアとアップデート という項目があるので、それを開き、「" 追加ドライバ をクリックし、それを開いて システム推奨ドライバーをインストールする .

Additional Drivers"を検索し、推奨ドライバーをインストールし、最後にApplyをクリックします。

あとは、インストールが完了するのを待つだけです。 インストールが完了したら、コンピュータを再起動するのを忘れないようにしましょう コンピュータを再起動してください! コンピュータを再起動してください!

この方法の利点は、エラーが発生しにくいことと、設定すればパソコンがすべてやってくれることです。

最後に、インストールが成功したことを確認するために、次のように入力します。 <スパン sudo nvidia-smi

Type: sudo nvidia-smi
The following message is displayed to indicate a successful installation of the graphics driver.
Tue Sep 18 16:40:36 2018       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.48 Driver Version: 390.48 |
-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M.
| ===============================+======================+======================|
| 0 GeForce GTX 750 Ti Off | 00000000:01:00.0 On | N/A |
| 38% 32C P8 1W / 38W | 254MiB / 1999MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
=============================================================================|
| 0 1126 G /usr/lib/xorg/Xorg 11MiB |
| 0 1217 G /usr/bin/gnome-shell 49MiB |
| 0 1399 G /usr/lib/xorg/Xorg 69MiB | | 0 1529 G /usr/lib/xorg/Xorg 69MiB
| 0 1529 G /usr/bin/gnome-shell 116MiB |
| 0 2946 G /usr/lib/firefox/firefox 1MiB |
+-----------------------------------------------------------------------------+


システム設定の「"Details"」セクションで、お使いのグラフィックカードがすでにGTX 750 Tiであるかどうかを確認するとよいでしょう。

2つ目の方法(試していない)。

参考ブログ

https://blog.csdn.net/u012328159/article/details/80959454

https://blog.csdn.net/flowrush/article/details/80744787

3. GCCを手動でダウングレードする

こちらのブログをご参照ください。

https://blog.csdn.net/u010801439/article/details/80483036

CUDA 9.0 は GCC 6.0 以下しかサポートしておらず、Ubuntu 18.04 には GCC バージョン 7.3 がプリインストールされているので、手動で次のようにダウングレードしてください。

sudo apt-get install gcc-4.8
sudo apt-get install g++-4.8

caffeをインストールする場合、gccは5.0以上である必要があることに注意してください。

インストール後、以下のサイトにアクセスします。 /usr/bin ディレクトリで <スパン ls -l gcc*

Enter.
ls -l gcc* 
Display (I've changed it here, so the first line is linked to 4.8, the original is linked to 7.3).
lrwxrwxrwx 1 root root 7 Sep 12 20:43 gcc -> gcc-4.8
-rwxr-xr-x 1 root root 772280 Mar 19 2018 gcc-4.8
lrwxrwxrwx 1 root root 22 Apr 15 12:52 gcc-7 -> x86_64-linux-gnu-gcc-7
lrwxrwxrwx 1 root root 8 Apr 7 02:04 gcc-ar -> gcc-ar-7
-rwxr-xr-x 1 root root 27088 Mar 19 2018 gcc-ar-4.8
lrwxrwxrwx 1 root root 25 Apr 15 12:52 gcc-ar-7 -> x86_64-linux-gnu-gcc-ar-7
lrwxrwxrwx 1 root root 5 Apr 7 02:04 gcc.bak -> gcc-7
lrwxrwxrwx 1 root root 8 Apr 7 02:04 gcc-nm -> gcc-nm-7
-rwxr-xr-x 1 root root 27088 Mar 19 2018 gcc-nm-4.8
lrwxrwxrwx 1 root root 25 Apr 15 12:52 gcc-nm-7 -> x86_64-linux-gnu-gcc-nm-7
lrwxrwxrwx 1 root root 12 Apr 7 02:04 gcc-ranlib -> gcc-ranlib-7
-rwxr-xr-x 1 root root 27088 Mar 19 2018 gcc-ranlib-4.8
lrwxrwxrwx 1 root root 29 Apr 15 12:52 gcc-ranlib-7 -> x86_64-linux-gnu-gcc-ranlib-7


gcc が gcc-7.3 にリンクしているのを発見したので、以下のように gcc-4.8 にリンクするように変更する必要があります。

sudo mv gcc gcc.bak # backup
sudo ln -s gcc-4.8 gcc # re-link

g++にも同じ変更を加えてください。

ls -l g++*
sudo mv g++ g++.bak
sudo ln -s g++-4.8 g++

mayunteng@mayunteng-OptiPlex-7040:/usr/bin$ gcc --version
gcc (Ubuntu 4.8.5-4ubuntu8) 4.8.5
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
There is no warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

mayunteng@mayunteng-OptiPlex-7040:/usr/bin$ g++ --version
g++ (Ubuntu 4.8.5-4ubuntu8) 4.8.5
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

最後に、gcc と g++ のバージョン番号を見てください。もし 4.8 ならば、変更が成功したことを意味します。

sudo sh cuda_9.0.176_384.81_linux.run

4. CUDAのインストール

ここで参考までに取り上げたのは、2つのブログです。

https://www.jianshu.com/p/ea169536850f (推奨)

https://blog.csdn.net/flowrush/article/details/80744787

CUDA 9.0とCUDNN 7.05を選択中です。

ただ、CUDAの選択は、CUDNNモデル、すなわち CUDAのバージョンはCUDNNのバージョンに対応していなければなりませんし、CUDNNがサポートするバージョンでなければなりません!CUDAのバージョンはCUDNNのバージョンに対応していなければなりません。

まず、公式サイトにアクセスし、CUDAインストーラーをダウンロードします。 ランファイル(ローカル) .

CUDAの最新バージョンは、以下のサイトからダウンロード可能です。 https://developer.nvidia.com/cuda-downloads

CUDAの以前のバージョン。 https://developer.nvidia.com/cuda-toolkit-archive

ダウンロードしたいCUDA 9.0バージョンを探してダウンロードします、少し時間がかかりますが、ダウンロードしてインストールするだけです、いくつかの小さなアップデートパッケージはインストールしたままでも大丈夫です。

以下、環境構築に必要なパッケージ、つまりUbuntu 18.04、64ビットシステム用のCUDAインストーラと、それに対応するCUDNN、Pytorchインストーラです。

<スパン Baiduのリンクです。 https://pan.baidu.com/s/1wLqMuAAxu7vnCCgA2fr3PA パスワード:6uau

先ほどダウンロードしたCUDAパッケージのパスに移動し、コマンドを実行します。

Do you accept the previously read EULA? (accept/decline/quit): accept You are attemptingto install on an unsupported configuration. Do you wish to continue? ((y)es/(n)o) [ default is no ]: y 
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 352.39? ((y)es/(n)o/(q)uit): n 
Install the CUDA 8.0 Toolkit? ((y)es/(n)o/(q)uit): y 
Enter Toolkit Location [ default is /usr/local/cuda-8.0 ]: 
Do you want to install a symbolic link at /usr/local/cuda? ((y)es/(n)o/(q)uit): y Install the CUDA 8.0 Samples? ((y)es/(n)o/(q)uit): y Enter CUDA Samples Location [ default is /home/kyle ]:


そして、以下のように実行します。


***WARNING: Incomplete installation!

2番目にインストールされたグラフィックドライバを除いて、実際にはyesまたはdefaultですが、これは以前にインストールされていたためnoです。

インストールが完了すると最後の数行で警告が表示されますので、無視してください。

sudo gedit ~/.bashrc

5 CUDAの環境変数を設定する

.bashrc ファイルを開き、ターミナルで次のように入力します。

export PATH="/usr/local/cuda-9.0/bin:$PATH" #It's better to enclose the path in double quotes if you make a mistake here, here it is already enclosed in double quotes
export LD_LIBRARY_PATH="/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH"

次の2行をファイルの最後に追加し、インストール先パスに変更するように注意してください。

Enter.
nvcc -V
Display: ,
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176


CUDAが正常にインストールされていることをテストする。

mayunteng@mayunteng-OptiPlex-7040:~$ cd NVIDIA_CUDA-9.0_Samples/0_Simple/vectorAdd
mayunteng@mayunteng-OptiPlex-7040:~/NVIDIA_CUDA-9.0_Samples/0_Simple/vectorAdd$ make
mayunteng@mayunteng-OptiPlex-7040:~/NVIDIA_CUDA-9.0_Samples/0_Simple/vectorAdd$ . /vectorAdd 
[Vector addition of 50000 elements]
Copy input data from the host memory to the CUDA device
CUDA kernel launch with 196 blocks of 256 threads
Copy output data from the CUDA device to the host memory
Test PASSED
Done


6 CUDAサンプルのコンパイル

サンプルのインストールディレクトリに移動し、一つを選択してコンパイルに成功するかどうかを確認します。

First go to the path where the package was extracted, and then execute the following command
cd cuda
sudo cp lib64/* /usr/local/cuda/lib64/
sudo cp include/* /usr/local/cuda/include/
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

上記のTest PASSEDは、CUDAが正常にインストールされたことを意味します。

7 CUDNNのインストール

最初のステップはCUDNNのダウンロードです。CUDAをダウンロードする際に述べたように、CUDAはCUDNNのバージョンに対応している必要があり、私はCUDA 9.0 + CUDNN 7.05を選びました。

ダウンロードするには、事前にアカウントを登録する必要があります。 しかし、重要な注意点は、インターネットの科学(fanqiang)に登録し、ログインすることです!できるようになります。そうでないと入れません!

公式サイト https://developer.nvidia.com/cudnn

私のcudnnファイルはこちら Baiduのクラウドリンク: https://pan.baidu.com/s/1wLqMuAAxu7vnCCgA2fr3PA パスワード:6uau

CUDNNのダウンロードはブログでどうぞ https://blog.csdn.net/u010801439/article/details/80483036 をクリックすると、中の手順が表示されます。

まずアーカイブを解凍し、実行します。

 pip install torch-0.3.0.post4-cp36-cp36m-linux_x86_64.whl 

この時点で、CUDNNのインストールは完了です!

8 Pytorchのインストール

のブログを参考にしてください。 https://blog.csdn.net/red_stone1/article/details/78727096

ここでは、エラーが発生しにくいオフラインインストールを一旦使用することをお勧めします。

インストールパッケージは、以下のサイトからダウンロードできます。 https://pytorch.org/previous-versions/

0.3.0 は torch のバージョン、cp36 はサポートする Python のバージョン、私の Python は 3.6 なので cp36、linux_x86_64は64ビット版、cu90 は cuda9.0 のバージョンです。

<スパン 私のインストーラへのBaiduクラウドのリンク。 https://pan.baidu.com/s/1wLqMuAAxu7vnCCgA2fr3PA パスワード:6uau

インストールパッケージのパスに移動し、実行します。

pip install torchvision

次に実行します。

mayunteng@mayunteng-OptiPlex-7040:~/Newpack$ python
Python 3.6.3 |Anaconda, Inc.| (default, Oct 13 2017, 12:02:49) 
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> 

次に、python コマンドラインで import torch と入力し、警告が出ずに pytorch と torchvision が正常にインストールされることを確認します。

import torch as t
x = t.rand(5,3)
y = t.rand(5,3)
if t.cuda.is_available():
    x = x.cuda()
    y = y.cuda()
    print(x+y)

以上で、Pytorchのインストールは成功です。

最後に、これらをインストールした後、GPUアクセラレーションが使えるかどうかテストしてみましょう。

Jupyter NotebookまたはIPythonを開き、以下のコマンドを入力します。

 0.0624 1.3100 1.0462
 1.3511 1.1635 1.1907
 0.8890 1.0524 1.0477
 1.5921 1.0428 0.6046
 0.3175 0.9421 1.4520
[torch.cuda.FloatTensor of size 5x3 (GPU 0)]

最終的に以下のような画面が出力されれば、GPUアクセラレーションの起動に成功したことを意味し、そうでなければ失敗したことを意味します。

 0.0624 1.3100 1.0462
 1.3511 1.1635 1.1907
 0.8890 1.0524 1.0477
 1.5921 1.0428 0.6046
 0.3175 0.9421 1.4520
[torch.cuda.FloatTensor of size 5x3 (GPU 0)]

本当に疲れたので、質問があれば後で追加します・・・・。