九次内存访问,每次访问一个元素的开支远大于一次访问九个元素的开支。
通过加入buff完成数据的本地化完成更优化的设计。
这其实也和李沐老师在《动手学深度学习》中讲的类似,一次burst更多数据 (做好和内存大小的协调),来减少通讯时间带来的性能影响,而类似的想法在FPGA,IC,CPU设计,深度学习都普遍存在,因为这些工作都需要面临频繁读写数据带来的通讯影响。
那么在python的深度学习框架里是如何实现的呢?我还没有深入了解。
但我希望在将来的CPU设计学习还有DMA使用的时候学习到这一点。