Help us understand the problem. What is going on with this article?

Google ColaboratoryにはGPUガチャがあるよという話

※2019年8月時点の情報です。今後の機材アップデートやColabの方針次第では、この情報は変わる可能性があります。

きっかけ

条件を変えて別々のランタイムで訓練させると、1個は150エポックぐらい進んでいるのに、もう1個は50エポックぐらいしか進んでいないという現象がありました。

ほぼ同じ計算量なのに、条件によって2~3倍ぐらい計算時間が違う、これはおかしい――ということで調査してみました。

nvidia-smiしてみる

どのGPUが割り当てられているかは「nvidia-smi」で確認できます。

colab1.png

1回目、Tesla K80が割り当てられています。これまで通りですね。ここでランタイムをリセットしてみます。

colab2.png

2回目、Tesla T4が割り当てられました。こちらは最新のGPUです。訓練が速かったケースは、このGPUを引けたときだったようです。

このように、2019年8月現在のColabにはランタイムを割り当てるタイミングによってGPUが変わる、GPUガチャがあります。

元はK80だけの運用だったところに、最新のT4が追加され、現在は両方混ぜて割り当ててるのかもしれませんね。

注意点

特にベンチマークする際はお気をつけください。T4だと思ってたのがK80だったり、あるいはその逆だったりすると大きく結論が変わります。「!nvidia-smi」でどのGPUがきてるか確認してから、ベンチマークするのをおすすめします。

あとはこちらのほうが有り得そうですが、計算時間の目安が全然変わります。「あんまり時間かからないな」思ってそれを基準にエポック数設定していると、実はそこで割り当てられていたのはT4で、K80がきたときにはえらい時間がかかり、放置していたらタイムアウトしていたとかよくあります。最悪半日分の訓練が飛ぶので、悲しみを背負わないようにしましょう。

ただし、速いからといってT4狙いでリセマラをするのは自己責任で!(公式FAQに以下のような記述があります)

T4 GPU などのハードウェア リソースを利用できないのはなぜですか?
最も利用しやすいハードウェアは、Colaboratory を長期間のコンピュータ処理ではなくインタラクティブに使用しているユーザーに優先的に割り当てられます。Colaboratory を長期間のコンピュータ処理に使用しているユーザーは、利用可能なハードウェアの種類やハードウェアの利用時間に関して、一時的に制限される場合があります。コンピュータ処理に特別なニーズがあるユーザーは、Colaboratory の UI をローカル ランタイムで使用することをおすすめします。
なお、Colaboratory を暗号通貨採掘に使用することは認められていません。Colab のご利用を全面的に禁止される可能性がありますので、ご注意ください。

https://research.google.com/colaboratory/faq.html

なお、TPUランタイムの場合は、このようなデバイスガチャの要素があるという話は聞いたことはありません(あったら教えて下さい)。

koshian2
C#使ってましたがPythonに浮気してます。IoTでビッグデータをディープラーニングする闇の魔術の趣味をはじめました。 新刊通販(GAN本) https://koshian2.booth.pm/items/1835219 とら:https://bit.ly/2yKkCYw メロン:https://bit.ly/2YSu7zE 詳細:https://bit.ly/2TrDnGB
https://blog.shikoan.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした