深入剖析Intel GPU架构的独特设计,从计算单元的硬件创新到双轨并行的编程模型,理解其与NVIDIA和AMD的差异。本文将揭示Intel如何依托CPU技术积累,在GPU领域走出一条独特的技术路径,并探讨其战略调整背后的深层原因。
智能速览
Intel GPU的控制单元更强,低延迟场景表现可能更好。
Xe核心采用模块化设计,不同代产品在XVE和脉动阵列上持续演进。
Xe3通过灵活的寄存器分配和更多计分板令牌优化延迟容忍度。
Intel支持SIMT和SIMD两种编程模型,以适应不同应用场景。
从C-for-Metal到SYCL和oneAPI,Intel致力于构建统一的编程生态。
面对市场挑战,Intel最终放弃部分激进设计,全面转向SIMT架构。
精华内容
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软件栈上向行业共识靠拢,以降低开发门槛,吸引更多开发者。