1作者: xou大约 1 个月前原帖
自2019年以来,我一直在探索如何在微控制器上最小化小型多层感知器(MLP)推理的RAM使用。<p>这个项目是我探索的结果:一种完全静态分配的方法,用ANSI C实现MLP推理,使用一个简单的2槽环形缓冲区来保持内存使用的可预测性和极低,同时又能保持快速。<p>我相信这接近于通用CPU MLP推理在不牺牲速度或引入运行时复杂性的情况下的实际RAM使用下限。<p>我之前使用过一种更激进的方法,即在推理过程中为每一层之间的配对分配和释放内存,但如果不小心使用,这会引入开销和碎片化。<p>我很好奇它与人们见过(或构建过)的其他最小推理实现相比如何。欢迎反馈和边缘案例。希望你喜欢它,玩得开心。<3<p>[0]: <a href="https://github.com/GiorgosXou/NeuralNetworks#-research" rel="nofollow">https://github.com/GiorgosXou/NeuralNetworks#-research</a> [1]: 在[0]的源代码中查找REDUCE_RAM_DELETE_OUTPUTS