富聪科技订单满¥1000免运费
关注我们:

用 FPGA 把一个还在演进的推理架构保持灵活

2026/6/4 10:54:24

FPGA 是可重构的硬件。它的逻辑在芯片制造之后才定义,而且能在现场重新定义,正是这一条性质,让它在一个推理设计里挣到一席之地。当模型、或它周围的架构还在动时,这颗器件跟着一起动,接受一份新配置,而一颗固定芯片在同样情形下得重新流片。这份灵活以功耗、以单价、以设计时间来偿付,所以伸手去拿 FPGA 是一个刻意的赌注,而不是一个默认的起点。一个挑了它的团队,买的是在硬件存在之后还能改主意的那个选项,而这个选项在每一块出货的板子上都带着价钱。

这个赌注在几个具体情形里能赢,而老实把它们点出来是第一步。一是一个还没定下来、可能在产品出货后还会变的网络,于是数据通路得在现场保持可改。二是一个吃进并行、高速率数据的设计,好几路摄像头或一个宽传感器阵列,快过一个顺序处理器读得过来的速度。三是一个产量太低、回不了一颗定制芯片非经常性成本的设计,那里 FPGA 是拿到硬件本身的最便宜路子。离开这几个情形,一个带 NPU 的处理器、或一个固定加速器,就能以更低的功耗和成本把同样的活干完。

FPGA 买的是时间,多过吞吐。

当架构还没定下来

拿下 FPGA 最清楚的理由,是对算法的不确定。理解一个团队为什么会在架构定下来之前就伸手去拿 FPGA,归结到在固定硅片里押错的代价。如果一个模型在 ASIC 已经投了之后才变,那颗芯片就是废料、日程也没了;而 FPGA 接一份新比特流,继续往前走。在一个算法还在变动的产品上,或一个追一个还没批准的标准的产品上,板子建好之后还能重定义数据通路的这份自由,正是付钱买的东西。

这份自由有一个到期日。一旦设计冻结、产量爬上去,同样这份灵活就变成了死重,为一次永不到来的重配置耗着电、花着钱。把 FPGA 用得好的团队,把这颗器件当作一个阶段、而不是一个终点,他们计划好在架构停止变化之后、迁到一颗更便宜的固定器件上去。本事在于看见冻结要来、并把切换的时机掐准。

旁边带一个处理器的可编程逻辑

一块 Zynq SoC FPGA 开发板

相当多的推理设计同时需要一个处理器和定制逻辑,而一颗 SoC FPGA 把两者放在一颗裸片上。处理器跑应用和杂务;可编程逻辑接那些会卡住 CPU 的并行或时序关键的活。把它们留在一颗器件上,省掉一条芯片到芯片的链路,让两半共享存储,并把它们之间的延迟压到一个紧凑视觉或控制环能接受的低度。

XC7Z020 作为一颗把 Arm 核和可编程逻辑配在一起做推理的 Zynq 器件,是这个想法常见的样子。Arm 核启动一个操作系统、跑管线里合软件的那些部分,而可编程逻辑处理预处理、开窗、或那一个必须与进来的流锁步跑的层。这个切分就是整个设计问题。规整、并行、受带宽约束的活属于可编程逻辑;不规整或控制重的活属于核;而这条线画错了,浪费的要么是硅片、要么是开发者的几个月。两边通过一条片上总线和一个共享存储控制器对话,所以数据怎么在它们之间穿过、穿多频繁,往往比逻辑的大小更能定交付吞吐。一个把像素流过可编程逻辑、把紧凑特征交给核的设计飞得起来;一个把大缓冲来回弹的设计,被自己的互连噎住。开发是成本的另一半。建可编程逻辑这一边,意味着高层次综合或手写 RTL,一套很少有嵌入式团队全职养着的流程,而把一颗 SoC FPGA bring-up 起来,比一颗微控制器或应用处理器要长出一大截。这颗器件奖励一个真正两半都需要的设计,惩罚一个为了余量才选它的设计,这也是为什么诚实的问题是:可编程逻辑在第一天就干着挣钱的活,还是仅仅当作保险摆在那里。

对一个已经定了既要处理器、又要一块固定定制逻辑的设计,这一类器件常常是最干净的单芯片答案,而且它把以后修改逻辑的门留着。

给一个小网络的纯可编程逻辑

当一个设计需要可重构逻辑、但不要一个硬核处理器时,纯可编程逻辑更轻、更便宜地扛着。XC7A35T 在 Artix 可编程逻辑上加速一个小网络,合的是这样的情形:一个不大的模型、或一个更大管线的一个阶段,跑在一个处理别的一切的单独主控旁边。可编程逻辑按网络要的位宽和并行度做规整的乘累加,别的不做。

