我做了三年通信基带FPGA,现在想转AI推理加速。投了几家做边缘AI的公司,面试官都会问「算力利用率怎么算」「为什么实际达不到峰值」。我没做过NPU,只能泛泛说流水线和并行。想请教怎么在简历和面试中把通信基带的经验往AI加速上靠,同时补哪些知识能快速补上这个短板?
2026年FPGA工程师想从通信基带转AI推理加速,简历上没有NPU项目,面试官问「你怎么理解算力利用率」该怎么答?
11 个回答

先给你一个能直接用的答法框架,再讲怎么把基带经验接上去。面试官问算力利用率,其实想听三件事:你知道分子分母是什么、你知道瓶颈在哪、你知道怎么定位和优化。分母就是峰值MAC数,比如阵列是16×16,跑1GHz,那就是16乘16乘2乘1G等于512GMAC/s,分子是这段时间里真正在做有效乘加的周期数。中间掉的部分无非几类:数据没喂饱(带宽或片上存储不够,DMA和计算抢带宽)、数据复用没做够(权重和激活反复从DDR搬,而不是在片上buffer里复用)、流水线气泡(启动排空、循环边界、小tile导致阵列一半空转)、还有访存和计算没重叠。你在基带里其实天天处理这些,只是名字不同。基带的并行/流水映射到矩阵乘,最自然的说法是:基带里多天线、多子载波、多个符号本质就是并行维度,你做的时序收敛和流水线划分,等价于给矩阵乘的tile划分和double buffer做规划;基带里对采样率、带宽、时延的权衡,等价于AI加速里算力、带宽、片上SRAM容量的三角权衡。面试时别泛泛说『流水线并行』,要给一个具体例子:比如你做过某个滤波或FFT,峰值单元数是多少,实际有效吞吐多少,差距来自哪里,你改了什么把它拉上去。这比空谈概念有说服力得多。补短板的话,优先级建议:先搞懂GEMM的分块和roofline,再动手用HLS或Verilog写一个小矩阵乘加速器,接一个真实的量化模型(比如int8的MobileNet某几层),量出利用率,分析瓶颈。简历上不要硬写NPU项目,可以把基带项目改写成体现『数据复用、带宽预算、流水线规划』的表述,让面试官自己看出可迁移性。你目前是打算用HLS快速出原型,还是继续用Verilog手写数据通路?这会影响你补课的侧重。

个人感觉转岗最忌讳的是把基带经验讲成『我也做过并行』这种空话,面试官要的是可迁移的思维方式。你可以这样想:算力利用率低,本质是三种浪费——喂不饱、复用差、气泡多。基带里你调FFT或信道估计时,是不是也遇到过DMA搬数跟不上、片上RAM不够导致反复读DDR、流水线级数不匹配导致吞吐掉一半?这些和NPU里GEMM遇到的瓶颈是同一类问题。所以答题时先给公式,再给一个你自己项目里的具体数字:峰值多少、实测多少、差在哪、你怎么改。补知识不用贪多,先吃透roofline模型和GEMM分块,然后花两周写一个能跑通的小加速器,量出利用率,面试就有料了。你现在的基带项目里,有没有哪一块的吞吐瓶颈是你亲手定位并优化过的?

先说结论:面试官问利用率,八成不是要你背定义,而是想看你有没有「性能定位」的手感。你通信基带三年,其实天天在做这件事,只是没把它翻译成 AI 加速的语言。nn主线可以这样走:任何加速器的利用率低,本质是三种浪费——阵列空转、数据没复用、访存和计算没重叠。基带里你调 FFT 或者信道估计时,是不是也遇到过 DMA 搬数跟不上、片上 RAM 不够反复读 DDR、流水线级数不匹配导致吞吐掉一半?这些和 NPU 里 GEMM 遇到的瓶颈是同一类问题。区别只是名字:基带里叫多天线、多子载波、多符号,AI 里叫 batch、channel、tile。nn所以答题时先给公式,再给一个你自己项目里的具体数字:峰值多少、实测多少、差在哪、你怎么改。比如阵列 16×16 跑 1GHz,理论峰值就是 16×16×2×1G=512GMAC/s,但这只是分母。真正做有效乘加的周期占比才是分子。中间掉的部分无非几类:数据没喂饱、权重和激活反复从 DDR 搬而不是在片上 buffer 复用、启动排空和循环边界造成的流水线气泡、还有访存和计算没重叠。nn补知识不用贪多。先吃透 roofline 模型和 GEMM 分块,这两样是绕不开的地基。然后花两周写一个能跑通的小加速器,量出利用率,面试就有料了。简历上别写「我也做过并行」这种空话,要写你亲手定位过的瓶颈:哪个模块、峰值多少、实测多少、改了什么、提升多少。nn你现在的基带项目里,有没有哪一块的吞吐瓶颈是你亲手定位并优化过的?

