目录

掌握Verilog FPGA设计和验证方法是AI时代系统设计师的生命线

1.前言

2.对FPGA产品的需求

硬件性能的提升

软件工具的提升

生态系统

3. 对FPGA工程师的需求

理解新任务

掌握新工具

抓住新机遇

4.FPGA工程师要这样拥抱AI

5. FPGA工程师的核心竞争力

只有FPGA工程师能做到的


掌握Verilog FPGA设计和验证方法是AI时代系统设计师的生命线


1.前言

FPGA自诞生起一直在高速复杂计算领域里占有极大的优势,借助于计算机辅助设计工具通过Verilog编程,设计者可以很方便地将一个通用结构的FPGA芯片构造成一个规模宏大的并行的计算结构,这个结构能以通用CPU无法比拟的高速进行极其复杂的数据处理。然而,FPGA作为一种硬件可重构的体系结构,在过去的很长一段时间内都被用作ASIC的小批量替代品。

在有实用价值的图像分析语音理解等模式识别的处理计算中,通常需要在几个毫秒之内对一幅图像的所有像素逐点进行卷积计算分析比较计算结果,得到可靠的结论。算法研究工作者通常用普通计算机的软件来处理静态数据,得到理论结果,但实际应用中如此慢的响应速度根本无法满足实际工程的需求。最近二十多年来,图像分析、语音理解等模式识别研究的算法理论研究已逐步成熟,引起了工业界的兴趣,大量的研究经费转向如何设计可以高速进行复杂数据处理的并行计算机结构,并研发实用的AI系统。因此近二十多年来,FPGA芯片和Verilog设计/验证方法得到了飞速的发展。

图像处理方面,如人脸识别、指纹识别、语音识别方面的机器人,其AI表现也十分抢眼。 在这一类机器人的计算系统中许多极其复杂的计算工作,绝大部分都是由FPGA结构实现的。而且FPGA可以与各种不同的存储器、各种不同类型的并行接口或是计算机接口,如PCIe等方便地连接,它也可以把机器人与计算机网络和广大的知识库融为一体,构成极其庞大、响应迅速的AI知识系统。

根我所知,许多AI研究工作者习惯于用软件进行算法研究,他们中的大多数人用静态的图像或静态的声音(录下来的声音)做语音理解或者翻译方面的工作。在整个过程中,虽然数据处理的计算速度比较慢,但还是可以得到可靠的分析处理结果。但是在实际工程应用当中,这样慢的处理速度显然没有多大实用价值,因为在许多场合,响应根本无法用于实际场合。随着研究工作向设计实际系统转换,我建议软件系统的工程师们应该学会如何使用FPGA,以及如何用FPGA做复杂计算的加速。其实对计算机科学和工程专业毕业的软件工程师而言,只要有数字电路的基础知识,学习Verilog HDL语言并不困难,学会RTL级别Verilog的编程来构造可综合的并行迭代计算结构并不困难,只需要花费一两个月就能上手。

而对于那些在嵌入式系统工作多年的硬件工程师或只有一些简单接口设计经验的FPGA工程师而言,虽然不是一个专职研究处理算法的软件编程专家,但他们必须抽一些时间来理解算法,帮助算法工程师把电路结构改变得更加合理,令计算瓶颈变成宽敞的通道。在AI时代,特别是AI进入应用的新时代,一个真正的硬件工程师不仅应该熟练掌握Verilog的语言,学会如何用Verilog语言编写可综合的并行结构,在规定的时间间隔内完成算法要求的计算工作量,并且学会如何设计硬件,让硬件与算法软件配合,更有效率地完成算法要求的多种计算任务。把原来算法研究中完全用软件实现的计算过程,变成用软件和硬件配合实现的过程,把整个计算结构改造成一个可配置的高速处理的结构,专门针对某一领域的人工智能产品,让这个硬件有更大的市场,这是非常有意义的!

总而言之,对今天的AI嵌入式系统的设计师而言,必须软硬兼备才能成为一个优秀的工程师。换言之,软件人员要往硬件方向转,学习硬件知识,硬件工程师也必须向软件工程师靠拢,理解算法的执行过程,为AI算法设计新的计算结构和数据通路。这是因为现在AI的软件编程并不是简单地编写一个程序得到一个计算结果,还必须考虑计算的速度是不是足够够快。所以实质上是一个如何设计合理的并行结构计算加速核心硬件,以达到实时全面完成算法要求的问题。

转型势在必行,FPGA工程师要理解新任务、掌握新工具。

2.对FPGA产品的需求

硬件性能的提升

尽管FPGA在数据中心应用处于一个快速增长过程,但总体规模还不是很大,这里面有一些限制,也是FPGA厂商需要努力提升的地方。 首先是价格问题,FPGA的大规模部署需要FPGA硬件成本尽快降下来,这个要靠工艺进步以及市场规模来解决;其次是存储访问带宽,HBM技术以及CCIX是代表性的方向。

软件工具的提升

