プリインストールの利用方法(PyTorch、TensorFlow、JupyterLab)
本記事では、 WebARENA IndigoGPUのプリインストールの利用方法を説明します。
1. プリインストールとは
IndigoGPUではソフトウェアがプリインストールされたインスタンスを選択することができ、環境構築の手間を削減することができます。
インスタンスの末尾の記号がプリインストールされているソフトウェアを示しています。
次の表はプリインストールのバージョン一覧になります。
インスタンス末尾の記号 | NVIDIAドライバ | CUDA | Python | TensorFlow | PyTorch | JupyterLab |
---|---|---|---|---|---|---|
h | 515 | 11.7 | 3.10 | - | - | - |
i | 515 | 11.7 | 3.10 | 2.11 | 1.13 | 4 |
インスタンスタイプは、コントロールパネルのインスタンス管理から確認できます。
2. NVIDIAドライバ、CUDA、Pythonの利用方法
インスタンスにはNVIDIAドライバ、CUDA、Pythonが共通でインストールされています。
NVIDIAドライバとCUDAのバージョンは、インスタンスに接続後、次のコマンドで確認ができます。
$ nvidia-smi
Thu Oct 12 04:24:50 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 515.86.01 Driver Version: 515.86.01 CUDA Version: 11.7 |
|-------------------------------+----------------------+----------------------+
~省略~
Pythonは次のコマンドで実行できます。
$ python
Python 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
3. TensorFlow、PyTorch、JupyterLabの利用方法
TensorFlow、PyTorch、JupyterLabを使用する場合は、venv環境をアクティベートする必要があります。
TensorFlow、PyTorchはプリインストールされているバージョンによって、venv環境をアクティベートするコマンドが異なりますので、ご注意ください。
■venv環境アクティベートコマンド一覧
インスタンス 末尾記号 |
TensorFlow | PyTorch | JupyterLab |
---|---|---|---|
i | source ~/.venv/tf211_py310/bin/activate | source ~/.venv/torch113_py310/bin/activate | source ~/.venv/base/bin/activate |
3-1. TensorFlowの利用方法
TensorFlowのvenv環境をアクティベートします。
(base)$ source ~/.venv/tf211_py310/bin/activate
(tf211_py310) $
(tf**_py**)に切り替わったら、アクティベート完了です。
アクティベートした状態でpythonを実行します。
(tf211_py310) $ python
Python 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
TensorFlowをインポートします。
>>> import tensorflow as tf
~省略~
>>>
TensorFlowのバージョンを確認します。
>>> tf.__version__
'2.11.0'
>>>
TensorFlowのバージョンは、2.11.0がインストールされていることが分かります。
TensorFlowからGPUを確認します。
>>> print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))
~省略~
Num GPUs Available: 1
>>>
Num GPUs Available: 1が表示された場合、TensorFlowからGPUが適切に認識できています。
pythonを終了します。
>>> exit()
(tf211_py310) $
3-2.PyTorchの利用方法
PyTorchのvenv環境をアクティベートします。
(base)$ source ~/.venv/torch113_py310/bin/activate
(torch113_py310) $
(torch**_py**)に切り替わったら、アクティベート完了です。
アクティベートした状態でpythonを実行します。
(torch113_py310) $ python
Python 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
PyTorchをインポートします。
>>> import torch
>>>
PyTorchのバージョンを確認します。
>>> torch.__version__
'1.13.1+cu117'
PyTorchからGPUを確認します。
>>> torch.cuda.is_available()
TRUE
>>>
TRUEが表示された場合、PyTorchからGPUが適切に認識できています。
pythonを終了します。
>>> exit()
(torch113_py310) $
3-3.JupyterLabの利用方法
JupyterLabを使用する際は、ポートフォワードの設定をする必要があるため、一度インスタンスに接続しているターミナルからログアウトします。
※アクセスサーバに接続しているターミナル(access-server:~$ と表示されているターミナル)はログアウトする必要はありません。
インスタンスに接続するターミナルにおいて、カレントディレクトリが C:\Users\[user名]> になっている事を確認し、次のコマンドを実行します。(ポート8888のポートフォワード)
ssh -L 8888:localhost:8888 user@localhost -p 20122 -i .ssh\mykey.txt
Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.4.0-135-generic x86_64)
~省略~
Last login: Thu Oct 12 21:59:52 2023 from IPアドレス
(base) $
インスタンス接続の際、デフォルトで(base)のvenv環境ログインしています。この(base)にJupyterLabがプリインストールされているため、基本的にアクティベートは不要です。
アクティベートした状態で、次のコマンドを実行し、JupyterLabを起動します。
※起動後プロンプトは返ってきませんが、繋いだままにしておきます。
(base) $ jupyter lab --ip='*' --port=8888 --NotebookApp.token='' --
NotebookApp.password='' --no-browser
[I 2023-10-12 22:07:56.005 ServerApp] Package jupyterlab took 0.0000s to import
~省略~
次に接続元PCからブラウザを開き、ブラウザの検索窓にlocalhost:8888を入力し、Enterを押すと、ブラウザにJupyterLabが表示されます。
JupyterLabのUI上で、TensorFlowやJupyterLabのvenv環境を選択することができます。
終了する場合はブラウザを閉じ、ターミナルでCtrl-Cを入力し終了します。
Ctrl-Cを入力するとシャットダウンするか聞かれるのでyを入力します。
Shutdown this Jupyter server (y/[n])? y
[C 2023-10-12 22:29:06.849 ServerApp] Shutdown confirmed
[I 2023-10-12 22:29:06.851 ServerApp] Shutting down 5 extensions
(base) $
4.venv環境から抜ける場合
venv環境から抜ける場合は、ターミナルで次のコマンドを実行します。
(base) $ deactivate
$
(base)の表示が消えて、venv環境から抜けていることが分かります。
以上で、プリインストールの利用方法(PyTorch、TensorFlow、JupyterLab)は完了となります。