cuda的Pinned Memory(分页锁定内存)

CUDA程序中,为了提高主机内存与设备内存之间传输效率,可以使用Pinned Memory。Pinned Memory拷贝速度约6GB/s,比普通内存快。此外,可以使用内存映射实现Zero Copy,但在CUDA 2.2以后效果不明显。cudaHostRegister()函数可以把普通内存转换为Pinned Memory,避免额外的CPU内存拷贝。注意,Pinned Memory是稀缺资源,过多分配会影响系统性能。
摘要由CSDN通过智能技术生成

当为了提高CUDA程序的主机内存和设备内存传输消耗时,可以尝试一下两种方案

一:使用分页锁定内存,分页锁定内存和显存之间的拷贝速度大约是6GB/s,普通的分页内存和GPU间的速度大约是3GB/s,(另外:GPU内存间速度是30G,CPU间内存速度是10GB/s),但是这种方法会带来额外的cpu内存间的拷贝时间

二:使用内存映射(Zero Copy)让GPU直接使用CPU的内存,减少主机和设备间内存传输的时间,但是这种方法对于2.2以后的cuda版本未必管用

三:通过函数cudaHostRegister()把普通内存改为分页锁定内存,和一的方法类似,但不会带来额外的cpu内存拷贝时间,实验证明该方法有效果。

========================================================================================================

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zlingh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值