本章节翻译by chenchensmail@163.com 原文:OpenMP Execution Model (intel.com)
OpenMP 执行模式具有一个主机设备, 但有多个目标设备。设备是具有自己的 本地存储和数据环境的逻辑执行引擎。
在 Intel® 数据中心 GPU Max 系列上执行时, 整个 GPU (可能具有多个堆栈) 可以被视为一个设备, 或者每个堆栈都可以被视为一个设备。
OpenMP 在主机上开始执行。当主机线程遇到 target 构造时,数据从主机传输到设备 (例如,如果由 map 子句指定), 并将构造中的代码部署到设备上。在 target 区域结束时, 数据从设备传输回主机(如果指定)。
默认情况下,遇到 target 构造的主机线程 在继续执行之前等待 target 区域完成。 target 构造上的 nowait 指定主机线程 不需要等待 target 区域完成。 换句话说, nowait 子句允许异步执行 target 区域。
可以通过 taskwait 指令、 depend 子句、 (隐式或显式) barrier 或其他同步机制 实现异步执行的代码区域之间的同步。
本文介绍了OpenMP执行模型中主机和多设备协作,特别是如何在Intel数据中心GPUMaxGPU上进行数据传输和控制同步。重点讨论了target构造的nowait特性以及异步执行的同步方法,如taskwait和depend子句。
500

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



