神经网络中每种层的相对计算时间
该图似乎显示了学习过程中每个组件的相对计算时间,独立于层,使用层在人工网络上下文中的典型含义。
数据并不令人难以置信,因为人们预计整个层输出的矩阵向量乘法将比卷积核大小的矩阵向量乘法花费更多时间。尽管如此,这些表示是针对特定的测试条件和测量方法的。
并行处理的大部分理论和实践限制都严重偏向于作为计算机科学研究和实践基础的 70 年顺序处理。如果需要了解并行处理,那么冯诺依曼架构就不是值得关注的地方。在当时,计算机可以由木头、钢、真空管或继电器制成。开发具有 65536 条并行数据路径的计算机是极端不现实的。算法的发明是一种通过单个 CPU 集中所有处理的解决方法。在过去的 30 年里,我们一直在放弃这种思维定势,从 FPU、GPU、多总线、计算机集群和多核开始。VLSI 形式的更多并行性即将到来。
与许多事情一样,并行处理的演示来自生物学。看看阳光下的耕作和谷物生长。看看来自成千上万物种眼睛的视觉电路。考虑数百万颗行星及其卫星的轨道。要检查的人为并行性是运输系统和互联网。当进程被设计为并行进程而不是试图使设计为串行的进程并行时,并行处理是有效的。例如,人耳在不执行单次乘法运算的情况下进行实时开窗 FFT 的物理等效。
衰减矩阵与向量的浮点乘法瓶颈(参数化从一层到下一层的信号混合)是 NVidia 在为人工网络训练重新设计渲染硬件方面做得很好的关键。这也是这个问题很有趣的众多原因之一:如果数字值仅仅是估计,为什么不回到人工智能的模拟?.
在跨 GPU 和 CPU 搜索 GFLOP 与不同类型层的计算时间时,在搜索词中使用术语“操作”而不是“层”可能会有所帮助。尽管基本操作的级别低于所需的比较级别,但术语层在机器学习文献中被强烈委托给更高级别的含义。这个领域的可靠数据很少,因为已经研究和开发了大部分速度优化,所以无论可视化显示什么都是无用的,除非您在英特尔、三星、NVidia、高通、TI 或其他芯片之一从事 VLSI 开发巨人。