Google Colaboratoryとローカル環境(Jupyter Lab)の学習時間の比較
Google Colaboratoryとローカル環境(Jupyter Lab)の機械学習の学習(最適化)時間を比較する。
それぞれCPUとGPUで計測する。
方法
今回の手法にはPyTorchチュートリアル(日本語翻訳版)の0.8. クイックスタートをベースとして利用する。後述のア. 時間の計測とイ. CPU/GPU切り替えのコードを加えたら、通常通り上から実行すればよい。
ア. 時間の計測
学習(最適化)の時間の測定には、学習ループのセルの先頭に「%%time」を記述する。
%%time
epochs = 5
for t in range(epochs):
print(f"Epoch {t+1}\n-------------------------------")
train(train_dataloader, model, loss_fn, optimizer)
test(test_dataloader, model)
print("Done!")
イ. CPU/GPU切り替え
上記クイックスタートの「モデルの構築」のセルにおいて、CPUまたはGPUを直接指定する記述を追加する。(例)CPUを指定:
// device = "cuda" if torch.cuda.is_available() else "cpu"
device = "cpu"
// device = "cuda"
結果
CPU: 1min 18s
GPU: 59.7 s
Jupyter Lab(ローカル)
CPU: 45.6s
GPU: 26s
ColabではGPU指定はできないとはいえ、この結果を見るとローカルで環境を用意すると学習が半分で済む計算になる。
ローカル環境の詳細
今回の測定にはRyzen 3600 + GTX 1060 (6GB)にCUDA 10.2をインストールして次の環境を利用している。