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

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

3天内不再提示

机器学习如何影响计算机硬件设计3

jf_78858299 来源:OneFlow 沈佳丽、胡燕君、贾 作者:OneFlow 2023-02-20 14:17 次阅读

架构探索和RTL综合

图片

芯片设计中,另一个比较耗时的方面是要清楚你究竟想要构建何种设计。此时你需要做一些架构探索(architectural exploration),然后做RTL综合。目前计算机架构师和其他芯片设计师等具有不同专业知识的人花费大量时间来构建他们真正想要的设计,然后验证、布局和布线,那么我们可以学习自动做架构探索和综合吗?

现在我们正在研究的就是如何为已知的问题实行架构探索。如果我们有一个机器学习模型,并且想要设计一个定制芯片来运行这个模型,这个过程能否实现自动化,并提出真正擅长运行该特定模型的优秀设计。

关于这项工作,我们在arXiv发表了论文《A Full-stack Accelerator Search Technique for Vision Applications》,它着眼于很多不同的计算机视觉模型。另外一个进阶版本的论文被ASPLOS大会接收了《A Full-stack Search Technique for Domain Optimized Deep Learning Accelerators》。

图片

这里要解决的问题是:当你设计一个机器学习加速器时,需要考虑你想在哪个加速器上运行什么样的机器学习模型,而且这个领域的变化非常之快。

上图中的红线是指引入的不同计算机视觉模型,以及通过这些新模型实现的ImageNet识别准确率提升。

但问题是,如果你在2016年想要尝试设计一个机器学习加速器,那么你需要两年时间来设计芯片,而设计出来的芯片三年后就会被淘汰。你在2016年做的决定将会影响计算,要保证在2018年-2021年高效运行,这真的很难。比如在2016年推出了Inception-v3模型,但此后计算机视觉模型又有四方面的大改进。

因此,如果我们能使设计周期变得更短,那么也许单个工作负载加速器能变得可用。如果我们能在诸多流程中实现自动化,那么我们或许能够得到正反馈循环,即:缩短机器学习加速器的上市时间,使其能更适合我们当下想要运行的模型,而不用等到五年后。

4用机器学习探索设计空间

图片

实际上,我们可以使用机器学习来探索设计空间。有两个因素影响加速器性能,一是设计中内置的硬件数据通道,二是工作负载如何通过编译器而不是更高级别的软件映射到该数据通道。通常,设计空间探索实际上只考虑当前编译器优化的数据通道,而不是协同设计的编译器优化和优化数据通道时可能会做的事。

因此,我们能否同时优化数据通道、调度(schedule)和一些编译器决策,并创建一个搜索空间,探索出你希望做出的共同设计的决策。这是一种覆盖计算和内存瓶颈的自动搜索技术,探索不同操作之间的数据通道映射和融合。通常,你希望能够将事物融合在一起,避免内存传输的每次内存负载中执行更多操作。

图片

根本上说,我们在机器学习加速器中可能做出的设计决策创建了一种更高级别的元搜索空间,因此,可以探索乘法的脉冲列阵(systolic array)在一维或二维情况下的大小,以及不同的缓存大小等等。

图片

如前所述,考虑编译器优化与硬件设计的协同设计也很重要,因为如果默认编译器不会更改,就无法真正利用处理器中底层设计单元的变化。实际上,不一定要考虑特定设计的所有效果和影响。

图片

接下来看看这种方式产生的一系列结果,将这些结果与TPUv3芯片的baseline(上图蓝条)进行比较。实际上这是假定型TPUv3芯片,其中模拟器已停止了运行。我们已经将其缩小到了sub-10纳米工艺。我们还将研究TPUv3的软件效用,以及共同探索在设计空间中的编译器优化。

红条和蓝条表示的内容是一致的,但一些探索过的编译器优化不一定在蓝条中得以体现,而这里的绿条则表示的是为单一计算机视觉模型定制的假定型设计。EfficientNet-B0...B7表示相关但规模不同的计算机视觉模型。与蓝条baseline相比,(绿条的)Perf/TDP的改进大约在3到6倍之间。

图片

那么除EfficientNet-B0...B7外,其他模型的情况如何?在此前所述的ASPLOS论文中提出更广泛的模型集,尤其是那些计算机视觉以外的BERT-seq 128和BERT-seq 1024等NLP模型。

图片

实际上,定制化芯片不只是适用于单个机器学习模型,而是使其适用于一组机器学习模型。你可能不想使你的加速器芯片设计仅针对某一项任务,而是想涵盖你所关注的那一类任务。

上图的黄条代表为五种不同模型设计的定制化芯片,而我们想要一个能同时运行这五种模型(红色箭头所指)的芯片,然后就能看出其性能能达到何种程度。可喜的是,从中可以看到,黄条(单一负载)并不比绿条(多负载)的性能低多少。所以你实际上可以得到一个非常适合这五种模型的加速器设计,这就好比你对其中任何一个模型都进行了优化。它的效果可能不是最好的,但已经很不错了。

图片

而且,如果你关注的点是性能而非Perf/TDP,得到的结果实际上会更好。所以结果如何取决于你关注的是什么,是绝对性能还是每瓦性能?在Perf//TDP指标中,性能结果甚至提升了2.6到8.8倍,而非Perf/TDP指标下的1.8到6.4倍。

因此,我们能够针对特定工作负载进行定制和优化,而不用构建更多通用设备。我认为这将会带来显著改进。如果能缩短设计周期,那么我们将能以一种更自动化的方式用定制化芯片解决更多问题。

当前的一大挑战是,如果了解下为新问题构建新设计的固定成本,就会发现固定成本还很高,因此不能广泛用于解决更多问题。但如果我们能大幅降低这些固定成本,那么它的应用面将会越来越广。

