oneAPI GPU 优化指南 - 执行模式概述

本章节翻译by weavingtime@formail.com 原文:Execution Model Overview (intel.com)

通用 GPU (GPGPU) 计算模式的中的主机一般连接一个或多个计算设备。 每个计算设备由许多GPU计算引擎 (CE, Compute Engine)组成。 计算引擎也称为执行单元 (EU) 或 Xe 矢量引擎 (XVE)。 计算设备还可以包括高速缓存、SLM(Share Local Memory共享本地存储器)、HBM(高速内存)等,如图 通用计算模式 所示。 应用程序由主机软件(根据主机框架)和主机提交的kernel组成。kernel会运行在 VE 上。

通用计算模式

GPGPU 计算架构包含两种不同的可执行程序: 一个主机程序和一组在主机所设置的上下文中执行的内核 主机通过命令队列与这些内核交互。 每个设备都有自己的命令队列。 当一个命令被 提交到命令队列,它会被检查依赖项,然后在计算单元集群内的 VE 上执行 命令执行完毕后,kernel通过“线程结束”消息表示生命周期的结束。

GP执行模式决定了如何调度和执行kernel。 当 kernel-enqueue 命令提交内核去执行时, 该命令定义了一个索引空间或 N 维范围。 一个 kernel实例 由kernel、kernel相关参数 以及定义索引空间的参数组成。 当一个计算设备执行kernel实例时,它会在预定义的索引 空间或 N 维范围中的每个点执行kernel的函数。

正在执行的kernel函数称为work-item。work-item的集合被称为work-group。 计算设备 通过work-group来管理work-item。 各个工作项目可以由全局 ID 或work-group ID 和 work-group 内部local ID 的组合来标识。

work-group概念是在一个组中的多个单元项上运行相同的kernel,它抓住了数据并行计算的本质。 VE 可以以 SIMD 向量格式组织work-item,使用 SIMD 向量并行运行相同的内核,从而加计算速度。

设备可以以任意顺序计算每个work-group。此外,单个work-group内的work-item并发执行, 没有执行顺序的保证。高级别的work-group函数,如Barriers,适用于work-group中的每个 work-item,以满足同步的需求。这样的work-group函数必须定义为所有work-group中的 work-item都恰好遇到相同的work-group函数。

同步也可以在命令级别发生,而且同步可以在主机command-queue中的命令之间发生。 在这种模式下,一个命令可以依赖于另一个命令或多个命令中的执行点。

基于程序内存顺序约束的其他类型同步包括Atomics和Fences。这些同步类型控制特定work-item 的内存操作如何对另一个work-item可见,从而在数据并行计算模式中提供微级别的同步。

请注意,Intel GPU设备配备了许多矢量引擎(VE),每个VE都是一个多线程SIMD处理器。 编译器生成SIMD代码以将多个work-item映射到给定硬件线程内同时执行。kernel的 SIMD-width是由启发式驱动的编译器选项。常见的SIMD-width示例包括SIMD-8、SIMD-16和SIMD-32。

对于给定的SIMD-width,如果线程内所有kernel实例都执行相同指令,则可以最大化利用SIMD通道。 如果一个或多个kernel实例选择分歧分支,则线程执行分支的两条路径并通过掩码合并结果。 VE的分支单元跟踪这种分支分歧和分支嵌套。

上一章                                         主目录    上级目录                                                               下一章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值