5、深入探索OpenCL:共享虚拟内存与弱一致性原子操作

深入探索OpenCL:共享虚拟内存与弱一致性原子操作

1. 工作窃取与原子操作的性能优势

在特定情况下,工作窃取实现比其他实现更快。当工作项数量为32(采用工作窃取)或64(不采用工作窃取)时,工作窃取实现比Winterstein等人的实现快1.5倍。虽然原子操作本身成本较高,但它们能让工作项相互同步,在运行时平衡工作负载,从而提升应用程序的整体性能。

2. 共享虚拟内存(SVM)
2.1 为何需要SVM

在OpenCL 1.x中,主机和设备通信需显式地将数据从主机内存复制到设备内存,这会导致地址无法保留,不利于使用基于指针的数据结构。而OpenCL 2.0引入的SVM特性,提供了一个主机和所有设备都可访问的单一内存地址空间的假象。基于指针的数据结构可以在主机和设备之间无缝共享,只需显式传输数据结构的地址。这不仅减轻了异构编程的负担,还能显著提高速度,因为设备可以按需实时获取所需数据。并且,在适当的同步机制下,主机和设备可以同时修改SVM中的数据结构,进一步提高计算的并行度。

2.2 在CPU/FPGA系统中实现SVM

在异构CPU/FPGA系统中提供SVM需要实现以下三个功能:
- 虚拟地址到物理地址的转换 :CPU通常使用虚拟地址,因此在解引用主机地址空间的指针之前,必须将其转换为物理地址。这种映射关系存储在CPU的页表中。为了使主机上数据结构中使用的指针在传输到FPGA后仍然有意义,FPGA在每次SVM访问之前必须执行相同的虚拟到物理地址转换。可以通过允许FPGA直接访问主机内存中的页表来实现这一功能,例如在基于ARM的SoC中,可以通过ARM的加速器一致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值