通过旁路技术挖掘Cell/B.E.架构的局部性
1. EIB带宽问题与应对策略
在Cell/B.E.架构中,当EIB(Element Interconnect Bus)流量集中指向单个EIB元素时,会出现带宽问题。例如,若SPE5、SPE7、SPE2和SPE4同时尝试与SPE6通信,它们的最大聚合带宽102.4GB/s会使SPE6不堪重负。
为应对带宽限制,可采用软件缓存和双缓冲技术。SPE软件缓存通过在SPE内部缓存和重用数据,减少通信次数,有效降低竞争和阻塞程度。而双缓冲技术虽不能减少竞争和阻塞,但可通过将通信与计算重叠来隐藏通信延迟,减轻其对计算的影响。
2. Cell Superscalar与CellSs环境
CellSs环境由编译器和库组成,为Cell/B.E.提供编程接口。它能方便地将标准的(顺序)C或Fortran代码转换为并行代码。用户只需在原始代码中添加编译指示,标记要在SPE中执行的函数(或任务)。
在运行时,CellSs执行用户代码并组织并行执行。其主要程序在PPE(Power Processing Element)上运行,同时运行CellSs PPE运行时库。该库有两个独立线程:
- 主线程:执行用户应用程序,重命名参数以避免虚假依赖,并根据真实依赖定义任务优先级。
- 辅助线程:利用任务和依赖信息构建任务依赖图,负责通过回调与SPE进行通信和同步。
CellSs SPE运行时库负责在主内存和本地存储之间传输参数并执行任务。它为每个SPE实现了本地软件缓存以减少数据传输次数,还采用双缓冲技术隐藏DMA(Direct Memory Access)延迟。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



