码电路的阿明
兄弟,你这背景转AI编译器其实挺对路的。我在地平线干过两年,说说我的看法。痛点在于:传统嵌入式工程师习惯写确定性的代码,但AI编译器要处理的是动态的计算图优化,还得考虑硬件特性,思维得转过来。学习路线别搞反了,先别碰硬件指令集!那东西没上下文学不动。我建议这样:第一,快速过一遍深度学习基础。不用成为AI专家,但得知道卷积、矩阵乘、注意力这些典型算子在干嘛,推荐看《深度学习入门》的实践篇。第二,上手TVM。这是最友好的起点,它的文档里有从模型导入、图优化到代码生成的完整例子。重点看Relay IR和AutoTVM,理解怎么定义计算、怎么调优。动手作业:用TVM编译一个MobileNetV2,尝试不同的优化级别,比较性能。第三,深入硬件协同设计。这时候再找NPU资料,关注数据流(比如权重静止、输出静止)、内存带宽瓶颈。可以看看寒武纪的架构白皮书(如果公开),或者用Google的TPU论文来理解脉动阵列。最后,MLIR可以学,但优先级放后面。因为MLIR更底层、生态复杂,等你有了TVM经验再啃会轻松点。
另外,嵌入式经验别丢!AI芯片的编译器特别关注实时性、内存占用,你的MCU优化经验反而是加分项。多看看业界会议(比如MLSys)的论文,了解前沿优化技术。坚持半年每天搞两小时,投简历时就能拿出实际项目了。
