gpt4 book ai didi

c++ - 我什么时候应该更喜欢写组合 CUDA 分配的映射主机内存?

转载 作者:太空狗 更新时间:2023-10-29 21:16:08 25 4
gpt4 key购买 nike

cudaHostAlloc() API 调用具有以下标志:

  • cudaHostAllocMapped: Maps the allocation into the CUDA address space. The device pointer to the memory may be obtained by calling cudaHostGetDevicePointer().
  • cudaHostAllocWriteCombined: Allocates the memory as write-combined (WC). WC memory can be transferred across the PCI Express bus more quickly on some system configurations, but cannot be read efficiently by most CPUs. WC memory is a good option for buffers that will be written by the CPU and read by the device via mapped pinned memory or host->device transfers.

我完全可以理解我什么时候更喜欢“写入组合”选项。我的意思是,它没有说转移可能只是在一个方向上更快,那么为什么他们只推荐一个方向呢?另外,哪种系统受益于这种“写入组合”?

我读了this白皮书,4.7节,还是拿不到。好的,所以 CPU 读取是低效的;但如果其他好处抵消了这种低效率呢?或者 - 如果他们不能,他们为什么不能?

如有说明,将不胜感激。

最佳答案

Write-combined 内存允许 CPU 将多个窄写入合并为更少的宽写入,从而提高内存写入的效率。如果内存可用,WC 内存于 1995 年左右首次随 Intel PentiumPro 一起引入,以加速 CPU 写入视频卡的帧缓冲区。我不了解哪些现代系统平台使用或支持它。

对于 cudaHostAllocMappedcudaHostAllocWriteCombined,CPU 执行的读取效率将相同。但是由于后者允许 CPU 进行更高效的写入,因此建议将其用于“将由 CPU 写入并由设备读取的缓冲区”,如引用文档所述。

关于c++ - 我什么时候应该更喜欢写组合 CUDA 分配的映射主机内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35977061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com