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

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

3天内不再提示

一文了解芯片设计上使用机器学习驱动的布局

Hx 作者:工程师陈翠 2018-06-29 05:48 次阅读

人工智能机器学习正在渗透所有的行业。随着人工智能算法的成熟,支持这些算法的硬件平台也日趋成熟。目前,这些硬件平台包括 ASICCPUGPU以及 FPGA 。在 Plunify,尽管我们的强项是FPGA的设计优化,但是我们中的很多人本质上还是软件工程师。当然,这里所说的“软件工程师”并不包括嵌入式工程师,固件工程师或者研发驱动的工程师;我们所说的是使用 .NET, JavaPython, R, SQL, C++ 或者 JavaScript 来写代码的开发者们。

我们最近正在研究的项目是在芯片设计上使用机器学习驱动的布局。我们用成千上万不同的布局来训练,并使用机器学习技术,在布线之前预测设计的最终时序性能。

使用哪一个框架来开启机器学习项目?

市面上有很多选择,但是我们最终的答案是Tensorflow。这似乎有些难以置信,毕竟我们已经开发了赛灵思 Vivado 的插件 Plunify Cloud 以及设计优化软件 InTime,难道不应该选择一个可以轻易把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上运行吧。

这两种选择,都需要逾越一条鸿沟。如果您是一个已经遇见这些问题的软件工程师,我们十分希望能听见您的心声。

InTime是一款使用机器学习来优化 FPGA 设计的软件。如果您有兴趣,点击这里来了解更多 InTime 的信息,或者直接申请免费试用。

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

    关注

    456

    文章

    50892

    浏览量

    424312
  • 机器学习
    +关注

    关注

    66

    文章

    8422

    浏览量

    132739
收藏 人收藏

    评论

    相关推荐

    详解机器学习和深度学习的区别

    深度学习这几年特别火,就像5年前的大数据样,不过深度学习其主要还是属于机器学习的范畴领域内,所以这篇文章里面我们来唠
    发表于 09-06 12:48 2507次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b>详解<b class='flag-5'>机器</b><b class='flag-5'>学习</b>和深度<b class='flag-5'>学习</b>的区别

    带你深入了解linux驱动

    根本都不知道这个佛是哪路神仙。 那今天我们就先带大家来深入了解下嵌入式开发中至关重要的环:linux驱动。 在学习
    发表于 04-15 09:59

    带你了解步进电机的相关知识

    带你了解步进电机的相关知识:相、线、极性和步进方式2017-09-07 16:45这里不说步进电机的 “细分” 实验,只说下有关步进电机的基础概念以及步进电机的三种工作方式——单
    发表于 07-08 06:48

    了解BLDC与PMSM的区别

    参考文件:了解BLDC与PMSM的区别       BLDC和PMSM电机区别       STM32 FOC BLDC与PMSM的区别PS:总结语句用红色标出,看红色字体即可。现代电机与控制
    发表于 08-30 08:38

    了解LVGL的学习路线

    “本文大部分内容来自LVGL官方文档,手翻版,如有错误欢迎指正。”系列文章目录、LVGL系列(了解LVGL的
    发表于 12-07 12:55

    什么是机器学习? 机器学习基础入门

    微控制器和单板计算机等受限设备机器学习)的出现,机器学习已经与所有类型的工程师相关,包括那些从事嵌入式应用的工程师。此外,即使您熟悉 T
    发表于 06-21 11:06

    解析机器学习常用35大算法

    本文将带你遍历机器学习领域最受欢迎的算法。系统地了解这些算法有助于进步掌握机器学习。当然,本文
    的头像 发表于 06-30 04:24 3891次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b>解析<b class='flag-5'>机器</b><b class='flag-5'>学习</b>常用35大算法

    读懂深度学习机器学习的差异

    机器学习和深度学习变得越来越火。突然之间,不管是了解的还是不了解的,所有人都在谈论机器
    发表于 11-16 01:38 3086次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b>读懂深度<b class='flag-5'>学习</b>与<b class='flag-5'>机器</b><b class='flag-5'>学习</b>的差异

    了解高速差分ADC驱动器设计考虑

    了解高速差分ADC驱动器设计考虑
    发表于 04-08 14:07 30次下载
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>了解</b>高速差分ADC<b class='flag-5'>驱动</b>器设计考虑

    解读机器学习的作用及优势

    当你打开互联网搜索引擎,输入关键词寻找并得到想要的链接时,“机器学习”已经贯穿整个过程:搜索到的内容是机器根据无数人搜索关键词的统计结果,返回的最可能被需要的目标信息;而同时,你的这
    的头像 发表于 07-07 09:09 1.3w次阅读

    看懂谷歌的AI芯片布局

    IoT Core、人工智慧/机器学习(AI/ML)软件Edge ML外,还针对人工智慧/机器学习推出专属的加速运算芯片,称为Google
    发表于 11-29 14:08 706次阅读

    机器学习算法使用机器了解给定的数据集

    机器学习词经常与AI互换使用,尽管有明显的区别。机器学习算法使用机器
    的头像 发表于 09-16 17:05 2233次阅读

    了解一下机器学习中的基础知识

    机器学习中的基础知识 demi 在 周四, 03/07/2019 - 09:16 提交 机器学习中涉及到了很多的概念,当然要想了解
    的头像 发表于 03-31 17:08 3818次阅读

    带你了解电机驱动芯片和电机驱动模块

    什么是电机驱动芯片和电机驱动模块? 电机驱动芯片是集成有CMOS 控制电路和DMOS 功率器件的芯片
    的头像 发表于 07-18 14:46 1.8w次阅读

    机器学习步骤详解,了解全过程

    机器学习是指在没有明确指令的情况下能够学习和加以改进的系统。这些系统从数据中学习,用于执行特定的任务或功能。在某些情况下,学习,或者更具体地
    的头像 发表于 05-16 09:55 6020次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>步骤详解,<b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>了解</b>全过程