0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

机器学习预测计算机芯片执行来自各种应用程序的代码的运行速度

倩倩 来源:量子认知 2020-01-16 08:13 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

最近,麻省理工学院的研究人员发明了一种机器学习工具,该工具可以预测计算机芯片执行来自各种应用程序的代码的运行速度。

为了使代码尽可能快地运行,开发人员和编译器将编程语言转换为机器可读代码的程序,通常使用通过模拟给定芯片体系结构运行代码的性能模型。

编译器使用该信息来自动优化代码,而开发人员使用该信息来解决将运行该代码的微处理器的性能瓶颈。但是,机器代码的性能模型是由相对较少的专家小组手写的,并且未经适当验证。结果,模拟的性能测量通常会偏离实际结果。

研究人员开发了一种新颖的机器学习管道,该管道可自动执行此过程,从而使其变得更轻松、更快、更准确。这项研究成果在国际机器学习大会上发表。

研究人员通过一种特殊的神经网络模型,它以“基本块”(计算指令的基本摘要)形式训练标记的数据,以自动预测其持续时间使用给定的芯片执行以前看不见的基本块。结果表明,这种神经网络模型的性能要比传统的手动调整模型精确得多。

这个基准测试套件涉及多个领域,包括机器学习、编译器、密码学和可用于验证性能模型的图形。研究人员将超过30万已分析的块合并到一个开源数据集中。在评估过程中,这种神经网络模型预测了英特尔芯片运行代码的速度要比英特尔自身构建的性能模型还要好。

最终,开发人员和编译器可以使用该工具来生成代码,这些代码可以在越来越多的多样化“黑匣子”芯片设计上更快、更高效地运行。现代计算机处理器不透明,极其复杂且难以理解。编写对这些处理器执行得尽可能快的计算机代码也极具挑战性,该工具是朝着对这些芯片的性能进行完全建模以提高效率的重要一步。

最近,该团队又提出了一种自动生成编译器优化的新技术。具体来说,它们会自动生成一种算法,该算法将某些代码转换为向量,可用于并行计算。 这种算法优于LLVM编译器中使用的手工矢量化算法。

LLVM是业界常用的编译器,一个自由软件项目,它是一种编译器基础设施,以C++写成,包含一系列模块化的编译器组件和工具链,用来开发编译器前端和后端。它是为了任意一种编程语言而写成的程序,利用虚拟技术创造出编译时期、链接时期、运行时期以及“闲置时期”的最优化。它最早以C/C++为实现对象,而当前它已支持许多种程序语言。

研究人员说,手工设计性能模型可能是“一门妖术”。英特尔提供了超过3000页的详尽文档,描述了其芯片的体系结构。但是目前只有一小部分专家将构建性能模型,以模拟这些架构上代码的执行。

研究人员指出:“英特尔的文档既没有错误,也没有完整,并且英特尔会省略某些事情,因为它是专有的。” “但是,当使用数据时,不需要了解文档。如果有隐藏的内容,可以直接从数据中学习。”

为此,研究人员记录了给定微处理器用于计算基本块指令的平均周期数,基本上是启动,执行和关闭的顺序,而无需人工干预。使过程自动化可以快速分析成千上万个块。

在培训学习中,这种神经网络模型分析了数百万个自动剖析的基本块,以准确了解不同的芯片体系结构将如何执行计算。重要的是,该模型将原始文本作为输入,不需要手动向输入数据添加功能。在测试中,可以将以前看不见的基本块和给定的芯片提供给模型,模型将生成一个数字,指示芯片将以多快的速度执行该代码。

研究人员发现,该模型的准确性降低了错误率,这意味着预测速度与实际速度之间的差异比传统的手工模型降低了50%。此外,他们表明该模型的错误率为10%,而Intel性能预测模型在多个不同领域的各种基本块上的错误率为20%。

该工具现在使人们可以更轻松地快速了解任何新芯片架构的性能速度。例如,特定领域的体系结构,例如Google专门用于神经网络的新型Tensor处理单元,目前正在构建中,但并未得到广泛理解。 如果要在某种新架构上训练模型,只需从该架构收集更多数据,通过探查器运行它,使用该信息来训练模型,从而就有了一个预测性能的模型。

