Compiling a Neural Net to C for a 1,744× speedup
a year ago
- #game-of-life
- #neural-networks
- #optimization
- 一个以逻辑门作为激活函数的神经网络(NN)被训练用于学习康威生命游戏的3×3核函数。
- 该神经网络被编译为C语言,推理速度实现了1,744倍的加速。
- 该项目涉及从神经网络中提取并优化学习到的逻辑电路,最终将其简化为一个300行的单线程C程序。
- 可微分逻辑细胞自动机(DLCA)将神经网络与细胞自动机相结合,用学习到的NN模型替代传统的核函数。
- 训练神经网络需要谨慎的初始化,包括将门权重偏向直通门以确保梯度流动。
- 最终的C语言实现利用位并行技术同时处理64个细胞,显著提升了性能。
- 基准测试显示,C语言实现达到了24,400帧/秒,而Python/JAX实现仅为14帧/秒。
- 未来方向包括通过SIMD或GPU计算着色器进一步优化电路,以及探索流体模拟等更大规模的电路。