OpenMP 4.0 加速器模型在 OmpSs 中的实现与性能评估
在并行计算领域,OpenMP 4.0 加速器模型为高效利用加速器设备提供了一种高级编程方式。而 OmpSs 作为一种基于任务的编程模型,对 OpenMP 4.0 加速器模型进行了实现和扩展,本文将深入探讨其具体实现以及相关性能评估。
1. OpenMP 4.0 与 MACC 的对比
在处理加速器相关任务时,MACC 对 OpenMP 4.0 的部分指令进行了不同的处理。部分 OpenMP 4.0 加速器指令(如 target data、target update 指令和 map 子句)被忽略,其功能交由运行时系统处理;而其他指令则被扩展以更好地与 OmpSs 模型匹配或提供额外功能。具体对比如下:
| OpenMP 4.0 指令 | MACC 处理方式 |
| — | — |
| target | 扩展(实现 device(int),ndrange 用于 CUDA 和 OpenCL 内核) |
| map(to/from/tofrom) | 实现但名称不同(copy in/out/inout) |
| distribute | 有新子句 |
| map(alloc) | 忽略 |
| teams | 实现 |
| target data | 目前忽略 |
| parallel for | 实现 |
| target update | 忽略 |
| distribute parallel for | 实现 |
2. MACC 内核配置与线程映射
在生成内核代码时,MACC 需要决定资
超级会员免费看
订阅专栏 解锁全文
2831

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



