页锁定存储器的使用

版主
使用页锁定存储器进行程序优化,首先使用cudaHostAllocation((void**)&a,bytes,cudaHostMapped)函数分配Host端内存空间,随后将数据写入已经分配好的这段内存中,但是我是使用的opencv来加载视频,并得到Mat型数据,得到的视频每一帧已经存在于内存(不是页锁定内存)中了,如果使用页锁定内存,将每一帧的数据再写入分配好的页锁定内存中,这样做是不是会造成内存的浪费。

LZ:

1:您可以这样使用。
2:这种用法有内存内部复制的时间开销和内存空间的占用开销。
3:即使您CUDA这边不使用page-locked memory,而是使用pageable memory,那么如此复制依然有时间开销和空间占用开销。
4:opencv的相关内容不在本版的讨论范围之内。

谢谢版主的回答

我补充下ICE:

楼主您还可以使用cudaHostRegister()来就地锁定您的普通内存,这样可以规避一次复制操作。

感谢来访。