对一颗 SoC 器件的取舍是集成。现在板上别处有一个主控了,它和可编程逻辑之间有一条要设计的链路,连带它隐含的时序和协议。换回来的是,这颗器件比一颗带着它从不使用的处理器的,成本更低、功耗更小,这合一个软件已经舒服地活在一颗它认定的芯片上的设计。决定在于省下的成本和功耗,付不付得起那份额外的板级工作。

当功耗是约束

一块 iCE40 超低功耗 FPGA 开发板

在低功耗端,可编程逻辑小、活窄,而支配选择的数字,是这颗器件持续保持一个简单功能时耗多少。这里 FPGA 不再是一个计算引擎,而成了带一点智能的胶合逻辑:一片可重构硬件坐在一个传感器前面,干那些否则要唤醒一颗大得多的芯片的活。

iCE40UP5K 做超低功耗的边缘视觉预处理,就是为这个角色造的。它跑一个常开的预处理阶段,在一个低分辨率流上做运动门控或一遍初筛,功耗低到让主处理器一直睡着,直到这颗小器件判定有值得唤醒它的东西。在器件守着什么也不发生的每一个小时里、在上游省下的能量,就是全部论据,而可编程逻辑的规模是照着这个窄活、而不是照着峰值吞吐来定的。

CrossLink-NX 处理并行的图像传感器数据,带着一个不同的强项站在它旁边:搬运并重新格式化一个图像传感器并行、高速率的输出,常常把 MIPI 通道桥接成下游处理器期望看到的样子。它挣到一席之地,是在瓶颈是把像素干净地弄下传感器、进系统,而不是在像素到了之后跑一个模型的时候。

两颗器件最后都讲同一个理。一片小的、低功耗的可编程逻辑放在对的点上,从一颗更大的芯片上拿走活,而整个系统因为有它在那儿,耗的功更少。

FPGA 周围需要什么

FPGA 在断电之后不持有任何逻辑;它在每次启动时加载它的比特流。这让配置存储成为设计的一部分,而不是最后才栓上的一个附件。XC17256EPCG20C 作为一个 FPGA 设计的配置存储,持有那份把可编程逻辑带起来的比特流,而它的大小和读速度定下这颗器件在上电之后要多久才变得有用,这在一个为省电而醒来又睡去的器件上要紧。把它漏在早期计划之外,是一条走旧了的路,通向一块上电后什么也没有的板子、和一个为查清缘由丢掉一周的日程。

从原型到量产

FPGA 常常是头一千台对的器件、下十万台错的器件。早期,随算法成熟而重刷逻辑的自由,正是项目需要的,而那更高的单价,在能不能出货这件事的价值面前几乎不入账。随着设计定下来、数量长大,同样这份成本开始主导,而那份没用上的灵活变成一个没有回报的成本项。

把这件事处理得好的团队,从一开始就把迁移设计进去。他们把系统里可能变的部分留在可编程逻辑里、把定下来的部分留在固定逻辑或软件里,这样等到该迁到一颗更便宜的器件或一颗定制芯片时,边界已经画好了。把 FPGA 当作一个没规划出口的永久居所,是一个产品最后为它几年前就不再使用的可重构性付钱的方式。

离开 FPGA 的迁移很少是免费的,它从一开始就属于这笔账。把一个验证过的设计搬到一颗固定加速器或一颗定制芯片上,意味着在一个新目标里重新验证逻辑,而这份工夫得拿它解锁的单台节省来抵。最后占便宜的团队,是那些把留在可编程逻辑上的运行成本、和离开它的一次性成本都数过的,是那些早早地在设计里可变的部分和定下来的部分之间画好了边界、好让最终那一步是一次移植、而不是一次重起炉灶的。

真正决定它的是什么

第一个问题是这个设计到底是不是真需要可重构硬件,还是出于习惯伸手去拿了 FPGA。一个固定加速器或一个 NPU,以更低的功耗和成本把一个定下来的活干完,而推理的活在它们到达量产的时候往往已经定下来了。

这份灵活带着一个运行成本,不只是一个设计成本。一颗 FPGA 干同样的活比一颗固定器件耗得多,而这个差距在产品整个寿命里出现在每一台上,所以重配置这个选项,得在一块可能永远不会被重配置的硬件上挣回它的价钱。

工具和 IP 的分量和硅片一样重。可编程逻辑只在团队有本事给它建东西的限度内有用,而一个靠着没人在岗能维护的综合的设计,是一个穿着特性外衣的风险。

供货在这里拖得长,而这把双刃剑两边都割。这些器件往往保持长生命周期,对一个出货多年的产品是个实打实的优势,同时它们也把设计绑在一个厂商的工具链和授权上整段时间。合的那颗器件,是它的灵活会被设计用上的那颗;为一个真需求买来,它难以替换,为图安心买来,它是一笔在每块板上收取的税。

相关信息

富聪科技

搜索

富聪科技

产品

富聪科技

电话

富聪科技

用户