ディープラーニング用にグラフィックカードの購入を検討しており、どのくらいのGPUメモリがあればいいのか知りたく、本記事を作成しました。
前提
- 環境
- GCP
- GPU(NVIDIA Tesla T4)を1枚付けたインスタンス(4vCPU、メモリ8GB)
- Ubuntu 18.04.4、PyTorch 1.5.0
- 使ったプログラム
- PyTorchのサンプルコード(GitHub)
測定方法
- バッチサイズを4、16、64、256、1,024、4,096と変えながらMNISTの処理を実行。エポック数は20。
- 乱数のシードを3パターン用意し、平均値を集計。
- 実行中はnvidia-smiコマンドを使ってGPUメモリの使用量を測定。
結果
GPUメモリの使用量と処理時間
バッチサイズ | GPUメモリ使用量(MB) | 処理時間(秒) |
---|---|---|
4 | 1,752 | 1,185 |
16 | 1,750 | 387 |
64 | 1,880 | 246 |
256 | 2,270 | 211 |
1,024 | 3,278 | 204 |
4,096 | 10,490 | 204 |
テストデータでのlossとaccuracy

上記グラフだとバッチサイズ=4,096の影響が強すぎて、それ以外の差がわかりづらいので、、、
テストデータでのlossとaccuracy(バッチサイズ=4,096を除く)

まとめ
MNISTをやるだけであれば、GPUメモリ4GBのグラフィックカードで事足りそうですが、MNISTだけやって満足するわけがないので、違うデータでも測定をしてみる予定です。