机器学习驱动高级合成热潮

随着端点体系结构变得越来越复杂,EDA工具成为试验不同选项的关键工具。

受欢迎程度

由于其处理机器学习矩阵和迭代设计工作的能力,高级综合(HLS)正在经历一波新的流行。

的明显优势HLS是C、c++和其他高级语言提高了设计师的工作效率,而不是RTL。设计一个应该工作的布局,然后很容易地修改它来测试其他配置的能力,可以节省更多的精力来寻找棘手问题的解决方案,或者快速开发新的定制或商业产品。

HLS数字和签名组高级首席产品经理Dave Pursley表示:“最大的优势在于,当你正在创建一个新的IP,需要进行修改以获得最佳的整体架构时节奏。“设计师们仍在努力找出正确的算法,使其有效地工作。所以想要尝试多个解是很正常的,最近我们看到的所有比特宽度的组合都很常见。如果你使用HLS用C语言进行设计,你可以重新生成代码。”

当它达到RTL时,任何更改都需要重新开始布局的可能性要大得多。

“首先,使用高级抽象模型可以让你更快地创建IP,”Pursley说。“如果你在RTL中进行设计,并且添加或删除了一个模式,或者他们改变了模型的某些内容,那么你就完蛋了。”

HLS是一个设计自动化工具,最初是为硬件验证而设计的。根据Cadence对其HLS产品线影响的估计,它使用了比RTL更高的抽象级别,并且有可能将设计时间和验证成本减少25%到50%。Synopsys、Mentor和Xilinx也销售自己的HLS软件包。

“这完全是关于如何编写浮点单元的问题,”英特尔验证小组的研发总监普拉提克·马哈詹(Pratik Mahajan)说Synopsys对此。“当你使用芯片进行训练时,也许你想使用16位乘法器和32位加法器。在c++中做出这个决定要容易得多。首先,软件工程师知道这一点,他们可以用高级语言建模。同时,虽然高级合成在创造第一层次RTL方面是好的,但在面积和力量方面并不是最好的。这就是为什么人们仍然在为复杂的操作手工编写RTL。”

HLS布局可以像RTL一样进行测试和验证。它们可以用来解决电源或定时问题,还可以阅读用TensorFlow或Caffe等框架编写的机器学习推理模型定义。

这种故障排除允许设计人员优化工作负载到芯片,芯片到工作负载。它还可以验证在数据中心将训练结果处理为推理模型期间,权重或重点没有发生无意的变化,无论网络边缘端点设备的大小如何,该模型都必须在相对混乱中存活下来。

“当你实现推理引擎时,你会采用原始的网络模型,并在边缘设备或移动设备上运行它,”HLS技术专家Mike Fingeroff表示Mentor,西门子旗下公司。“你可以减少集成电路的面积和功耗,但你还要考虑性能,特别是如果它是自动驾驶车辆中对实时性能有一定要求的ADAS的一部分。为了获得最佳性能,你必须根据特定的网络定制硬件,并优化模型以实现这一目标。”


图1:复杂卷积设计需要更高层次的抽象。来源:Mentor, Siemens Business

问正确的问题
HLS可以很好地优化芯片设计中的常见挑战——功耗、分布、时序和性能。但它的真正价值——尤其是在机器学习芬格夫说,在美国,选择很多,但标准和最佳实践很少,这种能力来自于回答设计师可能难以解决的问题的能力。

“它确实让你进行实验,找出什么能获得最佳性能。ASIC, FPGA或PE阵列,”Fingeroff说。“也许PE阵列是最灵活的硬件选择,或者你可以使用融合层架构优化内存流量,也许只适用于网络的顶层。”

Linley Group分析师、《深度学习处理器指南》(A Guide to Processors for Deep Learning) 2月份报告的合著者迈克•德姆勒(Mike Demler)表示,在芯片行业或任何其他高标准、高开发成本的行业,试错并不是最有效的解决方案开发方法。该公司还预计,到2022年,将有19亿台客户端设备与dla一起出货。

但是,如果dla变得如此普遍,那么在构建ML设备时是否几乎没有必要进行反复试验?

Demler说:“你能得到的性能越高,效率越高,你能做的就越多。”“但如果你的产品管用,即使你的流程不是特别流畅,语音识别和其他东西也有很多利基市场、设备和其他地方。”

然而,要做出这样的决定,有时需要深入研究设计团队的结构。当一家公司组建了一个软件/硬件设计团队来开发机器学习应用程序并设计其运行的设备时,确定最终责任归属于谁是个不错的主意。

“在中国,我和硬件工程师就我们想要做的事情进行了长时间的交谈,最终发现他并不是那个发号施令的人,”苹果营销副总裁库尔特·舒勒(Kurt Shuler)说Arteris IP。“是软件架构师在发号施令,所以我们都聚在一起,在我意识到芯片是由算法定义的,而不是相反的时候,我们一起向前迈进了一步。”

