jxh*_*jxh 6 x86 x86-64 linux-kernel numa dma
我正在查看Linux环回和IP网络数据处理,似乎没有代码可以覆盖不同套接字上的2个CPU通过环回传递数据的情况.
我认为应该可以检测到这种情况,然后在可用时应用硬件DMA,以避免NUMA争用将数据复制到接收器.
我的问题是:
有多个项目/尝试将接口添加到旨在用于 HPS (mpi) 的内存到内存 DMA 引擎:
process_vm_readv: http:process_vm_writev //man7.org/linux/man-pages/man2/process_vm_readv.2.htmlKNEM 可能在某些微架构和尺寸上使用 I/OAT Intel DMA 引擎
通过 DMA 引擎进行 I/OAT 复制卸载 一项有趣的异步功能无疑是 I/OAT 复制卸载。
icopy.flags = KNEM_FLAG_DMA;
一些作者表示,它在较新的 Intel 微架构上没有硬件 DMA 引擎的优势:
http://www.ipdps.org/ipdps2010/ipdps2010-slides/CAC/slides_cac_Mor10OptMPICom.pdf
I/OAT 仅对过时的架构有用
CMA 被宣布为与 knem 类似的项目:http://www.open-mpi.org/community/lists/devel/2012/01/10208.php
这些系统调用旨在通过允许通过单个复制操作(而不是使用共享内存或管道时所需的双重复制)交换消息来实现快速消息传递。
如果可以的话,您不应该使用套接字(尤其是 tcp 套接字)来传输数据,它们具有很高的软件开销,当您在单机上工作时不需要。标准skb大小限制可能太小而无法有效使用 I/OAT,因此网络堆栈可能不会使用 I/OAT。
| 归档时间: |
|
| 查看次数: |
400 次 |
| 最近记录: |