利用 StarPU 统一运行时系统挖掘 Cell/BE 架构的潜力
1. 引言
在当今的计算领域,异构多核处理器的应用越来越广泛。为了充分利用这些处理器的性能,需要一个高效且灵活的运行时系统。STARPU 作为这样一个统一运行时系统,能够支持多种架构,包括 CELL 处理器。本文将详细介绍 STARPU 如何扩展以高效利用 CELL 架构。
2. STARPU 统一运行时系统
STARPU 运行时系统通过提供名为 codelet 的高级任务抽象,为异构多核处理器提供支持。Codelet 可以在不同架构上执行,如多核处理器、GPU 和 CELL 处理器。STARPU 能同时使用所有计算资源,将 codelet 高效地映射到可用资源上,同时隐藏底层技术机制。
从编程角度看,STARPU 不是一种新语言,而是一个库,用于执行应用程序显式提交的任务。它还特别注重任务的高效调度,并允许调度专家以可移植的方式实现自定义调度策略。
STARPU 的设计围绕两个主要组件:
- 数据管理库 :从加速器核心(如 GPU)访问主内存通常很困难或成本极高。STARPU 提供了一个数据管理库,为操作 codelet 使用的数据提供高级接口。该库通过强制数据一致性提供分布式共享内存,同时保护数据免受并发修改。其透明的数据迁移或复制机制还能执行额外的转换,如自动转换字节序或重新映射数据布局以适应目标架构。
- 统一执行模型 :应用程序以 codelet 的形式异步向 STARPU 提交任务。Codelet 封装了一个可以在 STARPU 控制的一个或多个计算资源(称为 w
超级会员免费看
订阅专栏 解锁全文

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



