『PyTorchによる発展ディープラーニング』1-4 AWSのAMIの選び方

こんにちは、takeshiho0531です。

 

先週が東大ではA1タームという学期(??)の末で、それのちょっと前からレポートなりテストなりに追われていて久しぶりのブログ投稿になってしまいました。。

 

以前のブログでも『PyTorchによる発展ディープラーニング』に関して触れていましたが、一応一読はしました!今回はその中で初っ端から詰まってしまったAWSインスタンスの選び方について、私はどうしたのかを書いてみることにしました。

---------------------------------------

 

『PyTorchによる発展ディープラーニング』の中では1-4で選ぶインスタンス、起動のさせ方など詳しく書かれていますが、書かれた時から時間が経っているせいか、本の中で言及されているAMI(Amazon Machine Images)を見つけることができませんでした。

 

どうしたのかという結論から言うと、クイックスタートAMIから「Deep Learning AMI GPU PyTorch 1.12.1」というのを選びました。

AWSの画面のスクリーンショット

クイックスタートに入ってるくらいだからよく使われているということじゃないかなと思ったからです。このAMIに関しての説明は、

aws.amazon.com

に載っていましたが、

"Initial release of Deep Learning AMI GPU PyTorch 1.12 (Ubuntu 20.04) series. Including a conda environment pytorch for python3.9 complimented with NVIDIA Driver R510, cuda=11.6.2, cudnn=8.4.1, nccl=2.12.12, and efa=1.16.0."

とあり、conda環境でPyTorchが使えることを確認し、これにしました。

 

これに関しては他にも注意点があって、本の中ではp2.xlargeのインスタンスを起動させるように書かれていますが、スクショのところに書かれている通り、"Non-supported GPU instances: P2"と書かれています。上にリンクを貼った、AMIの説明に関するページで詳しくサポートされているインスタンスが記載されていますが、私はその中でもP3インスタンスのp3.xlargeを選びました。(私が使っていた時はP2インスタンスがサポートされてないってはっきり書かれていなかった気がしていて、実際コードを書いて

torch.device("cuda:0" if torch.cuda.is_available() else "cpu")

としても"cpu"が返ってきてしまって??となっていたところ、

Why is the GPU not working out of the box for Deep learning AMI EC2 instance? | AWS re:Post

のページを見つけて原因がわかり、解決できたという感じでした...)

 

さらになんですが、p3.xlargeにした場合、最低でも8vCPU必要です。ですが、現在(2022.12)はどこのリージョンでも制限がとても厳しく、大体どこのリージョンでも0vCPUが上限となっており1つもインスタンスが起動できない状況だと思われます。(制限は左のリストの「制限」というところから「制限の検索」という検索窓に「インスタンス」と入れるとすぐにみれました。)

AWSのEC2の画面

なので、この制限を緩和してもらう必要があります。まずはAWS Support Centerにアクセスして、"Open Support cases"というところからCreate caseをします。

AWS Support Conterの画面

Create caseボタンを押すと画面が遷移し、"Looking for service limit increases?"をクリックします。

Looking for service limit increases?

その後は、Limit typeをEC2インスタンス、プライマリインスタンスタイプをAll P instances、New limit valueを8にして欄を埋めていって一番下のSubmitボタンを押せば大丈夫だと思います。

結論から言うと、多分このリクエストは却下されます。ですが、そこでめげずにReopen caseをして、勉強に必要でこの勉強をしないと〇〇でダメなんです😢、みたいな感じで正直に書いて、個別に対応してもらうと上限を緩和してもらえると思います。担当者の方には丁寧に対応していただき、感謝しています。

 

最後に注意点ですが、P3インスタンスはP2インスタンスよりも値段が高い(私がやっていた時はP2の3倍くらいの値段が毎時発生していた)ので、安いリージョンでインスタンスを起動することと必要ない時はインスタンスを停止し忘れないようにすることが大事だと思いますー

 

---------------------------------------

なんだかすごく長くなってしまいましたが、ただの初心者のブログですが、少しでもお役に立てれば幸いです(思い上がりか?)。読んでくださった方、本当にありがとうございます。

こういう系のブログばっかになるのもなんだか嫌だなあ。考えます。

ではでは〜👋👋