高通X2 GPU架构有何新变化?

近日,高通公司 GPU 团队负责人Eric Demers接受了采访,在采访中Eric重点讨论了高通即将推出的 X2 GPU 架构,该架构相较于上一代 X1 GPU 所做出的改动,以及这些改动背后的设计考量。

为了更好的阅读体验,以下内容经过编辑整理:

George:请先介绍一下你的工作职责吧。

Eric:我在高通工作,目前担任 GPU 团队负责人,主要负责大部分硬件相关工作,同时也参与部分软件工作,我已经在高通工作了 14 年。

George:请用 60 秒时间快速总结一下,X2 GPU 对比 X1 GPU 有哪些新变化?

Eric:对我们而言,X2 是真正的下一代产品。这意味着我们全面审视了 X1 的所有技术基础,并且确信 “我们可以做得更好”,最终实现了性能的根本性提升。正如我之前提到的,X2 的性能提升十分显著,但功耗的增长幅度却并未与之成正比。因此,这是一款能效极高的核心:用户只需略微提高功耗,就能获得大幅的性能跃升。这与 “性能翻倍、功耗也翻倍” 的传统模式形成了鲜明对比,这是第一项重大改进。第二项改进是,我们希望 X2 成为一款全面支持 DirectX 12.2 Ultimate 标准的产品。目前大多数 Windows 平台的 GPU 均已支持 DirectX 12.2 的全部功能,而我们的 X2 也将加入这一行列。

George:从 API 支持的角度来看,X2 GPU 将兼容哪些接口?

Eric:首先,肯定是会支持 DirectX 12.2 及其所有前代版本,确保在该接口下的完全兼容性。同时,我们计划原生支持 Vulkan 1.4 接口,虽然 Windows 系统本身也提供了一个版本,但我们将推出原生版本,其代码库与其他产品所使用的保持一致。我们还将原生支持 OpenCL 3.0 接口,该版本同样与我们其他产品的接口方案相同。此外,我们计划在 2026 年第一季度推出对 SYCL 接口的支持。SYCL 是一款面向 GPU 的高端计算专用 API 及着色语言,属于开放标准,已有多家企业支持该接口。它将帮助我们拓展骁龙平台在 Windows 系统上的GPGPU应用场景。

George:我们再深入聊聊架构细节。X2 GPU 引入了一项名为 HPM(即高性能内存)的技术,对吧?这项技术的核心用途是什么?硬件层面又是如何实现的?

Eric:我们的 GPU 一直以来都配备了专用内存。早期面向移动设备时,我们采用的是分片渲染架构,其核心目的是最大限度降低内存带宽需求。实现这一目标的关键,是在数据被传输至 DRAM(动态随机存取存储器)之前,尽可能将更多数据保留在芯片内部。而现在,我们将这一理念推向了新高度:大幅增加了片上内存的容量,不再对屏幕进行分片渲染,而是采用常规渲染方式,但将渲染结果直接输出到片上 SRAM中,该内存的容量足以容纳整个画面或绝大部分画面内容。以 X2 至尊版为例,它能够原生支持 QHD+(2K 级别)、1600p 等分辨率的渲染,所有渲染操作(包括颜色光栅操作、深度缓冲等)都能在芯片上全速完成,完全不占用任何 DRAM 带宽。这就为 GPU、CPU 和 NPU的内存读取操作释放了带宽资源。这不仅能带来性能提升,节省的大量带宽还能进一步降低功耗。对我们而言,这是一次能效的重大突破。此外,HPM 并非仅用于渲染,它还是一块与 GPU 相连的通用大容量内存,同样可用于计算任务。例如,用户可以先将渲染结果存储在 HPM 中,然后直接在 HPM 内通过着色器进行后期处理。从应用和驱动的双重角度来看,HPM 支持多种灵活的使用场景。

George:X2-90 GPU 配备了 21 兆字节的 HPM。这些内存是如何分配的?是否是每个分片 5.25 兆字节,且每个分片只能访问自己的 5.25 兆字节?还是说,这些内存是整个芯片共享的?

Eric:从物理实现来看,HPM 确实是按分片配置的,每个分片对应 5.25 兆字节。但关键在于,我们设计了一个全带宽的交叉开关网络,如果将 HPM 视为帧缓冲,那么任何分片都能从任意位置读取数据。所有分片都可以对整个内存空间进行随机访问。尽管 HPM 在物理上分布于各个分片内部,但通过全带宽交叉开关,所有分片都能自由使用整个 HPM 资源。

George:HPM 的工作模式是怎样的?它是一种缓存,还是一种暂存器?

