AI周边二:FPGA在AI领域的角色

        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的软件编程并不是简单地编写一个程序得到一个计算结果,还必须考虑计算的速度是不是足够够快。所以实质上是一个如何设计合理的并行结构计算加速核心硬件,以达到实时全面完成算法要求的问题。
AI周边二:FPGA在AI领域的角色_第1张图片
        FPGA本身作为一种可编程的逻辑器件,其最突出的特性在于可编程的逻辑部分。这与传统CPU的顺序执行方式有着本质区别,与ASIC相比又有着较好的灵活性,在AI产业兴起之前,就一直是ASIC设计的前期验证手段。

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

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

你可能感兴趣的:(AI周边)