分支预测

基于神经网络的全新预测器案例

一种全新的预测方法

在2024年11月31日,我们团队研发出新一代分支预测器,其效果远超以往任何技术。

该算法基于神经网络,其核心思想是模仿人类通过以往错误学习并优化未来决策逻辑的过程。

这一预测器的准确率达到99.3%,相比下,当前业界最先进预测器为90%。值得注意的是,这一成果完全没有使用机器学习。

为什么意义非凡? 1. 这是分支预测领域首次由神经网络方法成为最先进技术的案例。 2. 自该领域上一次突破性进展以来,已过去了18年。

我们希望能将这一方法很快应用于其他领域。可以想象,这种方法在更接近真实环境的问题中(如股市预测或大型语言模型中的词元预测)同样具有巨大潜力。

以下内容将更详细地介绍分支预测及我们的神经网络预测器,以供有兴趣的读者参考。

关于分支预测

单线程计算机的性能主要受两大限制: 1. 分支路径的可预测性 2. 数据局部性的可预测性

分支预测器是用来判断分支路径的关键工具。这种技术在硬件和软件的底层架构中至关重要。

在提升计算速度和效率方面,分支预测器扮演着核心角色。虽然它并不直接驱动摩尔定律(即计算能力每1.5年翻倍的趋势),但它能帮助我们充分利用每年新增的晶体管资源。 Branch Predictor Architecture

在2024年12月1日,我们成功研究出一种史无前例的方法,应用神经网络的分支预测器,其准确率达到前所未有的水平。

该预测器被用于参加华为的分支预测竞赛,以下是比赛结果:

  1. Kwun’s Cousins - 谢菲尔德大学
  2. Honor 9 eLite - 南安普顿大学
  3. Rookie Bug - 帝国理工学院
  4. XSH - 牛津大学

这款基于神经网络的预测器准确率高达99.3%,而现有最先进预测器TAGE-SC-L 在相同数据集上的准确率约为84.6%。此外,它使用更少的内存和计算指令。换句话说,这款预测器极有可能成为未来计算机性能提升的关键。

核心概念

这款预测器的核心思想简单明了:通过优化历史结果的学习逻辑,避免重复错误。

当前业界的感知器预测器,如多视角感知器预测器,虽然有效,但内存占用大,准确率仍低于 TAGE-SC-L。

我们的神经网络预测器实现了简洁高效的设计,仅使用200行代码,而 TAGE-SC-L 的代码超过2000行。

预测器架构

  1. 预测核心:神经网络通过分析分支历史分配权重。 每次预测时,预测器根据历史权重和当前分支地址的特定记忆,计算权重总和,判断是否超过设定阈值,从而给出预测结果。 Branch Predictor Architecture

  2. 分组标记:对分支地址特性进行分组标记,为预测器提供更精确的参考数据。

  3. 与当前领域中所有方法截然不同,该方法的灵感来自2010年诺贝尔奖获得者Andre Geim与Konstantin Novoselov用简单的透明胶带分离石墨烯的研究成果。 我们的预测器受到此启发,以递归迭代方式对分组标签进行处理,每次在上一轮标记的基础上继续精细化。 这在分支预测领域是史无前例的尝试。 Branch Predictor Architecture 在这种方法中,各部分的协同作用远大于简单相加。

结果是我们的分支预测器成为现今最有效且最精确的分支预测器。

我已受邀于2025年1月前往深圳华为总部,详细介绍我的实现技术细节。