2026年,AI芯片公司面试官问FPGA工程师如何用Verilog实现一个支持AXI4-Stream的实时Swin Transformer加速器,如何从窗口划分和自注意力计算角度设计?
最近在准备AI芯片公司的面试,看到他们招聘要求里提到了Swin Transformer的硬件加速。我理解Swin Transformer的核心是窗口多头自注意力(W-MSA)和移位窗口多头自注意力(SW-MSA),但在FPGA上实现时,窗口划分的边界处理和数据搬移很头疼。比如,如何用Verilog设计一个高效的窗口数据重排模块,减少BRAM的读写冲突?还有,自注意力中的Q、K、V矩阵乘法如何用流水线和数据复用优化,避免成为瓶颈?希望有经验的大佬指点一下,面试时该怎么组织回答思路。