Pytorch GPU転送を最小にする

Pytorch GPU版の処理速度を早くするために、MNISTのデータを
初めにGPUへ転送しておく事にした。
その結果、処理速度が向上したので以下にメモしておく。

1.基本となる処理
  Pytorch CPU版とGPU版の処理時間比較で使ったGPU版プログラムである。

2.処理時間
  訓練に287秒(基本版より94秒早い)、テストに3.3秒(基本版より3秒早い)であり、認識精度は同じ。
  それでもCPU版に比べると、訓練は72秒遅くテストは同じ時間である。

3.プログラムの変更内容
  下図枠内のように、初めに画像データをテンソルとしてGPU上に作成しておく。
  ラベルはCPU上で良いので、変数を別にした。

<個人的な感想>
GPU転送を最小にしてもCPU版よりも処理時間が遅くなる理由が分からない。
CPU版よりも早くなると期待したが・・・。
画素サイズが28 x 28の小さなものでは、行列積計算時間がCPUよりGPUの方が
大きいのか。

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください