|
最近ISCA-48有很多有意思的paper,不过感觉最有意思的还是一些keynote和panel会有一些computer architecture,compiler相关的大师对一些业界的动向和最新研究方向的看法和讨论。
j- \4 _5 [2 [& x) R! x a& p7 e j+ J" t# o
其中一个panel David Patterson提到了对FPGA的一些看法。其实最近我们系里有幸请到了David Patterson做了一次seminar(主要讲了一些TPU v1-v4,David Patterson 本人的一些经历和有意思的趣事)。讲座时他就简单提到对FPGA的看法,一句简单的总结就是,他认为FPGA很适合做emulation或者prototype platform,但是并不适合很多其他的事,特别是现在很火的AI/ML相关的应用。当时他还说考虑找几个人写一篇FPGA的几个问题的paper5 q2 T( c d, e$ h; g2 c) Z
# M V9 X' O, L( b( r+ s这里结合ISCA panel和当时seminar简单总结他的一些观点,然后附上我自己的一些看法。7 K+ n! o$ `" Y( J D( I! X
; e6 Q8 _% w4 |8 S$ y @软件和应用的更新速度远远快于FPGA的开发速度(他原话是Software has velocity)。略微展开一下,其实现在主要FPGA开发有两个方向,一个是传统的HDL,或者C/C++ high level synthesis,无论是开发IP、专用系统还是基于openCL的加速器。另外一个方向就是在FPGA上设计一套指令集(ISA),然后类似于通用处理器和软件的开发栈,设计自己的简单的compiler然后移植现有的应用。前一种方式可能更好的发挥FPGA的优势,但是开发、仿真、调试都相对费时费力。后一种方式相对现有的CPU, GPU, ASIC(TPU就是一个很好的例子)没有太多的性能成本优势,而且设计的软件硬件栈也非常多。无论哪种方式,相对于软件开发(在通用CPU或者GPU)速度和成本都是有很大差距的。另一方面,当前的应用和软件无论是需求层面还是开发层面都是越来越快的,所以以FPGA为平台去承载这些新的应用是不那么有价值的。这也就是他的第一个观点,也是最重要的一个观点,现代软件、应用发展更新的速度和FPGA的开发速度不匹配。(其实除了FPGA开发,另外还有兼容性等问题,下面会简单介绍)。 |
|