首页 > 解决方案 > cudaHost注册移动地址范围或复制到固定注册范围是否更快

问题描述

cudaHostRegister 移动地址范围(窗口)或复制到固定的注册地址范围是否更快?cudaHostRegister 固定主机内存(使可分页内存不可分页)以加速从主机到设备内存的传输。可以注册一个主机内存范围,然后传输,然后注册另一个范围,等等。或者,可以注册一个主机内存范围,复制到该范围并传输,然后使用第二个数据集重复该过程重新注册地址范围。

标签: cuda

解决方案


主机注册过程(涉及 CUDA 与操作系统的交互)在所花费的时间方面成本很高。根据经验,它可能会花费与传输数据(一次)所花费的时间一样多的时间,有效地使传输数据所花费的时间增加一倍,第一次使用缓冲区。

因此,仅从性能的角度来看,注册一个缓冲区并使用它一次很少能带来显着的性能提升(但是,您可能仍然希望这样做,以启用诸如并发之类的其他事情)。

如果一个缓冲区将被重复使用,那么固定(即注册)缓冲区通常会带来性能优势,与固定单个连续区域并使用一次相比,该缓冲区的重用程度会随着缓冲区的重复使用而增加。但是,如果有必要,这并没有考虑将数据复制到固定缓冲区和从固定缓冲区复制数据的成本。

固定的好处(如果有的话)将根据您的特定使用模式以及您将与之比较的确切使用形式而有所不同。然而,重复一遍,与在传输中使用非固定内存相比,固定缓冲区并仅使用一次很少能显着提高性能。


推荐阅读