[经验] 在机器学习的应用上,软件工程师和FPGA真的有着难以逾越的鸿沟吗?

[复制链接]

实习生

发表于 2017-12-11 15:54:58   833 查看 7 回复 显示全部楼层 倒序浏览
分享
本帖最后由 achiles007 于 2017-12-29 10:15 编辑

微信公众号:Plunify_FPGA
人工智能和机器学习正在渗透所有的行业。随着人工智能算法的成熟,支持这些算法的硬件平台也日趋成熟。目前,这些硬件平台包括ASIC,CPU,GPU以及FPGA。在Plunify,尽管我们的强项是FPGA的设计优化,但是我们中的很多人本质上还是软件工程师。当然,这里所说的“软件工程师”并不包括嵌入式工程师,固件工程师或者研发驱动的工程师;我们所说的是使用 .NET, Java, Python, R, SQL, C++或者JavaScript来写代码的开发者们。
我们最近正在研究的项目是在芯片设计上使用机器学习驱动的布局。我们用成千上万不同的布局来训练,并使用机器学习技术,在布线之前预测设计的最终时序性能。

使用哪一个框架来开启机器学习项目?
市面上有很多选择,但是我们最终的答案是Tensorflow。这似乎有些难以置信,毕竟我们已经开发了赛灵思Vivado的插件Plunify Cloud以及设计优化软件InTime (微信公众号:Plunify_FPGA)难道不应该选择一个可以轻易把FPGA作为硬件的框架吗?我们已经对FPGA有所了解,而Tensorflow和FPGA的关系并不是很密切。

请不要误解。我们虽然对FPGA的加速性能充满信心,但是,在每一个机器学习项目开始的时候,挑选一个合适开发环境首先要考虑的应该是自己的已有技能和可供学习的资源。对于已有技能,我们了解上述所有语言和其他的一些语言;至于可供学习的资源,Tensor Flow+Keras 教程和文档可以轻易的击败所有的对手。有这么多选择,您一定想马上开启项目来测试您的方法是否可行。                              

应该使用哪个加速平台?
在生成了成千上万个拥有不同布局和资源要求的设计时,我们应该如何加速机器学习的训练和推理?关于加速的问题终于来了-究竟是用GPA,TPU还是FPGA呢?很明显,FPGA由于对用户不友好胜算不大。合理的选择仍然是谷歌的云平台或者GPU。

对我们来说,我们已经解决了如何将正在进行的项目转换成基于FPGA的加速环境。这里所说的“转换”并不是完全的重写。也许我们已经开启了Caffe,但是软件工程师在开始阶段不会考虑加速平台。

“不了解发动机,也可以选一台好车?”
这里有一种替代方法 – 高层综合(High LevelSynthesis)。用C/C++写代码然后转换成Verilog或者VHDL(这个方法已经存在很久并且也有很多批评)。在Hastlayer有一群工程师提供一个.NET的软件开发工具包可以把.NET程序转换成VHDL.。这个开发包当然有一些局限性,但是从软件工程师的角度上来说,这已经是一个从试图理解时钟,频率,器件类型的极大飞跃。我们这些软件工程师比较自我,大多只关心机器学习的训练可以有多快。如果眼下的程序在CPU上需要运行一天,而在FPGA上只需要两个小时,我是不是可以用一个更优化的版本(比如同样的.NET程序但是被InTime优化过)30分钟就完成运行呢?

采用自然习惯还是稍后再转换?
让软件工程师采用他们早期的自然习惯肯定是有帮助的。看看这个领域扩展地有多快吧,编写机器学习算法的程序员绝大多数都不会成为拥有数学博士的数据科学家或者FPGA/ASIC设计工程师。他们大多是像你我这样拥有一个计算机学位的普通人,使用已经编写好的库。在没有一个大公司或团队的支持下,很难创造一个属于自己的机器学习框架。这条路行不通的话,拥有一个简单自动的转换路径似乎就是一个最好的选择了。
所以别再说“你需要一开始就学习FPGA”这样的话了,我们应该说“将Tensorflow / Pytorch转换成适用于FPGA的代码”。或者直接让我们来帮您在FPGA上运行吧。
这两种选择,都需要逾越一条鸿沟。如果您是一个已经遇见这些问题的软件工程师,我们十分希望能听见您的心声。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
标签:FPGA 机器学习

实习生

发表于 2017-12-13 13:22:51    楼主|
FPGA的高性能是值得一试的
回复

点赞 举报

高级工程师

发表于 2017-12-18 11:46:18  
楼主辛苦了,感谢分享
回复

点赞 举报

实习生

发表于 2017-12-27 09:53:47    楼主|
祝大家新年快乐!
回复

点赞 举报

高级工程师

发表于 2017-12-27 17:22:21  
学习下,谢谢分享
回复

点赞 举报

实习生

发表于 2017-12-28 12:04:55    楼主|
rzh188 发表于 2017-12-27 17:22
学习下,谢谢分享

请问你用AI处理领域呢?
回复

点赞 举报

实习生

发表于 2018-1-16 10:24:06    楼主|
机器学习在FPGA设计优化上也有着极大的作用。Plunify InTime 是一个非常好的选择
回复

点赞 举报

实习生

发表于 2018-2-13 13:22:34    楼主|
祝大家新春快乐,万事如意!
回复

点赞 举报

高级模式
您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐 上一条 /8 下一条

快速回复 返回顶部 返回列表
-

推荐专区

技术干货集中营

专家问答

用户帮助┃咨询与建议┃版主议事

工程师杂谈

工程师创意

工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

ARM技术论坛

Android论坛

Linux论坛

单片机/MCU论坛

FPGA|CPLD|ASIC论坛

DSP论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

无线充电技术

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

参考设计中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

厂商专区

TI论坛

TI Deyisupport社区

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

招聘┃求职发布区

电子展览展会专区