单片机初学者
除了AI和网络,我再补充两个重要的:数据库查询加速和视频转码。
数据库方面,FPGA可以用来加速特定的查询操作,比如在OLAP场景下的扫描、过滤、聚合。像微软的Catapult项目,就把FPGA放在服务器和网络之间,把一些过滤条件(WHERE子句)下推到FPGA。数据从网络进来或者从SSD读出时,FPGA直接做初步过滤,只把相关的数据传给CPU,大大减少了CPU负载和数据移动的开销。这里FPGA的不可替代性在于它的可定制流水线和靠近I/O的位置,能实现‘在数据移动过程中计算’,这是GPU(需要搬数据到显存)和CPU(通用但效率低)很难做到的。
视频转码也是个典型。视频编码标准(如H.264/HEVC)的压缩算法虽然复杂,但编码流程是固定的,包含大量并行和流水线操作。FPGA可以设计成高度并行的处理架构,同时处理多个宏块,并且因为硬件执行,功耗往往比同等性能的CPU/GPU更低。对于云服务商来说,用FPGA集群做转码,在满足高吞吐的同时,能效比很高。
所以,看FPGA的不可替代性,关键抓住三点:1. 算法确定,可流水线化;2. 对延迟和功耗敏感;3. 需要紧密集成I/O。技术方向选择上,不一定非要挤AI的热闹,这些‘幕后’的加速任务需求稳定,而且更能体现FPGA的硬件设计本质。