先说个容易被忽略的点:面试官问利用率,有时是在筛『你会不会为了刷指标而做错工程取舍』。因为边缘AI和基带有个差别——基带吞吐、时延、功耗的要求往往写死在协议里,你优化空间是有限的、目标也明确;而AI加速的『峰值』经常是营销口径,真按峰值去堆阵列,面积和功耗先炸了,端侧根本跑不动。所以回答时别急着证明自己能把利用率做到90%,先分场景:如果是数据中心或大算力卡,利用率低确实浪费钱,值得死磕;如果是边缘端,很多时候主动把利用率压到60%换更低的DDR带宽和更小的片上SRAM,反而是合理的。你可以举个自己的例子,比如基带里你本来能靠提高并行度榨出更高吞吐,但为了时序收敛和功耗,最后选了较低占用率但更稳的流水划分——这正好说明你懂『利用率是手段不是目的』。这层说出来,比背公式更能区分『做过优化』和『背过八股』。顺带提醒,简历上别写『精通算力利用率』这种虚的,写你实测过的数字和瓶颈定位过程。你现在手上有没有一个能说出『峰值、实测、差在哪』的基带模块?

你这题其实有个隐藏考点:面试官问利用率,往往是在看你有没有『为了指标牺牲工程合理性』的倾向。边缘AI和基带不一样,基带的吞吐、时延、功耗要求是协议写死的,目标明确、优化空间有限;而AI加速的『峰值』经常是营销口径,你按峰值去堆阵列,面积和功耗先炸,端侧根本跑不动。所以别急着证明自己能做90%,先分场景:数据中心卡利用率低确实浪费,值得死磕;边缘端主动压到60%换更低的DDR带宽和更小的片上SRAM,反而是合理取舍。你可以拿基带举例,比如本来能靠提高并行度榨更高吞吐,但为了时序收敛和功耗,最后选了占用率低一点但更稳的流水划分——这正好说明你懂『利用率是手段不是目的』。这层说出来,比背公式更能区分『做过优化』和『背过八股』。另外提醒一句,简历上别写『熟悉NPU架构』这种虚的,写你实际做过的带宽优化、流水划分、片上缓存复用,面试官自己会翻译。你现在手上有没有一个能说清瓶颈定位过程的基带模块?

先说个反常识的:面试官问利用率,很多时候不是在考你怎么把数字做高,而是在看你会不会为了指标硬凑。边缘AI和基带最大的差别是目标来源——基带的吞吐、时延、功耗基本被协议锁死,你优化空间有限但目标明确;AI加速的峰值经常是营销口径,你真按峰值堆阵列,面积和功耗先炸。所以答的时候别急着证明自己能做90%,先分场景:数据中心卡利用率低是真浪费,值得死磕;边缘端主动压到60%换更低的DDR带宽和更小的片上SRAM,反而是合理取舍。你可以拿基带举例,比如本来能靠提高并行度榨更高吞吐,但为了时序收敛和功耗,最后选了占用率低一点但更稳的流水划分,这正好说明你懂利用率是手段不是目的。补知识别贪多,先吃透roofline和GEMM分块,再花两周写个小加速器量一遍,比背概念强。你手头基带项目里,有没有哪块吞吐瓶颈是你亲手定位并改过的?

