この記事は、以下のサーバー環境で、
- 開発ライブラリー・・・Pytorch(cudaあり)
- GPUメモリ・・・NVIDIA A100(40G)
- クラウドサーバー・・・GCP(Google Cloud Platform)
- インストール済みCudaドライバ・・・V11.0.221
あれ?
トレーニングの速度がものすごく遅いぞ?
なんかフリーズしたみたいだぞ?
と思ったときに、問題が解決する記事です。
\IT未経験者からのサポートあり!転職サービス3選!!/
サービス名 | |||
---|---|---|---|
未経験 | 未経験OK | 未経験の転職専用 | 経験者向け |
公開の求人数 | ITエンジニア全体で1万件以上 ITエンジニア未経験で600件以上 |
未公開 | 5,000件以上 |
利用対象 | 全職種 | IT特化 | IT特化 |
特徴 | ✓誰もが知る転職サービス ✓経歴を登録しておくとオファーが来る |
✓企業担当者と条件交渉 ✓スキルの身につく企業を紹介 |
✓IT専門のエージェントが対応 ✓転職成功すると年収200万円以上の大幅アップがある |
転職サポート内容 |
|
|
|
公式サイト | リクナビネクスト | テックゲート | レバテックキャリア |
発生した問題(A100なのにトレーニングが遅い!)
筆者は、GCP(Google Cloud Platform)環境で、GPU・NVIDIA A100(GPU メモリ40G)でBig-bird-largeをトレーニングする機会がありました。
A100なら爆速でトレーニングが終わるかと思いきや、PytorchにてGPUにデータを流し込む部分(?)のところでフリーズしたような動き(CPU使用率90%)をしました。
その遅さは、CPUのみのトレーニングよりも遅いのでは?と思わせるほどでした。
以下の記事を参考にした結果、解消方法がわかったので公開します。
参考資料
https://github.com/pytorch/pytorch/issues/50252
原因は、condaを使ったpytorchのインストール方法の間違えでした。
問題の解消に8時間ほど(GCPの料金にすると2000円〜3000円くらいの無駄)かかってしまいました(笑)。
A100環境は、1ヶ月で10万円以上するので、できるだけ無駄を省きたいものですよね。
詳細は次章にて!
\IT未経験者からのサポートあり!転職サービス3選!!/
サービス名 | |||
---|---|---|---|
未経験 | 未経験OK | 未経験の転職専用 | 経験者向け |
公開の求人数 | ITエンジニア全体で1万件以上 ITエンジニア未経験で600件以上 |
未公開 | 5,000件以上 |
利用対象 | 全職種 | IT特化 | IT特化 |
特徴 | ✓誰もが知る転職サービス ✓経歴を登録しておくとオファーが来る |
✓企業担当者と条件交渉 ✓スキルの身につく企業を紹介 |
✓IT専門のエージェントが対応 ✓転職成功すると年収200万円以上の大幅アップがある |
転職サポート内容 |
|
|
|
公式サイト | リクナビネクスト | テックゲート | レバテックキャリア |
原因は、pytorchのインストール方法の間違え
今回の問題は、pytorchのインストール方法の間違えでした。
具体的には、インストール済みCudaドライバとcudatoolkitの組み合わせの不一致でした。
- Cudaドライバのバージョン= V11.0.221
- インストールしてしまったcudatoolkitのバージョン=10.0(←コレ間違え!)
しかも、「torch.cuda.is_available()」の結果はTrueを返すので、正しくインストールされているものとご認識していました。
その結果、以下のようにcudatoolkitのバージョンを「11.0」を指定して再インストールしたら、解消しました。
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0 -c pytorch
【解決】GPUありのPytorchのインストール方法
ここでは、GPUありのPytorchのインストール方法を述べていきます。
前提条件として、cudaドライバーがインストールされているものとします。
cudaドライバーのバージョンを確認
以下のコマンドでcudaドライバーのバージョンを確認します。
$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2020
NVIDIA Corporation Built on Wed_Jul_22_19:09:09_PDT_2020 Cuda compilation tools,
release 11.0,
V11.0.221
Build cuda_11.0_bu.TC445_37.28845127_0
上記の例では、cudaのバージョンが「V11.0.221」であることがわかる。
Pytorch公式ページからcondaのインストール方法を確認する
どのPytorchをインストールすればよいかについては、以下のサイトに乗っています。
検索方法としては「CUDA 11.0
」のようにcudaのバージョンで検索すると、必要な情報が見つかりやすいです。
Pytorch公式ページ
https://pytorch.org/get-started/previous-versions/
Pytorch公式ページにてインストールコマンドを確認します。
ちなみに、condaを使ったインストールが一番簡単です。
Pytorchをインストールする
pytorch公式ページで確認したコマンドを入力して、cuda(GPU)が使えるPytorchをインストールします。
筆者の例では以下のとおりです。
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0 -c pytorch
動作確認
以下のようなコードでcuda版のPytorchがインストールされたか確認します。
以下のコードを実行してTrueが返ってきたら成功です。
もしFalseが返ってきたら、インストールしたバージョンが正しいかなど確認します。
import torch
print(torch.cuda.is_available())
#Trueが出力されたら成功
このようなオペレーションをした結果、GCPのGPUA100インスタンスで、快適に動作しました。
めでたし、めでたし。
\IT未経験者からのサポートあり!転職サービス3選!!/
サービス名 | |||
---|---|---|---|
未経験 | 未経験OK | 未経験の転職専用 | 経験者向け |
公開の求人数 | ITエンジニア全体で1万件以上 ITエンジニア未経験で600件以上 |
未公開 | 5,000件以上 |
利用対象 | 全職種 | IT特化 | IT特化 |
特徴 | ✓誰もが知る転職サービス ✓経歴を登録しておくとオファーが来る |
✓企業担当者と条件交渉 ✓スキルの身につく企業を紹介 |
✓IT専門のエージェントが対応 ✓転職成功すると年収200万円以上の大幅アップがある |
転職サポート内容 |
|
|
|
公式サイト | リクナビネクスト | テックゲート | レバテックキャリア |