LoginSignup
2
1

More than 1 year has passed since last update.

Docker+GPU環境でESPnet2を使用する

Posted at

ESPnetを動かすための環境設定にはいくつか方法がありますが、ここではDocker環境でGPUを利用しつつ、ESPnetを動作させるための方法について説明します。以下、ESPnetと書いていますがESPnet2を使っています。
https://github.com/espnet/espnet

Docker環境を作る

まずNvidia GPUが使用できるDocker環境を作ります。ここで重要なのは使用するdockerイメージのバージョンです。ESPnetが対応しているcudaのバージョンのdockerイメージを使う必要があります。またcudaのバージョンはできるだけ新しいほうがよいです。たとえばRTX3000系のGPUを使うためにはcuda11以降を使う必要があります。

FROM nvidia/cuda:11.3.1-devel-ubuntu20.04

使用できるNvidiaのdockerイメージのリストはこちらのサイトで確認できます。baseと書いてあるイメージではなくdevelと入っているものを使用しましょう。baseのほうでは/usr/local/cuda-XX/binが存在しないのでESPnetのインストール時にエラーになります。
https://hub.docker.com/r/nvidia/cuda

Pytorchのバージョンも同様に合わせる必要があります。こちらはESPnetのgithubのページの表を参照してください。私の環境では1.10.1を使っています。

Dockerを起動してESPnetをインストールする

次にdockerを起動して、その環境の中でESPnetのインストールを行います。ESPnetが対応しているcudaの正確なバージョンはこのタイミングで確認できます。対応していないバージョンの場合はエラーメッセージが出て、インストールが停止します。

cd espnet/tools
make

cudaのバージョンでエラーになった場合は、自分の意図したcudaのバージョンが入っているか確認しましょう。cuda11.3の場合は、docker環境の中に/usr/local/cuda-11.3/binが存在するか確認しましょう。nvcc --versionでも確認できます。いずれも「docker環境の中」で確認してください。

espnet/toolsでのmakeの実行結果がおかしくなったらmake cleanしてからmakeしましょう。

動作確認

docker環境に入って、ESPnet2の適当なフォルダでrun.shを動かして動作確認を行います。cudaまわりの設定が正しくできていれば正常終了します。設定がおかしい場合は学習のところで止まるはずです。

cd espnet/egs2/an4/asr1
./run.sh
2
1
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
2
1