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

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

3天内不再提示

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

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

可以看出,智能体并不像人类专家一样追求直线布局。为了优化布局,智能体更倾向于弧形布局。我们也希望能训练智能体高效地创造一些前所未有的布局方式。

图片

为了实现这个目标,首先,我们运用强化学习算法优化某个芯片设计块的布局,期间需要经历上万次迭代;然后,重复前一步骤,在多个不同的设计块上预训练出一套布局规则,最终让算法在面对前所未见的新设计块时也能给出布局方案。

图片

预训练好的策略有助于在推理时做更少的迭代,进行“零次(zero-shot)布局”。我们实际上还没有新算法来优化这个特定的设计,当然我们可以做数百次迭代以得到更好的结果。

图片

上图展示了使用不同方法时的布局成本。蓝线表示不经过预训练的从头训练策略的布局成本,绿线表示用已预训练的算法优化新设计块的布局,X轴表示训练时间,可以看到,蓝线在经过20多小时的训练后方可大幅降低布局成本,此后仍需经过一段时间才能达到收敛。而绿线只用了极少的训练时间就达到了更低的布局成本并很快收敛。

最令我感到兴奋的是圈红部分。调优预训练策略在短时间内就可实现相当不错的布局,这种实现就是我所说的,在一两秒内完成芯片设计的布局。

图片 上图展示了更详细的不同设计的情况。Y轴表示线长成本(越低越好)。绿色表示使用商业工具的线长成本,可以看到,从浅蓝色(零次布局)→蓝色(2小时微调)→深蓝色(12小时微调),线长成本越来越低。深蓝色一直比黄色的线长成本要低,因为通过12小时的微调能从其他设计中学到最佳布局。

图片

上图中,左边和右边分别展示了从头训练的策略和经过微调预训练策略的芯片布局过程。每个小方块表示一个宏的中心,空白部分表示为标准单元预留的位置。可以看到,右边从一开始就将宏放在边缘,将大片中间区域留空。而左边则要经过很多次迭代才能形成这样的格局。

图片

我们利用强化学习工具针对TPU v5芯片的37个设计块进行了布局与布线。其中,26个设计块的布局与布线质量优于人类专家,7个设计块的质量与人类专家相近,4个设计块的质量不如人类专家。目前我们已经把这个强化学习工具投入到芯片设计流程中了。

总的来说,用机器学习进行芯片布局与布线的好处包括:可以快速生成多种布局方案;即使上游设计有重大改动也可以迅速重新布局;大幅减少开发新ASIC芯片所需的时间和精力。

验证

图片

接下来是芯片设计的验证阶段。我们希望用较少的测试次数覆盖多个测试项目。验证是阻碍芯片设计提速的主要瓶颈。据估计,芯片设计过程中,80%的工作量在于验证,而设计本身仅占20%。因此,验证技术的任何一点进步都会产生重大作用。

Google在2021年NeurIPS(神经信息处理系统大会)上发表了论文《Learning Semantic Representations to Verify Hardware Designs》,我们能不能运用机器学习生成在更短时间内覆盖更广状态空间的测试用例?

验证阶段的基本问题是可达性(reachability)。目前的芯片设计能否让系统达成需要的状态?我们的想法是,根据当前的芯片设计生成一个连续的表示,从而预测对系统的不同状态的可达性。

图片

我们可以通过RTL将芯片设计抽象为一张图,然后运用基于图的神经网络去了解该图的特性,从而了解其对应芯片设计的特性,继而决定测试覆盖率和测试用例,这给了我们一个很好的设计的抽象表示。

图片

当然,如何将这种方法应用到实际芯片设计中将是另外一个重要话题。用RTL生成图表示之后,我们在图神经网络中运用一种叫Design2Vec的技术进行深度表示学习,从而帮助我们作出预测。

图片

图片

目前,芯片的验证环节需要大量人力,例如,找bug、查找测试覆盖率漏洞、分析和解决bug等,还需要经历多次如上图所示的流程循环。我们希望上述步骤可以实现自动化,自动生成新的测试用例以解决重要的问题。

图片

