コンテンツにスキップ

深層学習ライブラリのインストール方法

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を使う
    • CVMFS上の Python(正確には ATLAS Local Root Base (ALRB) 上の Python)を使うには以下のようにします。
      $ export ATLAS_LOCAL_ROOT_BASE=/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase
      $ source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh
      $ lsetup "python 3.9.18-x86_64-el9"
      
      lsetup "python --help"で利用可能な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回目以降 一度パッケージをインストールしたあとは、以下のようにすることで同じ環境が利用できます。
    $ source env/bin/activate
    (env) $ 
    
  • 仮想環境から出るとき deactivateを実行することで仮想環境から出ることができます。
    (env) $ deactivate
    $ 
    

Apptainer

Tensorflow / PyTorchともに公式のdocker imageが提供されています。これをApptainerで動かすことができます。

イメージのダウンロード

  • Tensorflow
    $ apptainer pull docker://tensorflow/tensorflow:2.16.1-gpu-jupyter
    
  • PyTorch
    $ apptainer pull docker://pytorch/pytorch:2.2.1-cuda12.1-cudnn8-runtime
    
  • sif ファイルはそれなりのデータサイズがあるため、共通して使いそうなApptainerイメージをlxgpu01上の/pool/container/に設置しています。他に必要なイメージがありましたら管理者までご連絡ください。

サンプルスクリプトの実行

$ apptainer exec --nv IMAGE_PATH EXEC_NAME
のように実行することで、スクリプト(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.