doc解释:
https://pytorch.org/docs/stable/_modules/torch/utils/data/dataloader.html#DataLoader
pin_memory (bool, optional): IfTrue
, the data loader will copy tensors into CUDA pinned memory before returning them.
通常情况下,由于虚拟内存技术的存在,数据要么在内存中以锁页(“pinned”)的方式存在,要么保存在虚拟内存(磁盘)中。而cuda只接受锁页内存传入,所以在声明新的dataloader对象时,直接令其保存在锁页内存中,后续即可快速传入cuda。否则,数据需要从虚拟内存中先传入锁页内存,再传入cuda,速度将大大增加。其缺点是对于内存的大小要求较高。
参考:https://devblogs.nvidia.com/how-optimize-data-transfers-cuda-cc/