目录
掌握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结构实现的。而且FPGA可以与各种不同的存储器、各种不同类型的并行接口或是计算机接口,如PCIe等方便地连接,它也可以把机器人与计算机 络和广大的知识库融为一体,构成极其庞大、响应迅速的AI知识系统。
而对于那些在嵌入式系统工作多年的硬件工程师或只有一些简单接口设计经验的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工程师的核心竞争力
这个问题主要引申为以下两点:“
- 什么是只有FPGA工程师能做的/li>
- 作为FPGA工程师,应用具备哪些能力,又如何去培养这些能力呢/li>
只有FPGA工程师能做到的
FPGA工程师最核心的能力的就是全栈能力。这指的是系统级的软硬件全栈能力。它既包括了在系统层面的架构设计、芯片开发的前后端流程,也包括了软件设计的全栈流程,甚至还有后期的项目维护、技术支持、与客户的沟通等软技能。它可以看成是综合多种技能的技能树。
我随手写了一下 FPGA 工程师的全栈技能树,见下图,尽管很不完整,但仍可供大家参考。之前很多人提到的,诸如调试与分析的能力,其实是这个全栈技能树里的一片树叶,或一个分支。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!