但是软件架构师并不总是对硬件有很好的感觉。“我们遇到的另一个问题是,软件架构师通常不擅长抽象到晶体管级别,硬件架构师可能不擅长抽象到软件级别,所以你必须引导他们完成这些,”Shuler说。

坚持软件与硬件的紧密集成和优化也可能是协调开发的好方法,但它并不总是反映现实的性能需求。舒勒指出,帮助客户思考这个问题的一种方法是,与其询问硬件架构师,如果芯片没有达到预期会发生什么,不如问一问,如果他们把芯片取下来,用一个现成的、对应用程序来说完全通用的推理芯片来取代它,对设备会有什么影响。

新思科技验证集团的高级营销经理Joe Mallett对此表示赞同。“在边缘地带,我们看到的是人们在做早期的建筑发现,”他说。“他们希望快速找出正确的算法,这通常是一项架构调查,然后他们希望开始部署FPGA或ASIC流。HLS可以用于这两种情况。”

从数据中心到无处不在
大部分机器学习活动——包括训练和推理——仍然集中在云数据中心。根据西门子公司Mentor高级产品营销经理Jeff Miller的说法,推理设备主要是配备TPU、ASIC或FPGA推理加速器的商用服务器,并将其连接到机架式服务器上,推动谷歌Translate等消费者服务和商业ML基础设施服务,使最终用户公司能够更好地访问构建自己公司服务器的平台。

米勒说:“我们在设备上看到了很多非常有趣的机器学习方法,尤其是在定制IC领域。“我们看到很多定制的数字和知识产权方法,模拟设备使用神经形态来自大型IP供应商的设计、处理器或协处理器,人们可以与传统处理器一起使用SoC细分市场的定制边缘设备,不需要从头开始建造,”米勒说。“我们仍然必须能够让算法正确,但看到各方面都取得了有用的进展,这很有趣。”

在智能手机上安装推理加速器并通过云提供机器学习服务是很有意义的,因为其中一些服务需要马力,而且直到最近,即使是半定制推理加速器的成本也太高,无法进行大量实验,著名发明家兼企业解决方案技术副总裁史蒂文·吴(Steven Woo)表示Rambus

已经有很多人在没有针对ML推理进行优化的硬件上运行诸如语音响应服务器之类的东西的例子。“大多数情况下,他们甚至不需要知道TensorFlow或其他框架,”他说。

随着基于FPGA芯片或其他半定制硬件的设备成本下降,越来越多的设备将在未针对神经网络推理进行优化的硬件上运行完整的推理软件,Woo说。

“每个手机处理器都有或者很快就会有一个神经引擎,”Woo说。“对于那些决定开发机器学习应用程序的人来说,这是一个很大的平台。华为、高通等移动芯片公司正在手机上开放api和接口;很快我们就会发现开发人员可以用这些工具做一些非常简洁的事情。在医学检测和成像方面已经有了很多进展,看起来这将非常重要。”

许多公司确实花了很多时间测试asic与fpga,包括在某些类型的矩阵乘法中比较16位、8位和4位精度,但他们这样做是为了使他们的实现更清晰、更高效。已经有预先配置或基于云的机器学习功能,可能会使整个领域成为角色/业务技术基础设施的一部分,Woo说。

Flex Logix我们宣布了一个围绕其eFPGA功能的神经网络基础设施,它可以让你在一些单元内定制你在芯片上做的事情。”“有这么多的用例和这么多的方法来实现它。如果你需要定制你的设备来获得你需要的那种效率,你可以这样做。如果你不在乎你是否使用了太多的能量,或者没有达到超级优化的水平,并且你对此感到满意,那么你可以做很多事情。”

神经网络已经获得了牵引力边缘

吴宇森说:“有趣的是,由于我们已经能做的事情,语音作为一种界面似乎已经起飞了。“你已经可以在手机上与Siri对话,所以神经网络已经在那里发挥作用,它在其他方面也越来越普遍。我们可能已经有了一个重大的里程碑,只是现在才意识到。”

结论
高级合成是一种设计自动化方法,它比RTL设计更快,并有望快速进行实验性设计,特别是在不太了解的领域。它最有用的功能可能不是设计,而是迭代——能够轻松地在主布局上创建许多变体,并在这些模型上运行验证和性能测试,从而更快地决定这种类型的神经网络是否在专用ML芯片、FPGA、定制ASIC甚至X86上运行得最好。

无论哪种方式,机器学习推理设备都可能会继续变得更强大、更受欢迎,在这个过程中为芯片制造商创造资源和市场,无论他们选择如何进行设计和验证。

有关的故事

机器学习的鸿沟越来越大

HLS用于FPGA设计的挑战



留言回复


(注:此名称将公开显示)

Baidu