参考链接:http://www.voidcn.com/article/p-fsdktdik-bry.html

该pin_memory参数与锁页内存、不锁页内存以及虚拟内存三个概念有关;

锁页内存理解(pinned memory or page locked memory):https://blog.csdn.net/dgh_dean/article/details/53130871 
What is the disadvantage of using pin_memory: https://discuss.pytorch.org/t/what-is-the-disadvantage-of-using-pin-memory/1702

pin_memory就是锁页内存,创建DataLoader时,设置pin_memory=True,则意味着生成的Tensor数据最开始是属于内存中的锁页内存,这样将内存的Tensor转义到GPU的显存就会更快一些。

主机中的内存,有两种存在方式,一是锁页,二是不锁页,锁页内存存放的内容在任何情况下都不会与主机的虚拟内存进行交换(注:虚拟内存就是硬盘),而不锁页内存在主机内存不足时,数据会存放在虚拟内存中。

而显卡中的显存全部是锁页内存!

当计算机的内存充足的时候,可以设置pin_memory=True。当系统卡住,或者交换内存使用过多的时候,设置pin_memory=False。因为pin_memory与电脑硬件性能有关,pytorch开发者不能确保每一个炼丹玩家都有高端设备,因此pin_memory默认为False。

(实操时,貌似如果内存交换过多时,置pin_memory = True会卡住,可以将其设为False,对应的num_workers = 0)

最新文章

  1. js new
  2. GWAS Simulation
  3. bash while/until循环学习
  4. Java 使用jaxp修改节点
  5. delphi平方开方
  6. Android开发的技术层次
  7. jsp 变量和方法的声明 Java程序片 HTML注释 JSP注释
  8. Sublime插件库新成员基于APICloud快速开发跨平台App
  9. iOS 轻量级的数据库leveldb
  10. ti processor sdk linux am335x evm setup.sh hacking
  11. centos6.5 无线网卡配置
  12. 重载new delete操作符是怎么调用的
  13. phpcms插件
  14. PAT乙级-1041. 考试座位号(15)
  15. java中断
  16. iOS企业版使用第三方实现自动更新版本
  17. maven手动安装jar包到本地仓库,以ojdbc6为例
  18. Linux下 查找大文件
  19. python 中的流程控制语句
  20. php cli命令 自定义参数传递

热门文章

  1. Python第二天: 变量详解及变量赋值
  2. Git以一个远程分支为基础新建一个远程分支(转载)
  3. ExcelDna项目完整工程演示及讲解
  4. 电脑重装系统后如何恢复 Mysql 数据库
  5. [mstsc]解决win8 win10 平板无法被mstsc连接的问题
  6. 【系统】libevent库学习
  7. jforum(1)--环境搭建
  8. Spring security oauth2 client_credentials认证 最简单示例代码
  9. <二>企业级开源仓库nexus3实战应用–使用nexus3配置docker私有仓库
  10. 剑指Offer_编程题_21