我的目标是一台有四个内存通道和一张pcie卡的机器,我希望尽快流式传输数据。考虑到理论上卡可以单向传输大约8GB / s(7.88GB / s),这将导致大约15.8GB / s的吞吐量。看this我知道我的最大内存传输速率是12.8GB / s。即使没有考虑实际安装的内存,显然PCIe吞吐量超过了一个内存通道可以做的事情。
为了避免这种情况,我想确保流向设备的内存块I最终位于与我收到的通道不同的通道上。
magic_allocate_page_on_channel(); get_user_pages(...)
我会有一个短暂的时间,页面可以(理论上)再次换出,并可能通过get_user_pages
交换到不同的框架)