张大妈

GPU 计算单元和编程模型:Intel

源自知乎:图波列夫

02-16 12:43

深入剖析Intel GPU架构的独特设计,从计算单元的硬件创新到双轨并行的编程模型,理解其与NVIDIA和AMD的差异。本文将揭示Intel如何依托CPU技术积累,在GPU领域走出一条独特的技术路径,并探讨其战略调整背后的深层原因。

GPU 计算单元和编程模型:Intel智能速览

  • Intel GPU的控制单元更强,低延迟场景表现可能更好。

  • Xe核心采用模块化设计,不同代产品在XVE和脉动阵列上持续演进。

  • Xe3通过灵活的寄存器分配和更多计分板令牌优化延迟容忍度。

  • Intel支持SIMT和SIMD两种编程模型,以适应不同应用场景。

  • 从C-for-Metal到SYCL和oneAPI,Intel致力于构建统一的编程生态。

  • 面对市场挑战,Intel最终放弃部分激进设计,全面转向SIMT架构。

GPU 计算单元和编程模型:Intel精华内容

Intel的GPU架构带有鲜明的x86烙印,其设计与编程模型在NVIDIA和AMD之外走出了一条独特的道路。

独树一帜的架构设计

Intel的GPU架构深受其CPU设计思想影响,相比竞品拥有更强的控制单元,这在低延迟场景下可能带来优势。其基本构建单元称为“切片”,每个切片由多个Xe核心构成。Xe核心内的XVE(向量执行单元)具备3路共发射能力,可同时执行浮点、整数及XMX矩阵指令。

特别值得注意的是XMX矩阵引擎,它采用一个8x4的32位脉动阵列结构,这与NVIDIA和AMD的Tensor Core实现方式不同。Intel在CPU、GPU及Gaudi加速器上统一采用脉动阵列,通过流水线化设计,每时钟周期可执行高达256次操作,大幅提升了AI计算吞吐量。

持续演进的计算核心

从面向消费级的Xe-HPG到面向数据中心的Xe-HPC,Intel的计算核心不断演进。Xe-HPC为高性能计算优化,支持高带宽内存和全速率FP64运算。而Xe2-HPG和Xe3-HPG则专注于图形和通用计算。

Xe3-HPG架构做出了关键优化。首先是寄存器分配模式的改进,从固定大小改为以32个条目为单位的灵活分配,使得简单着色器能运行10个线程,从而更好地利用线程级并行隐藏延迟。其次,每个线程的计分板令牌从16/32个增加到固定的32个,总计320个,这意味着每个线程可以拥有更多待处理的长延迟指令,显著增强了内存级并行能力。

双轨并行的编程模型

Intel GPU同时支持SIMT(单指令多线程)和SIMD(单指令多数据)两种编程模型。早期主要通过OpenCL和自家的C-for-Metal语言进行开发。OpenCL开发周期短但调优困难,容易出现寄存器溢出等问题。

C-for-Metal则是一种显式SIMD编程模型,它允许开发者将寄存器文件当作Scratchpad Memory使用,直接操作向量和矩阵,避免了SLM(共享本地内存)的数据共享瓶颈,从而能更充分地压榨硬件性能,但开发门槛也相对更高。这两种模型并存,为不同需求的开发者提供了选择。

走向统一的oneAPI生态

为了简化跨架构开发,Intel推出了基于标准C++的SYCL编程语言和oneAPI统一软件栈。oneAPI旨在为CPU、GPU、NPU、FPGA等不同硬件提供一致的编程体验。

C-for-Metal也演进为ESIMD(显式SIMD)扩展,作为SYCL的一部分。开发者可以通过ESIMD编写极致性能的内核,而SYCL则负责更上层的抽象和跨平台兼容性。主流深度学习框架如PyTorch和TensorFlow也已提供对Intel GPU的支持,整个生态正朝着统一和易用的方向发展。

战略调整与未来展望

尽管技术上有所创新,但Intel在GPU市场的商业化进程并非一帆风顺。数据中心后续的Rialto Bridge项目被取消,原本计划融合Gaudi和Xe架构的Falcon Shores项目也被放弃。

在经历挫折后,Intel做出了重大战略调整:全面转向主流的SIMT架构。这意味着,原本基于其独特SIMD模型开发的XeTLA库将被弃用,转而基于NVIDIA的CUTLASS库开发新的SYCLTLA库。这一转变标志着Intel在GPU软件栈上向行业共识靠拢,以降低开发门槛,吸引更多开发者。

内容由AI生成
0
扫一下,分享更方便,购买更轻松
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

最新文章 热门文章