LoginSignup
1
2

More than 1 year has passed since last update.

GPUサーバーにおけるPython環境構築

Last updated at Posted at 2021-05-30

GPUサーバーでPytorchとfaiss-gpuを使うコードを実行する際に、マシンによって環境を使い分ける必要が生じたので、備忘録として方法をまとめました。

https://qiita.com/supersaiakujin/items/50def6f33b79f9a61b18
を参考に、pyenv+anacondaで環境構築しました1

やる前に使いたいマシンのcudaバージョンを確認する必要があります。これは、

$ nvcc -V

等で確認できます。そして、

$ pyenv install -l

で表示される一覧の中から、インストールするanacondaのバージョンを決定します(以下anaconda3-5.1.0とします)。
その上で以下を順に実行します。

$ pyenv install anaconda3-5.1.0

$ pyenv local anaconda3-5.1.0

$ conda create -n 環境名

$ conda activate 環境名

# faiss-gpuのインストール
$ conda install -c pytorch faiss-gpu cudatoolkit="cudaのバージョン"

# pytorchのインストール(CUDA 11.0の場合)
$ conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0 -c pytorch

pytorchのインストールは https://pytorch.org/get-started/previous-versions/ を見てcudaのバージョンに合わせて行います。その他、必要なライブラリをconda installします。

ここまでできたらあとはコード実行するときに

$ pyenv local anacondaバージョン名
$ conda activate 環境名

で環境を立ち上げるだけです。

(環境名) $

みたいになってくれます。環境から抜けたい時は

$ conda deactivate

以上をマシンやディレクトリごとに行えばOK!、なのですが、筆者の環境ではこのままだとscreen環境内でconda activateができないという問題があったので、対処法を書いておきます。screenを使わない方は無視してください。

この解決策は、https://stackoverflow.com/questions/50591901/screen-inside-the-conda-environment-doesnt-work/53535739 を参考にしました。

まず、

$ pyenv local anacondaバージョン名
$ which conda

でcondaコマンドのパスを調べます。これをコピーして、

. コピーしたパス/etc/profile.d/conda.sh

を~/.bash_profileに追記し、

$ source ~/.bash_profile

を実行します。こうすると、screen環境内で

$ conda activate 環境名

が使えるようになるはずです!


  1. pyenv+virtualenvでやりたかったのですが、faissのインストールが上手くいかず挫折しました。 

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2