Shanghai Roadshow Recap 上海路演回顾 – Quick Preview of InTime

Cloud

Shanghai Roadshow Recap 上海路演回顾 – Quick Preview of InTime

This is a recap of a event that we did in Shanghai. The text is mainly in Chinese. If you need the details in
English, do let us know. Cheers!

如何使用机器学习技术来解决FPGA设计上的问题
2014年3月29日在IC咖啡上海站讨论在FPGA设计里工程师与设计团队所面对的问题,及如何应用数据分析和机器学习演算法来解决。
【主讲人】
黄瀚华, 技术副总裁
张伟雄 Kirvy,  产品总裁

讲座分享内容:
一、机器学习:
· 定义:专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
· 机器学习技术很适合用在所谓的“大数据”应用,例如网络商家的商品推荐系统、石油开采的开采地点预测工具等。
· FPGA设计其实也包含了大数据的特征,所以时序、利用率、功耗方面的问题都能以机器学习技术来解决。
二、新的解决方案:
· 采用机器学习演算法,胜过现有的方法(例:尝试不同的“种子”)几倍。
· 流程:
(一)分析FPGA器件、设计项目、约束条件等输入参数,以及编译过程中所达到的时序频率、利用率和功耗等结果之间的相关性。
(二)推断对项目最有利的综合、布局布线设置参数。
(三)产生新的编译设置的组合。
(四)从结果中不断学习新的相关性,不断自我改良。
· 在无需要修改RTL代码的情况下解决问题,优化设计。
三、产品名:InTime
· 基于Xilinx和Altera的软件的一个优化插件。
· 可以帮助使用者解决一些原厂工具不能解决的优化问题。
· 寻求国内的合作伙伴。
近年来,机器学习技术在不同的领域开始逐渐地扮演越来越重要的角色。例如在亚马逊等网络商店的商品推荐系统中、石油公司的石油开采工程里,都采用了机器学习的原理和演算法。百度百科网站把机器学习形容为“专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。”的一门学问。 也“涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科, 是人工智能的核心。”
四、适合用机器学习来解决的问题有几个特征:
(一)大量的数据
(二)数据种类繁多
(三)有快速达到答案的需求
每一个FPGA设计其实都包含了许多相关的特征。
首先,因为编译过程的重复性大,一个设计能产生几十G,甚至几百G的数据,尤其是综合、布局布线中所产生的信息。
第二,能用来实现一个产品的设计,逻辑组合,目标器件,软件工具版本等等种类繁多。
第三,FPGA软件工具主要是以一种设计空间搜索的方式来达到时序、利用率上的答案。
虽然编译过程所需的时间可长达几个小时,甚至几天,但是其实工具每一分每一秒都在尽力地设法推断出好的结果来。
时序收敛上遇到困难时,身为FPGA工程师的我时常会试着使用”placement种子“来解决问题(相信同行的朋友也会有同感)。然而,种子是一套随机性的,几乎盲目性的设计空间搜索办法,不怎么可靠。除了尝试种子,另外一个方法恐怕就是修改RTL代码了。但是修改代码有可能会影响到其它模块,甚至整个产品的功能,危险性较大。这是一种常见的现象。如果有办法自动地分析数据,然后自动地归纳出对设计结果最有利的输入参数,FPGA设计团队将能大大提高设计流程的效率。机器学习不就是个好的解决方案吗?
为了回答这个问题,几年前我们开始研究编译过程中所产生出来的数据,和输入参数之间的相关性。我们从中发现到,不同的设计在不同的综合、布局布线条件下所产生出的结果居然有固定的概率分布。从概率论的角度来分析,如果能了解结果的分布,学习到什么样的编译条件组合能引起什么样的效果,那我们就能自动地调整FPGA原厂工具的综合、布局布线的选项,一步一步地把时序、利用率、功耗结果往好的方向移。初步测试的结果显示,这样子的机器学习应用模式能解决许多现有的技巧 (例如使用种子:图表A)所解决不了的问题。原厂工具的功能其实并不弱,只是工程团队都得全神贯注在设计上,没法花时间去了解工具。
图表A:单靠Placement种子无法解决问题。
Y轴:时序结果的积分;0表示成功地达到时序收敛。
X轴:1至100的Placement种子。
我们研发的结果是一种新的原厂工具的插件,叫InTime。它能够针对一个设计产生有利的综合、布局布线的选项组合,然后从编译结果中分辨,并学习到哪一些选项对设计有利,哪一些应该停止使用,在无需修改代码的情况下解决问题(图表B,C)。美国硅谷和国内的几家企业的FPGA团队已开始使用InTime。这次来访,目的是想在国内寻求多几位合作伙伴,一方面加深对设计团队所面对的问题的了解,另一方面继续推广InTime工具,并且协助改善FPGA设计的流程。
图表B:使用InTime第一回合,结果已胜过Placement种子。
不只时序成绩进步了,连利用率也减低
Y轴:时序结果的积分;0表示成功地达到时序收敛。
X轴:100个机器学习的编译选项组合(InTime产生的“策略”)。
图表C:基于第一回合的最好的策略,尝试Placement种子,成功地解决问题
Y轴:时序结果的积分;0表示成功地达到时序收敛
X轴:1至100的Placement种子。
如果第一回合的成绩不够好,不适合尝试种子,那就再产生策略运作。

Leave a Reply