有了解IOAT的大佬吗,可以介绍下IOAT在哪些地方会比memcpy更有优越性不
关于intel的IOAT技术
同问!
对具体 IOTA 这个技术不了解,但是既然是一种 DMA 技术,那应该和其他硬件的 DMA 的优缺点和使用情景是类似的。
不知道是否已经看过这篇paper,总之分享一下吧,可能会有其他同学也感兴趣:
http://nowlab.cse.ohio-state.edu/static/media/publications/abstract/vaidyana-cluster07.pdf
这篇中就有多种情景与组合下 I/OAT 实现 memory to memory copy 的性能分析,以及 benchmark。相信你的问题都能在里面找到答案。
个人认为没有得到广泛应用的原因有
- 对操作系统、标准库原本的内存管理机制代码的侵入性太大
- 只在高端服务器 cpu 上得到支持
- 只针对某些特定情景有性能提升
或许对于驱动程序这类经常存在大块内存拷贝的场景来说作用会相对大一些?至少硬件 DMA 是肯定有帮助的。像网卡驱动缓冲区这类应该收益比较大,对零散的小块拷贝来说比较没有优势
I/OAT 根据 Intel 的介绍来看大致有 Chipset 级别的memcpy、设备 DMA (Direct Cache Access)、多核中断
https://www.intel.com/content/www/us/en/wireless-network/accel-technology.html