FPGA需要软件工具来辅助工程师完成设计过程,在新的应用领域对设计的内容、流程、验证方法等都提出了新的需求,例如AI应用客户希望具备高层次的模型定制能力,但是目前还没有厂商可以提供成熟的方案。这也为新的工具提供商提供了机会。

生态系统

GPU获得了广泛的认同和应用,这与CUDA长期的演进和积累密不可分。新兴应用领域大都有流行的设计框架开源项目。FPGA一般作为高性能计算硬件来加速现有项目,所以需要和这类设计框架进行融合,也需要大量基础库/IP来支持用户快速完成设计。所以一个成熟的生态系统至关重要,目前这块也还是非常薄弱。


3. 对FPGA工程师的需求

理解新任务

传统FPGA工程师面对的是硬件的设计问题,但AI等应用与应用系统关系密切,不单纯是FPGA片上逻辑设计的问题。工程师往往需要了解上层软件如何与FPGA片上系统的集成与优化问题

掌握新工具

FPGA主流厂商很早就开始布局新兴市场的应用,一个主要工作就是提升FPGA设计开发抽象层次OpenCL/HLS语言就是典型代表,一般情况下可以提升数倍开发效率。所以FPGA工程师需要充分掌握这类新的工具,以保障自己能有足够的效率面对行业需求。

抓住新机遇

新兴应用领域不仅仅是FPGA市场的简单扩充,它也为FPGA应用带来新的商业模式,以FaaS为代表的应用形式,为FPGA开发人员带来众多新的商业机遇。

Achronix的Speedcore IP具有支持先进人工智能技术的正确功能组合。

人工智能(AI)应用要求高性能,并且在许多情况下,低延迟能够成功地响应条件和需求的实时变化。它们还要求功耗尽可能的低从而意味着无法使用,其解决方案是将机器学习放在供电和制冷能力充足的云服务器端。对这些嵌入式系统的进一步要求是,即使在没有网络连接到云端的情况下也都能随时工作并且准备好做出响应。这些因素的组合要求在硬件设计方法上做出改变。

人工智能要求谨慎地平衡数据通路的    性能、内存延迟  和  吞吐量,这就需要用一种方法来将尽可能多的功能放到专用集成电路(ASIC)或系统级芯片(SoC)上。通过添加eFPGA技术,则提供了市场需要的一种解决方案,来将灵活性以及客制化逻辑单元支持能力结合在一起。

作为专为嵌入到SoC和ASIC之中而设计的硅知识产权(IP),Achronix的Speedcore eFPGA IP是一种高度灵活的解决方案,它支持高性能机器学习应用中需要的数据吞吐量。通过借助其可切分的架构,Speedcore IP为设计人员提供了满足其应用要求的能力来实现eFPGA功能的混合和匹配。Speedcore IP的核心功能包括基于四输入查找表(LUT)的逻辑单元、用于寄存器文件和类似应用并面向逻辑单元的小型存储器(LRAM)、较大的单元块存储器(BRAM)和可配置的数字信号处理器(DSP)模块。根据应用的要求,Speedcore基于纵列的架构可提供准确混合资源的能力。

4.FPGA工程师要这样拥抱AI

FPGA本身作为一种可编程的逻辑器件,其最突出的特性在于可编程的逻辑部分。这与传统CPU的顺序执行方式有着本质区别,与ASIC相比又有着较好的灵活性,在AI产业兴起之前,就一直是ASIC设计的前期验证手段

但是,如今的FPGA器件的发展已经跨越了可编程这个特性,现在的FPGA器件往往拥有远比通用芯片更高的I/O带宽和内存带宽,例如高达40Gbps的serdes接口,以及HBM2等超高速内存接口,这些接口使得FPGA在通信领域有着非常广泛的应用

现如今,由于很多AI产品对内存带宽互联互通性有着相当高的要求,在较轻运算量的情况下,FPGA的可应用场景有了非常大的突破,所以很多小批量快迭代的产品,其最佳开发方式反而变成了FPGA,而非ASIC或者GPU等等,因此FPGA开发人员,只要多熟悉AI技术、熟悉AI应用需求,仍然可以在AI行业游刃有余,不断打造新的传奇。

现在的图像处理数据的传输、分配这些事情在人工智能开发方面发挥着重要作用,在AI时代需要FPGA工程师尤其是做软件算法和做硬件设计的人要优势互补。

产品设计好后还要与原来的计算机与服务器连接在一块儿,那么还需要做系统级设计。这对FPGA的软件工程师、硬件工程师都是一个新的挑战。希望FPGA工程师们成功转型,为AI时代能设计出更好的产品助力。

5. FPGA工程师的核心竞争力

这个问题主要引申为以下两点:“

  1. 什么是只有FPGA工程师能做的?
  2. 作为FPGA工程师,应用具备哪些能力,又如何去培养这些能力呢?

只有FPGA工程师能做到的