后来我们发现,可以把这个问题转化为一个监督学习问题。如果之前进行了一系列测试,并知道这些测试覆盖哪些测试点,就可以将这些数据用作监督学习中的训练数据。

图片

然后,当出现新的测试点时,假设进行一个新的测试,我们需要预测这个测试能否覆盖新的测试点。我们希望能结合之前的训练数据以及芯片设计本身,来实现这种预测。

图片

我们有两个Baseline,其中一个能够看到测试点(test points)和覆盖点(cover points)的数据,这是一个黑盒测试。

而Design2Vec除了能够处理上述数据外,还能处理实际设计、设计的图结构等等。如果你使用一半的测试点作为训练数据,并且设置多个大小不同的训练集,然后对其它测试点进行预测,那么将会得到非常出色的结果,即使是对于相对较少的覆盖点,也能泛化得非常好。相比之下,Baseline这种方法就不能对此进行很好地泛化。

图片

但使用图神经网络来学习设计、覆盖率和测试属性的方法,实际上比NeurIPS论文中的其他所有Baseline都要好。

图片

例如,我们常会遇到很多难以生成测试的覆盖点。工程师们发现使用RISC-V Design和TPU Design这两种不同的设计也很难为这些特定的覆盖点生成测试,于是我们又转向使用贝叶斯优化器来尝试生成测试。

上图右边这一列是贝叶斯优化器覆盖的不同测试点、覆盖点所需的模拟器调用数(simulator calls),中间一列是使用Design2Vec所需的模拟器调用数。从中可以看到,为覆盖这些有挑战性的覆盖点,Design2Vec生成的测试要少于贝叶斯优化器。所以Design2Vec非常好,相比之下它更快,能聚焦覆盖范围,还能节省在运行计算模拟器(本身很昂贵)上的开销。

图片

验证是芯片设计在理论和实践上长期面临的一个挑战。我们认为,深度表示学习能够显著提高验证效率和质量,并且在设计中实现泛化。

即使设计发生了一些改变,这个新设计的版本也能运用之前在众多设计上训练出来的系统,提高验证效率。正如在布局与布线阶段,经过训练后的算法即使面对新设计也能够预测不同测试的覆盖点,以带来好的结果。

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

    关注

    5

    文章

    1714

    浏览量

    56793
  • 芯片设计
    +关注

    关注

    15

    文章

    901

    浏览量

    54422
  • 硬件设计
    +关注

    关注

    18

    文章

    346

    浏览量

    44327
  • 机器学习
    +关注

    关注

    66

    文章

    8136

    浏览量

    130587
  • 神经网络技术

    关注

    0

    文章

    6

    浏览量

    5268
收藏 人收藏

    评论

    相关推荐

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

    为什么芯片设计需要很长时间?能不能加速芯片设计周期?能否在几天或几周之内完成芯片的设计?这是一个非常有野心的目标。过去十年,机器学习的发展离不开系统和硬件的进步,现在机器
    的头像 发表于 02-20 14:16 839次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>如何影响<b class='flag-5'>计算机硬件</b>设计1

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

    为什么芯片设计需要很长时间?能不能加速芯片设计周期?能否在几天或几周之内完成芯片的设计?这是一个非常有野心的目标。过去十年,机器学习的发展离不开系统和硬件的进步,现在机器
    的头像 发表于 02-20 14:17 968次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>如何影响<b class='flag-5'>计算机硬件</b>设计3

    咦!?怎么没有专门的计算机硬件设计的板块和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

    浅谈计算机硬件维护

    软件系统的同时,也应该重视对于计算机硬件的维护。以下是学习啦小编为大家精心准备的:浅谈计算机硬件维护相关论文。内容仅供参考,欢迎阅读!浅谈计算机
    发表于 09-08 06:49

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

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

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

    稳定运行, 计算机程序员应全面了解计算机系统硬件的各个部分,及时维护计算机硬件性能, 避免由于计算机设备故障影响人们日常的工作和生活。
    发表于 09-13 07:31

    计算机硬件维护的方法

    维护的过程中,要先对静态的故障进行分析,之后在查看其它的可能存在的动态故障。2计算机硬件维护的方法2.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

    计算机硬件知识大全

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

    计算机硬件知识试题

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