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

电子说

1.3w人已加入

描述

在嵌入式系统研发领域,随着产品AI化升级进程,原先设计常规数字系统的FPGA硬件工程师和系统软件设计师们都不得不面临技术转型的问题。那么在AI时代, FPGA厂家与传统的数字系统软硬件工程师们该如何转型,才能更好地顺应市场的需求?

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

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

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

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

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

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

深维科技 CEO  樊平

对FPGA产品的需求:

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

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

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

对FPGA工程师的需求:

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

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

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

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

Achronix 半导体公司市场营销副总裁  Steve Mensor

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

AI

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

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

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时代能设计出更好的产品助力。

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分