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