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回だけ実行して、後は同じ変数を何度も使うようにプログラミングしないと
有効ではない。今回の変更では、そのようにできていないので効果がなかった。