找回密码
 注册
关于网站域名变更的通知
查看: 751|回复: 4
打印 上一主题 下一主题

关于FPGA局限性的一些想法

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-7-20 15:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
关于FPGA局限性的一些想法7 c0 Y6 p- a, e) H

该用户从未签到

2#
发表于 2021-7-20 16:15 | 只看该作者
最近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开发,另外还有兼容性等问题,下面会简单介绍)。

该用户从未签到

3#
发表于 2021-7-20 16:20 | 只看该作者
安全问题(特别是在cloud environment)。David关于FPGA不适合现代应用的另外一个观点就是安全相关的问题。关于硬件安全(security)相关的研究从17/18年开始就越来越多,(特别是intel Spectre and Meltdown出来之后)。其实不仅仅是硬件和architecture层面的研究,包括软件应用层面的关于安全的研究也非常的多。我感觉新的应用,云计算的普及也是对安全研究的一大推动,AMD和Intel以及其他处理器厂商应该都已经有专门的安全团队以及很多安全方面的新feature加入到新的产品中。对于FPGA来讲,云计算是一个未来的方向,目前AWS,Microsoft,阿里云,腾讯云都有专门的FPGA instance,对于FPGA这种相对底层的编程平台来讲安全相关的问题可能更严重(没有OS的虚拟地址、隔离、权限等保护)。我自己对安全方面的研究不是特别的了解,就不多发表看法了
  • TA的每日心情
    开心
    2023-6-2 15:15
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2021-7-20 16:56 | 只看该作者
    向后兼容性。另外一个FPGA的缺点就是向后兼容性,我们都知道x86一大优势就是其向后兼容性。对于FPGA来讲,不同代的产品不仅整体架构有所区别,LUT, BRAM, DSP还有一些模拟的模块更是每代产品都有可能更新,Xilinx(AMD)和Altera(Intel)的FPGA的底层设计和架构也不尽相同。相同时代不同系列的FPGA资源上也有所差异。这也就意味这对每一代FPGA甚至相同代不同系列的FPGA都要有专门的一套软件(HDL或者C/C++),这和现代的软件、应用开发是不匹配的。这块我想多说一点,我认为现在很多新的FPGA应用特别是在云上的平台都是围绕AI/ML的,同时也基本上都是用类似于GPU的加速器模型(openCL栈,有一篇回答聊过这方面的问题)。兼容性可能更多的可以通过compiler来解决,因为应用的开发往往基于高级语言和一些已有的library,开发者的逻辑多是一些通用的(比如状态机,流水线,cache这种),不太会受兼容性限制。但是这里还是会增加整个发开流程的复杂度和成本(回到第一点)
  • TA的每日心情
    开心
    2021-1-8 15:58
  • 签到天数: 1 天

    [LV.1]初来乍到

    5#
    发表于 2021-7-22 08:36 | 只看该作者
    我自己的一些看法和你一样。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-4 19:24 , Processed in 0.125000 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表