5

总结

图片

我认为,在计算机芯片的设计过程中,机器学习将大有作为。

如果机器学习在合适的地方得以正确应用,那么在学习方法(learning approaches)和机器学习计算的加持下,芯片设计周期能不能缩短,只需要几个人花费几周甚至几天完成呢?我们可以用强化学习使得与设计周期有关的流程实现自动化,我认为这是一个很好的发展方向。

目前人们正通过一组或多组实验来进行测验,并基于其结果来决定后续研发方向。如果这个实验过程能实现自动化,并且能获取满足该实验正常运行的各项指标,那么我们完全有能力实现设计周期自动化,这也是缩短芯片设计周期的一个重要方面。

图片

这是本次演讲的部分参考文献以及相关论文,主要涉及机器学习在芯片设计和计算机系统优化中的应用。

图片

机器学习正在很大程度上改变人们对计算的看法。我们想要的是一个可以从数据和现实世界中学习的系统,其计算方法与传统的手工编码系统完全不同,这意味着我们要采取新方式,才能创建出我们想要的那种计算设备和芯片。同时,机器学习也对芯片种类和芯片设计的方法论产生了影响。

我认为,加速定制化芯片设计过程中应该将机器学习视为一个非常重要的工具。那么,到底能否将芯片设计周期缩短到几天或者几周呢?这是可能的,我们都应该为之奋斗。

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

    关注

    19

    文章

    7346

    浏览量

    87617
  • 芯片设计
    +关注

    关注

    15

    文章

    989

    浏览量

    54755
  • 硬件设计
    +关注

    关注

    18

    文章

    390

    浏览量

    44512
  • 机器学习
    +关注

    关注

    66

    文章

    8341

    浏览量

    132283
收藏 人收藏

    评论

    相关推荐

    咦!?怎么没有专门的计算机硬件设计的板块和cpu设计的板块?

    我对计算机硬件和编程很有兴趣,但是没有发现有关设计cpu和计算机硬件的板块。
    发表于 02-21 12:24

    什么是计算机系统、计算机硬件计算机软件?

    第一章 计算机系统概论1. 什么是计算机系统、计算机硬件计算机软件?硬件和软件哪个更重要?解:P3
    发表于 07-22 09:06

    用简单的语言描述计算机硬件系统构成 精选资料分享

    一.计算机硬件系统概述所谓计算机硬件系统,就是指构成计算机看得见的,摸得着的实际物理设备。常见的计算机硬件组成主要由下图各部件组成:现代计算机
    发表于 07-29 08:51

    一种计算机硬件开发用检测工作台

    本实用新型涉及工作台技术领域,具体为一种计算机硬件开发用检测工作台。背景技术:计算机硬件(Computer hardware)是指计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称。这些
    发表于 09-03 07:00

    计算机硬件各种故障及诊断方法

    摘要:经济的发展和科技的进步使得计算机得以普及。计算机的已经成为工业、经济、管理等众多方面的重要运行手段,甚至已经成为了普通居民工作、生活、娱乐的一部分。关键词:计算机硬件;识别方法;解决措施中图
    发表于 09-08 07:47

    计算机硬件,第2篇 计算机硬件系统.pdf 精选资料分享

    第第2 章章 计算机硬件系统计算机硬件系统第第 章章 计算机硬件系统计算机硬件系统在本章中,首先我们将讨论组成计算机
    发表于 09-13 06:37

    计算机硬件系统的组成及其性能维护分析

    计算机硬件系统的组成及其性能维护分析1、前言随着信息技术的飞速发展, 计算机技术被广泛地应用于人们的生活与工作中, 计算机系统的安全稳定运行直接关系到整个经济社会的进步, 为了确保计算机
    发表于 09-13 07:31

    计算机硬件维护的方法

    1先检查电源及其他静态故障在进行其他部件的检测有调查可知,当前我国计算机硬件故障在维护过程中,因为电源故障而导致的故障问题非常常见,所以要对电源部件出现的故障问题引起足够的重视。在对计算机硬件进行
    发表于 09-17 07:15

    了解计算机硬件体系结构

    模块一知识点1.了解计算机硬件体系结构2.掌握常见的计算机硬件设备3.了解计算机软件体系结构4.掌握主板结构的组成5.了解CPU、内存、硬盘的发展历程6.掌握CPU、内存、硬盘的结构、
    发表于 09-17 09:03

    计算机硬件的基本组成

    嵌入式系统设计师学习笔记③:计算机的基本组成计算机硬件的基本组成:输入/输出设备(I/O设备)、存储器(主存储器、辅助存储器)、CPU(中央处理器)等。CPU中包含运算器和控制两大组成部分和寄存器组
    发表于 12-23 06:00

    微型计算机硬件组成

    微型计算机硬件组成 好东西哦。网上搜集,希望对你有用。
    发表于 03-25 15:17 62次下载

    计算机硬件知识大全

    计算机硬件知识大全
    发表于 05-15 09:50 0次下载
    <b class='flag-5'>计算机硬件</b>知识大全

    计算机硬件知识试题

    计算机硬件知识一、微机基本工作原理1、计算机系统的组成微型计算机硬件系统和软件系统组成。硬件系统:指构成
    发表于 07-01 17:21 76次下载

    计算机硬件接口大全图解

    计算机硬件接口大全图解 点击看大图
    发表于 03-26 10:15 2053次阅读

    计算机硬件的重要部件

    本视频主要详细介绍了计算机硬件的重要部件,分别是控制器、运算器、存储器、输入设备、输出设备以及中央处理器。
    的头像 发表于 11-24 10:34 1.8w次阅读