深層学習ライブラリのインストール方法
TensorFlow や PyTorch といった深層学習ライブラリを使うにはいくつかの方法があります。 お好みの方法をお選びください。
LCGEnv
cvmfsで公開されたソフトウェア群を利用する方法です。 以下のようなコマンドで深層学習ライブラリが使えるようになります。
export ATLAS_LOCAL_ROOT_BASE=/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase
source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh
lsetup "views LCG_105_cuda x86_64-el9-gcc11-opt"
lsetup views
のようにすることで使用できるバージョンが確認できます。
例えばLCG_105
にはTensorflow 2.13.1、PyTorch 2.1.0, Jax 0.4.20 が含まれています。
初めてcvmfs上のファイルを読み込むときは時間がかかりますが、その後はファイルがキャッシュされている限り高速にアクセスできます。
venv+pip
Pythonのセットアップ
lxgpu01 には python3.9 がインストールされています。システム上のPythonは予告なくアップデートされる可能性があるため、Python環境を長く使う可能性がある場合はpython versionを固定して使うことを推奨します。 任意のバージョンの Python を使う方法として以下があります。
- cvmfs上のPythonを使う
- pyenvを使う
- pyenvを用いて任意のバージョンのPythonをローカルにインストールすこともできます。詳細は公式GitHubをご確認ください。
venv で深層学習ライブラリのセットアップ
venv で仮想環境を構築し、そこに必要なパッケージをインストールします。
- 初回セットアップ
$ python3 -m venv env $ source env/bin/activate (env) $ pip install --upgrade pip (env) $ pip install tensorflow (env) $ pip install jupyter (env) $ ...
env
はパッケージがインストールされるディレクトリ名で、好きな名前を指定できます。pip install PACKAGE_NAME
で必要なPythonパッケージを仮想環境にインストールできます。 - 2回目以降 一度パッケージをインストールしたあとは、以下のようにすることで同じ環境が利用できます。
- 仮想環境から出るとき
deactivate
を実行することで仮想環境から出ることができます。
Apptainer
Tensorflow / PyTorchともに公式のdocker imageが提供されています。これをApptainerで動かすことができます。
イメージのダウンロード
- Tensorflow
- PyTorch
- sif ファイルはそれなりのデータサイズがあるため、共通して使いそうなApptainerイメージをlxgpu01上の
/pool/container/
に設置しています。他に必要なイメージがありましたら管理者までご連絡ください。
サンプルスクリプトの実行
のように実行することで、スクリプト(EXEC_NAME
)をコンテナイメージ(IMAGE_PATH
)上で実行できます。--nv
はGPUを利用するために必要なオプションです。
Tensorflowの例
tf_device.py
#!/usr/bin/env python
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
コンテナ上で実行
$ apptainer exec --nv /pool/container/tensorflow_2.16.1-gpu-jupyter.sif python tf_device.py
...
physical_device_desc: "device: 0, name: Tesla V100-PCIE-32GB, pci bus id: 0000:65:00.0, compute capability: 7.0"
...
physical_device_desc: "device: 1, name: Tesla T4, pci bus id: 0000:17:00.0, compute capability: 7.5"
...
PyTorchの例
torch_device.py
#!/usr/bin/env python
import torch
for i in range(torch.cuda.device_count()):
print('device name:', torch.cuda.get_device_name(i))
コンテナ上で実行
$ apptainer exec --nv /pool/container/pytorch_2.2.1-cuda12.1-cudnn8-runtime.sif python torch_device.py
device name: Tesla V100-PCIE-32GB
device name: Tesla T4
Apptainerの詳細な使い方は公式ドキュメントを参照してください。
© 2024 ICEPP, the University of Tokyo.
Reproduction of the article, figures and tables on this page is allowed as specified in the CC-BY-4.0 license.