AI 预测计算机芯片执行代码的速度
- 新的机器学习工具可以预测给定计算机芯片执行特定代码所需的时间。
- 它比英特尔自己的预测模型更准确。
确定处理器在稳态下执行汇编指令块所需的时钟周期数对于性能工程师和编译器设计人员来说都至关重要。
为此开发分析模型是一项极其复杂的任务,尤其是在现代处理器架构中,任务变得更容易出错,并且必须为每一代处理器从头开始执行。
现在,麻省理工学院的研究人员已经构建了一种机器学习工具,可以自动执行此过程,使其比静态机器代码分析器和编译器后端目前使用的最先进的手写工具更快、更容易、更准确。
他们在三篇会议论文中描述了这种新颖的机器学习流程:
1. Ithemal:神经网络模型在标记数据的基本块(计算指令块)上进行训练。然后预测给定的微处理器运行未处理的基本块需要多长时间。
2. BHive:为了验证 Ithemal,研究人员创建了来自不同领域的基本块的基准套件,例如密码学、编译器、机器学习和图形。他们收集了超过 300,000 个区块并将它们放入开源数据集 BHive。
测试表明,与英特尔自己开发的性能模型相比,Ithemal 能够更准确地预测英特尔处理器运行代码的速度。
3. Vemal:研究人员建立了一种新方法,可以自动创建一种名为 Vemal 的算法,该算法将特定代码转换为向量,以便用于并行计算。
Vemal 的性能优于工业编译器(包括 LLVM 编译器)中使用的手工矢量化算法。
使用数据而不是芯片的文档
英特尔确实提供了详细的文档来解释其芯片的架构。但是只有某些专家开发人员创建性能模型来模拟这些架构上的代码执行。由于这些芯片是专有的,英特尔在文档中省略了某些信息。
研究人员所做的是,他们使用神经网络对芯片执行基本块指令(例如运行特定命令、关机和重启)所需的平均周期数进行计时。
来源:麻省理工学院
神经网络会自动分析数百万个块,并逐渐了解不同的处理器架构如何运行代码。简单来说,研究人员使用人工智能模型来分析数据,而无需关注芯片的文档。
Ithemal 将看不见的基本块作为输入并生成一个数字,表明给定处理器运行该代码所需的时间。
在第二篇论文中,研究人员证明 Ithemal 的性能优于传统的手工模型。 Intel 预测模型的错误率为 20%,而 Ithemal 在不同领域的各种基本块上的错误率为 10%。
该模型可以在新架构上轻松训练:只需从该芯片收集更多数据,通过分析器运行它并利用该信息来训练 Ithemal。而已;该模型现在已准备好估计性能。它可以学习任何处理器架构的性能速度,包括谷歌新的张量处理单元。
阅读:Facebook 构建“SapFix”:一种调试代码的 AI 工具
然而,研究人员仍然不知道这个模型是如何进行预测的,因为大部分机器学习都是一个黑匣子。在接下来的研究中,他们将尝试探索可以解释这些模型的技术。
工业技术