资源受限加速器的库支持
1. 引言
加速器作为小型定制计算单元,近年来在从超级计算系统到小型嵌入式系统等广泛领域中越来越受欢迎。可编程加速器具有高效的能效,这使其在嵌入式系统中备受青睐。然而,为了实现高能效,加速器的资源通常非常受限,例如可高效访问的内存量较低,缓存或暂存内存较小。同时,许多加速器采用共享内存模型,如 Epiphany 加速器,但其当前版本的核心只有 32 千字节的本地内存,访问此内存空间之外的数据会产生较高的内存延迟,因此高效的软件需要较小的内存占用。
共享内存模型使得 OpenMP 成为一种有吸引力的编程模型,但管理有限的可用内存是一个挑战。本文提出了一种轻量级系统,允许加速器在主机上远程执行库函数,这与传统的加速器作为主机协处理器的模型不同,但可以减少加速器的内存占用,因为很少执行的库函数无需占用加速器的内存空间。
本文的主要贡献包括:
- 描述了一种轻量级系统,允许加速器在主机上执行任意库函数。
- 使用 SPLASH - 2 基准测试评估该系统,测量执行时间和内存占用,并与传统的同质系统进行比较。
2. 架构
假设系统由一个主机处理器连接到一个多核加速器组成。加速器上的主执行线程称为主线程,负责协调执行并控制一个或多个参与并行代码执行的工作线程,这些线程静态映射到加速器核心。
系统可能是异构的,执行由加速器驱动,主机提供辅助。本文重点关注运行时系统,编译器通常会采用函数外提等技术处理并行区域,将 OpenMP 编译指示替换为对运行时的函数调用。
应用程序可以使用任意数量的 C 库,并可能调用 ANSI C 库函数,这些调用通常在初始化期间或并行计算区域
超级会员免费看
订阅专栏 解锁全文
1904

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



