当前位置:   article > 正文

pinned memory or page locked memory)_page-locked memory

page-locked memory

锁页内存(pinned memory or page locked memory)

  • 主机端存在虚拟内存,
  • 主机内存不足是会将内存数据交换到虚拟内存中,
  • 虚拟内存就是主机中的磁盘空间,
  • 需要该页时再重新从磁盘加载回来。
  • 这样做可以使用比实际内存更大的内存空间。

  • 锁页内存允许GPU上的DMA控制器在使用主机内存时不用CPU参与。
  • GPU上的显存都是锁页的,因为GPU上的内存时不支持交换到磁盘的。
  • 锁页内存就是分配主机内存时锁定该页,让其不与磁盘交换。

  • CUDA中锁页内存用
    • CUDA驱动API cuMemAllocHost()
    • CUDA的运行时API的cudaMallocHost()。
  • 还可直接用主机上Malloc()分配的空间,
    • 然后将其注册为锁页内存(用cudaHostRegister()注册)。

也就是我喜欢在内存中申请锁页内存,因为这样传输效率好啊!

  • 锁页内存的好处
  • 1.设备内存与锁页内存之间的数据传输可以与内核执行并行处理。
  • 锁页内存可以映射到设备内存,减少设备与主机的数据传输。
  • 前端总线的主机系统锁页内存
    • 设备内存之间的数据交换会比较快;
    • 且可以是write-combining的,此时带宽会跟大。

  • 如果要所有的线程都可以使用锁页内存的好处,
  • 需要在分配时将cudaHostAllocPortable标志传给cudaMallocHost(),
  • 或将cudaHostRegisterPortable标志传给函数cudaHostRegister()

参考链接

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号