野区方鸿渐 (@lios) 在 逆风在线求教 中发帖
小弟在学校学的电子信息,但是因为对软件和计算机更感兴趣所以慢慢从嵌入式/单片机往软件/深度学习/边缘计算靠。第一份工作在广州一家初创做图像算法边缘端迁移,运气不好碰上年初芯片断供风波,只能gg。
在家一边等水硕申请结果一边自学了模型量化压缩部署流程和相关的原理后上手在x86上做了一些项目,最近在面试一些高性能计算和加速相关的岗位,第一家公司面试官其实很和善,问题如下:
如果有一个模型在x86上运行没有问题,在嵌入式端运行得不尽如人意,要怎么分析这个问题?
回答:尽量提升程序的缓存命中率,从数据的格式和batch的组成入手。或者对模型进行稀疏化处理,把用不上的权重置0,等等。或者减小计算图的大小,让模型在编译时尽可能不要用长读取指令从内存取权重。(也有考虑到部分平台手写forward函数的性能问题,但是相关的经验不是特别丰富所以就没有说)
假如考虑在单CPU上处理,要怎么找到程序性能...