Pytorch pin_memoryはGPU転送速度が早くなるか?

Pytorch GPU版の処理速度が遅い原因として、CPU/GPU転送が
追加で必要になる為と推測した。
そこで、pin_memoryにより転送速度を早くできるか試してみた。
結果は、逆に遅くなった。後の為に以下にメモしておく。

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

2.処理時間
  訓練に450秒(235秒遅い)、テストに6.6秒(3.3秒遅い)であり、認識精度は同じ。

3.プログラムの変更内容
  下図枠内の命令を追加したのみ。

4.参考資料
  下記のWEBページにお世話になりました。ありがとうございます。
 ・GPU コンピューティングにおける各種オーバヘッド評価

<個人的な感想>
pin_memoryをループ数だけ実行しているので、余分な処理時間が増えていると思われる。
pin_memoryは1回だけ実行して、後は同じ変数を何度も使うようにプログラミングしないと
有効ではない。今回の変更では、そのようにできていないので効果がなかった。

コメントする

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