接下来,研究人员将通过这样的神经网络模型研究使人工智能模型可解释的方法。人工智能机器学习在很大程度上是一个黑匣子,因此尚不清楚为什么特定的模型会做出某种预测。这样的模型指示一个处理器要执行一个基本块需要10个周期,从而有可能设法找出其原因。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4829

    浏览量

    106891
  • 微处理器
    +关注

    关注

    11

    文章

    2416

    浏览量

    85392
  • 计算机芯片
    +关注

    关注

    0

    文章

    43

    浏览量

    3837
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    单片机程序执行

    关于程序执行时,从哪里读取指令,哪里读取数据,也曾因为没有弄清楚系统上的程序和裸机程序之间的区别,而疑惑了很久。虽然在《微型计算机原理》课
    发表于 12-04 06:20

    提高RISC-V在Drystone测试中得分的方法

    的设计和性能对运行速度有很大的影响。例如,处理器的超标量设计、乱序执行能力、分支预测准确性、缓存设计等因素都会影响性能。 时钟频率:高时钟频率可以提高处理器的执行速度,从而提高Drys
    发表于 10-21 13:58

    【作品合集】赛昉科技VisionFive 2单板计算机开发板测评

    、OpenSUSE、OpenKylin、OpenEuler、Deepin等,及在这些操作系统上运行的各类软件。 活动详情地址: 【RISC-V专题】VisionFive 2单板计算机免费试用 作品合集: 作者
    发表于 09-04 09:08

    如何解决开发机器学习程序时Keil项目只能在调试模式下运行,但无法正常执行的问题?

    如何解决开发机器学习程序时Keil项目只能在调试模式下运行,但无法正常执行的问题
    发表于 08-28 07:28

    自动化计算机经过加固后有什么好处?

    让我们讨论一下部署坚固的自动化计算机的一些好处。1.温度范围宽自动化计算机经过工程设计,配备了支持宽温度范围的组件,使自动化计算解决方案能够在各种不同的极端环境中
    的头像 发表于 07-21 16:44 442次阅读
    自动化<b class='flag-5'>计算机</b>经过加固后有什么好处?

    自动化计算机的功能与用途

    工业自动化是指利用自动化计算机来控制工业环境中的流程、机器人和机械,以制造产品或其部件。工业自动化的目的是提高生产率、增加灵活性,并提升制造过程的质量。工业自动化在汽车制造中体现得最为明显,其中许多
    的头像 发表于 07-15 16:32 552次阅读
    自动化<b class='flag-5'>计算机</b>的功能与用途

    工业计算机与商用计算机的区别有哪些

    工业计算机是一种专为工厂和工业环境设计的计算系统,具有高可靠性和稳定性,能够应对恶劣环境下的自动化、制造和机器人操作。其特点包括无风扇散热技术、无电缆连接和防尘防水设计,使其在各种工业
    的头像 发表于 07-10 16:36 536次阅读
    工业<b class='flag-5'>计算机</b>与商用<b class='flag-5'>计算机</b>的区别有哪些

    Blue Lion超级计算机将在NVIDIA Vera Rubin上运行

    德国莱布尼茨超算中心(LRZ)将迎来全新超级计算机 Blue Lion,其算力比该中心现有的 SuperMUC-NG 高性能计算机提升了约 30 倍。这台新的超级计算机将在 NVIDIA Vera Rubin 架构上
    的头像 发表于 06-12 15:39 864次阅读

    NVIDIA技术赋能欧洲最快超级计算机JUPITER

    NVIDIA 宣布,搭载 NVIDIA Grace Hopper 平台的 JUPITER 超级计算机成为欧洲最快超级计算机,其运行 HPC 和 AI 工作负载的速度是第二名的两倍以上。
    的头像 发表于 06-12 15:33 1078次阅读

    RVCT编译器是否比GNU的编译器的代码执行速度更快?

    ,是rvct3.1还是rvct4.0?如何把rvct编译器集成到ide中? 2、RVCT编译器是否比GNU的编译器的代码执行速度更快?
    发表于 05-08 07:49

    CPU的各种指令和执行流程

    在集成电路设计中,CPU的指令是指计算机中央处理单元(CPU)用来执行计算任务的基本操作指令集。这些指令是CPU能够理解并执行的二进制代码
    的头像 发表于 04-18 11:24 1995次阅读

    部署计算机运行 LabVIEW 应用程序时出现以下错误: “缺少外部函数 dll...”解决办法

    如果你既有 DLL 文件,也有头 (.h) 文件,那么可以使用共享库批量生成VI,不用再一个一个使用“调用库函数节点”来调用DLL,源代码运行是没有问题,一旦生成应用程序报错缺失外部函数或者外部函数
    发表于 04-01 19:10

    Quantinuum“Reimei”量子计算机在RIKEN正式运行

    )成功安装并全面投入运行。 此次合作中,RIKEN为“Reimei”量子计算机提供了世界级的基础设施,包括为其量身定制的设计、准备及交付工作。这一里程碑式的成就不仅标志着Quantinuum在量子计算领域的持续突破,也预示着未来
    的头像 发表于 02-17 10:21 821次阅读

    BU-67121W实验室航空电子接口计算机North Hills

    可以在BU-67121W上轻松创建嵌入式软件,实现MIL-STD-1553、ARINC 429和以太网接口之间的数据自动转发。独立模式:允许BU-67121W作为用户可编程的计算机系统独立运行
    发表于 02-11 09:26

    飞利浦出售计算机芯片子公司Xiver

    近日,据Xiver公司首席执行官透露,医疗技术领域的知名企业飞利浦已正式将其计算机芯片子公司Xiver出售。这一消息引起了业界的广泛关注。 据了解,此次收购由荷兰商人Cees Meeuwis领导
    的头像 发表于 01-09 15:55 915次阅读