FPGA工程师最核心的能力的就是全栈能力。这指的是系统级的软硬件全栈能力。它既包括了在系统层面的架构设计芯片开发的前后端流程,也包括了软件设计的全栈流程,甚至还有后期的项目维护技术支持、与客户的沟通等软技能。它可以看成是综合多种技能的技能树。

我随手写了一下 FPGA 工程师的全栈技能树,见下图,尽管很不完整,但仍可供大家参考。之前很多人提到的,诸如调试与分析的能力,其实是这个全栈技能树里的一片树叶,或一个分支。

FPGA在AI时代的角色相关推荐

  1. 详解FPGA:人工智能时代的驱动引擎观后感

    详解FPGA:人工智能时代的驱动引擎观后感 本书大目录 第一章 延续摩尔定律 第二章 拥抱大数据的洪流 第三章 FPGA在人工智能时代的独特优势 第四章 更简单也更复杂--FPGA开发的新方法 第五章 ...

  2. 做AI时代最底层的赋能者:地平线拓展智能驾驶朋友圈

    2019年4月16日,以"共创·美好生活"为主题的第十八届上海国际汽车工业展览会,在上海国家会展中心如期揭幕. 值得一提的是,本次车展首次设立了"未来出行"展区 ...

  3. 在AI时代重新思考人机共生:理解人类在人机系统的最理想角色

    56年前,J.C.R.Licklider 阐述了计算机与人类大脑相结合的理念,人类的思维将能够思考人类独自无法达到的想法.这个愿景影响了一代科学家和工程师,并且在很大程度上是我们今天的计算经验的基础. ...

  4. 即使在移动AI时代,软件仍将主导业界

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作分享,不代表本公众号立场,侵权联系删除 转载于:机器之心 AI博士笔记系列推荐 周志华<机器学习>手 ...

  5. 浪潮刘军:为什么说计算力是AI时代“免费的午餐”?

    出品 | AI科技大本营(ID:rgznai100) 产业AI.元脑生态是浪潮集团2019年度的两大关键词. 作为一家以计算力为核心生产力的企业,浪潮还一直强调人工智能计算是未来最重要的计算力,而无论 ...

  6. FPGA在人工智能时代的独特优势

    来源 | 老石谈芯 作者 | 老石,博士毕业于伦敦帝国理工大学电子工程系,现任某知名半导体公司高级FPGA研发工程师,深耕于FPGA的数据中心网络加速.网络功能虚拟化.高速有线网络通信等领域的研发和创 ...

  7. AI时代,人与机器的沟通方式

    编辑导语:AI,也就是人工智能,随着科技的发展,越来越多的人工智能出现在我们的生活中,比如手机里的对话工具,物流公司.餐馆也出现了工作机器人:本文作者分享了关于AI时代人与机器的沟通方式,我们一起来看 ...

  8. 英特尔联合Facebook研发AI芯片:CPU老厂能在AI时代打好翻身仗吗

    https://www.toutiao.com/a6644002993349853699/ 2019-01-08 14:04:53 来自国外技术网站"technologyreview&quo ...

  9. Andrew Ng教你如何引领公司进入AI时代

    AI(人工智能)技术就像100年前的电力一样,正准备改变每个行业.从现在到2030年,它将创造约13万亿美元的GDP增长.虽然它已经在谷歌,阿里巴巴,微软等领先的科技公司中创造了巨大的价值,但其他许多 ...

最新文章

  1. 用python深度优先遍历解迷宫问题
  2. mongo-log参数与config参数
  3. Android.mk解析
  4. 面试必问:用 Java 写一个内存泄漏程序
  5. #计算长方形的周长和面积公式_Animate如何制作动态计算长方形面积及周长
  6. .NET (C#)ASP.NET 应用程序与页面生命周期
  7. ffmpeg中的sws_scale算法性能测试
  8. 去除标题_1688如何通过黄金标题引爆流量?
  9. sprintf_s函数用法
  10. 关于win11系统下查看无线网络密码的方式
  11. ctf:xls加密_加密:爱丽丝和鲍勃的故事
  12. 错误记录:FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecate
  13. ctfshow web78-web81文件包含漏洞 wp
  14. 360cdn能挡住cc攻击_云防CDN是网页CC攻击的克星?cdn集群防御
  15. 五子棋 day5-2
  16. Servelt中文乱码问题处理
  17. 计算机学院篮球队介绍,计算机与信息学院男子篮球队荣获“抗疫杯”校篮球赛冠军采访纪实...
  18. 图像处理与计算机视觉:2D射影变换
  19. Live Server 正常启用 但是网页不更新 解决方法
  20. 电容电阻电感在电路中的作用

热门文章

  1. android怎么设置图片缩放比例,Android按比例缩放图片
  2. CSP 201712-4 行车路线(100)
  3. Java数据结构之栈与计算器
  4. gdb调试之快速入门
  5. 生活中的一些常用理论
  6. 高手攻关心得:RHCE实战详细经验
  7. 解决Office 打开Excel 空白问题
  8. CP分解和HOSVD分解
  9. 球面经纬度坐标转换为空间直角坐标
  10. xwiki功能-皮肤