Java教程

自动驾驶网络大学课程W14L1 ML硬件架构 II

本文主要是介绍自动驾驶网络大学课程W14L1 ML硬件架构 II,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Week 14 Lesson 1

Week 14课程的材料是关于ML的硬件架构的,作为课程材料的论文也是非常的牛,作者都是来自于Stanford大学的教授。

课程材料的内容总结起来就是实现了一种针对ML优化的编程语言,该语言抽象了ML计算的硬件实现,就是说用这个语言编写的ML代码可以方便地利用ML的硬件加速器。

做这样一个语言的出发点是基于FPGA的ML加速器如果采用HDL编程的话对软件人员非常不友好,因为HDL就不是从算法的角度描述问题的。作者设计了一种针对ML的新的领域特定语言Domain Specified Language,自己设计了编译器可以将基于这种语言的代码编译成Chisel,然后Chisel可以编译成基于HDL的FPGA设计。

ML的优化主要是针对控制循环的优化,例如一个For循环的矩阵乘法可以直接利用硬件实现,但是要解决参数的传递,硬件矩阵乘法器的软件抽象,编程接口以及如何通过软件指定硬件实现的参数等。

ML的第二个优化是内存的设计,CPU只有寄存器和内存,Cache也算吧,而ML的硬件加速可以设计多种内存,软件可以指定代码使用哪种内存,并控制数据在不同类型的内存间的拷贝。

ML的第三个优化是关于接口的,硬件模块和软件之间的接口,具体设计类似FPGA的HLS。

作者牛就牛在实现了这个语言的定义,编译器的开发,拿常用的ML算法做了对比,然后把结果摆出来了。

结论:

本文设计了用于在可重构架构上设计ML应用程序加速器的语言。Spatial包括用于控制、内存和设计调优的特定于硬件的抽象,这有助于在高效加速器设计和性能驱动加速器设计之间提供平衡。我们已经证明,Spatial可以从单一源针对一系列可重构架构,并可以实现比SDAccel平均2.9倍的加速,而代码减少42%。Spatial语言和编译器是斯坦福大学一个正在进行的开源项目。

 

这篇关于自动驾驶网络大学课程W14L1 ML硬件架构 II的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!