理论教育 数据传输优化技巧

数据传输优化技巧

时间:2023-06-23 理论教育 版权反馈
【摘要】:如图8-19所示,当将数据从host传到GPU时,需要先将pageable memory传到pinned memory,所以pinned memory无论是device与host还是device与device,传输速率都远大于pageable memory的传输速率。图8-19 数据传输以NVIDIA Tegra X1为例,传输32MB的数据,在pinned memory上host传输到device的传输速率的带宽为9892.3MB/s,device传输到host的传输速率的带宽为10076.1MB/s。因此,选择合适的内存可以实现数据传输的优化。本书采用zero copy的方式来进行数据传输,将栅格投影后的数据存放在pinned memory上,从而减少数据传输的消耗。

数据传输优化技巧

在TegraX1平台中,虽然device和host内存共享,但是device端与host端之间的数据传输也是整个算法性能主要瓶颈之一。内存分为pageable memory和pinned memory。如图8-19所示,当将数据从host传到GPU时,需要先将pageable memory传到pinned memory,所以pinned memory无论是device与host还是device与device,传输速率都远大于pageable memory的传输速率。

978-7-111-56928-2-Chapter08-48.jpg

图8-19 数据传输

以NVIDIA Tegra X1为例,传输32MB的数据,在pinned memory上host传输到device的传输速率的带宽为9892.3MB/s,device传输到host的传输速率的带宽为10076.1MB/s。而在pageable memory上,host传输到device的传输的实际带宽为2236.1MB/s,device传输到host的传输的实际带宽为1958.4MB/s,而device之间传输的实际带宽达到17919.4MB/s。因此,选择合适的内存可以实现数据传输的优化。(www.daowen.com)

实际上,CUDA提供一种允许GPU线程直接访问host端的pinned memory的机制,称为zero copy。通过线程与底层硬件的直接映射,可以减少数据传输的消耗。

栅格投影后的栅格数据量非常大,如果采用通用的传输方法,则其占用内存和时间消耗极大。本书采用zero copy的方式来进行数据传输,将栅格投影后的数据存放在pinned memory上,从而减少数据传输的消耗。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