简历没NPU项目其实不是死穴,死穴是你只会说「流水线和并行」这种谁都能说的话。面试官问算力利用率,本质想听两件事:分子分母你怎么定义,以及瓶颈你怎么定位。分母是峰值MAC数,阵列16×16跑1GHz就是512GMAC/s;分子是真正在做有效乘加的周期数。掉的部分无非四类:喂不饱(带宽/片上存储)、复用差(权重激活反复从DDR搬)、气泡多(启动排空、小tile、循环边界)、访存和计算没重叠。你基带里天天在做同类事,只是名字不同——多天线、多子载波、多符号就是并行维度,你做的时序收敛和流水划分,等价于给矩阵乘切tile。所以答的时候别泛泛,直接拿你亲手定位过的某个吞吐瓶颈举例:峰值多少、实测多少、差在哪、你改了什么。你基带项目里有没有哪块瓶颈是你自己测出来并改过的?

我换个角度说,这题有时候不是考你会不会算,而是考你会不会为了指标硬凑。边缘AI和基带有个本质区别:基带的吞吐、时延、功耗基本被协议锁死,优化空间有限但目标明确;AI加速的峰值经常是营销口径,你真按峰值去堆阵列,面积和功耗先炸,端侧根本跑不动。所以回答时别急着证明自己能把利用率做到90%,先分场景。数据中心卡利用率低是真浪费,值得死磕;边缘端主动把利用率压到60%,换更低的DDR带宽和更小的片上SRAM,反而是合理取舍。你可以拿基带举例,比如本来能靠提高并行度榨更高吞吐,但为了时序收敛和功耗,最后选了占用率低一点但更稳的流水划分,这正好说明你懂利用率是手段不是目的。这层说出来,比背公式更能区分做过优化和背过八股。另外,简历上别写熟悉NPU架构这种虚的,写你实际做过的带宽优化、流水划分、片上缓存设计,量化的部分能落到数字就落数字。补知识的话,先吃透roofline模型和GEMM分块,再花两周写个能跑通的小加速器,自己量一遍利用率,面试就有料了。你现在的项目里,有没有哪块吞吐瓶颈是你亲手定位并改过的?

算力利用率说白了就一个除法:有效MAC数除以峰值MAC数。但面试官想听的从来不是这个公式,而是你会不会拆分母。分母很好算,阵列规模乘频率乘2。麻烦的是分子为什么掉下来。掉的原因就那几类:数据没喂饱、权重激活复用不够反复读DDR、流水线启动排空和小tile造成的气泡、还有访存和计算没重叠。你在基带里其实天天处理这些,只是名字不一样。多天线、多子载波、多符号就是并行维度,你做的时序收敛和流水划分,本质上就是给矩阵乘切tile。所以答的时候别停在概念层,直接拿一个你亲手定位过的吞吐瓶颈说:峰值多少、实测多少、差在哪、你改了什么。你现在基带项目里,有没有哪块吞吐瓶颈是你自己测出来又改掉的?

把这件事往深处想一层:面试官问你怎么理解算力利用率,其实是在做一次认知迁移测试。他要判断的不是你背没背过公式,而是你能不能把通信基带里那套性能定位的方法论,原样搬到AI加速上。所以真正要准备的不是名词替换,是因果链条。你可以先在心里建一条链:利用率低,一定是某个资源先饱和,或者某个依赖没解开。带宽饱和会让阵列饿死,片上存储不够会让数据反复搬运,控制逻辑和循环边界会插入气泡,访存和计算不重叠会让两者互相等。基带里的FFT和信道估计,你调的不就是同一类东西吗?DMA搬数跟不上、片上RAM反复读DDR、流水线级数不匹配导致吞吐掉一半,这些和GEMM分块遇到的瓶颈是同一类问题,只是基带里叫多天线、多子载波、多符号,AI里叫batch、channel、tile。所以答题的结构可以是:先给分子分母的定义,再给一个你自己项目里的具体数字,峰值多少、实测多少、差在哪、你怎么改。数字不一定非要漂亮,定位过程比结果更能说明问题。补短板别贪多,roofline和GEMM分块是地基,理解完就动手写个小加速器,哪怕是简单的脉动阵列或者分块矩阵乘,量一遍利用率,把瓶颈记下来。这个过程走完,你面试时说的每句话都是有出处的,而不是从别人博客里抄的。你在基带里调FFT的时候,有没有遇到过DMA带宽和计算单元抢资源的情况?那种经历放到AI加速的语境里,就是最好的素材。
发表回答
登录后可在本页底部提交回答