Eric:因为其工作模式完全由软件控制。用户可以将部分 HPM 分配为缓存,其中颜色缓存和深度缓存的总容量最高可达 3 兆字节,两者的占比通常在 1/3 到 2/3 之间。一般来说,当渲染结果需要输出到 DRAM 时,用户会将这部分 HPM 用作缓存。该缓存的作用是优化数据读取的粒度:系统会预取数据并将其传输至芯片,对数据进行解压缩后存入 HPM,尽可能在本地使用这些数据,仅在缓存行被替换时才将数据写回缓存。而 HPM 的剩余部分则预留为软件专用区域。这部分内存可以闲置,也可以用于存储渲染目标(支持多个渲染目标同时存储),还可以仅存储深度缓冲或颜色缓冲数据,甚至可以存储后续渲染过程中需要用到的纹理数据。从这个意义上说,它是一块真正的通用暂存器,应用程序和驱动程序都可以根据自身需求灵活使用。

George:为什么只允许 3 兆字节的 SRAM 用作缓存,而将剩余的 2.25 兆字节设为暂存器 SRAM?为什么不将全部内存都用作缓存呢?

Eric:这其实是我们内部也反复探讨过的问题。首先,将所有内存都设计为缓存,且保持当前的缓存粒度,需要付出不小的成本。缓存的标记内存(用于记录缓存数据状态的内存)容量会随着缓存大小的增加而同步增长,因此这并非无成本的设计,而是存在显著的开销。同时,标记内存的增大还会影响时序性能 —— 因为每次缓存访问都需要进行标记查找,标记内存越大,设计复杂度就越高。因此,缓存容量存在一个理想的上限,超过该上限后,所需的设计工作量和成本都会大幅增加。此外,我们通过测试发现了一个关键规律:当 HPM 能够容纳整个帧缓冲时,缓存效率可以达到 100%;但一旦缓存容量不足以容纳整个帧缓冲,效率就会进入平台期,除非缓存容量变得极小,否则缓存命中率不会显著下降;同样,除非缓存容量达到帧缓冲大小,否则命中率也不会显著提升。我们所选择的 3 兆字节缓存容量,恰好处于这个平台期的下限位置,能够实现非常高的缓存命中率。如果将缓存容量翻倍,命中率的提升微乎其微,但成本却会大幅增加。因此,对于本次设计而言,这是一个最优的权衡方案。未来,如果 HPM 的使用场景发生变化,我们可能会重新考虑这一配置,但就目前而言,这是最适合我们的平衡选择。

George:我们再进一步深入探讨分片架构。此前,分片的组成部分包括微流处理器(micro-SP),每个流处理器(SP)包含 2 个微流处理器,每个分片则包含 2 个流处理器。

Eric:没错。

George:过去,微流处理器发出的是 128 波指令,而现在 X2 已经切换为 64 波指令,但每个微流处理器仍然配备 128 个算术逻辑单元(ALU)。那么,你们是如何实现用每波 64 条指令来驱动 128 个算术逻辑单元的呢?

Eric:我不确定这与其他厂商的设计是否有很大差异,但我们采用的是双发射机制。也就是说,我们会同时发射两波指令,以确保所有算术逻辑单元都处于忙碌状态。从某种意义上说,这不仅让我们能够支持 64 波指令,还能通过 64 波指令实现更高的效率。当程序发生分支时,波的规模越小,粒度损失就越小,需要处理的潜在分支数量也越少。通常情况下,64 波指令对资源的利用效率要高于大尺寸波;实际上,同时运行两波指令的效率也高于单波指令。因此,对我们而言,即使不影响峰值吞吐量,增加在飞波的数量本身也是一种效率提升。不过,这也带来了一定的开销:为了支持两波指令同时运行,需要更多的上下文信息、数据信息和元数据。其中一个直接影响是,用于存储波数据的通用寄存器(GPR)容量需要扩大,我们将其容量从 96 千字节提升至 128 千字节,增幅约为 30%。扩大通用寄存器容量的部分原因是为了支持更多在飞波,这不仅是为了实现双发射机制,更因为增加在飞波数量本身通常能提升效率。

George:那么,你们的 GPU 实际能够实现双发射的频率有多高?两波指令同时执行的情况是否常见?

Eric:几乎一直都在双发射,GPU 绝大多数时间都以这种模式运行。当然,理论上可能存在一些特殊情况:比如着色器执行过程中出现 “气泡”(即流水线空转),两个波都处于等待状态,此时就不会有任何指令运行;或者其中一个波先被发射并提前完成执行。但总体而言,由于我们的在飞波数量非常多,总能为两波指令同时运行提供空间。

George:明白了。

Eric:只有在一种情况下可能会受限:如果某个波占用了大量通用寄存器,导致寄存器资源不足,虽然我们通常预留了足够容纳两个此类波的寄存器空间,但在这种情况下,GPU 可能会更频繁地出现节流,因为可用的在飞波数量不足以覆盖内存读取的延迟。

George:这么说来,双发射机制并没有太多限制条件?

Eric:没错,完全没有限制。

想要获取半导体产业的前沿洞见、技术速递、趋势解析,关注我们!

展开阅读全文

更新时间:2026-01-06

标签:数码   架构   缓存   内存   指令   数据   字节   容量   寄存器   接口   效率   处理器

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight All Rights Reserved.
Powered By 71396.com 闽ICP备11008920号
闽公网安备35020302034844号

Top