FPGA 学习小组
直播中

刘伟

7年用户 196经验值
私信 关注

请问FPGA在人工智能时代有哪些独特的优势?

  什么是暗硅效应
  FPGA:解决暗硅效应的有效途径
  使用FPGA的独特优势是什么
  什么是Catapult项目
  脑波项目与实时AI
  评价实时AI系统的主要标准
  AI未来的发展路在何方?


回帖(8)

徐歌

2020-11-26 09:29:22
  什么是暗硅效应
  在我加入微软之前,我和我的博士生Hadi Esmaeilzadeh正在开展一系列研究工作。他现在已经是加州大学圣地亚哥分校的副教授。在当时,学术界和业界的主要发展趋势就是多核心架构。虽然尚未完全成为一个正式的全球性共识,但多核架构是当时非常热门的研究方向。人们认为,如果可以找到编写和运行并行软件的方法,我们就能直接将处理器架构扩展到数千个核心。然而,Hadi和我却对此不以为然。
  于是,我们在2011年发表了一篇论文,并因此获得了很高的知名度。虽然在那篇论文里没有明确的定义“暗硅(dark silicon)”这个词,但是它的意义却得到了广泛认可。
  暗硅效应指的是,虽然我们可以不断增加处理器核心的数量,但是由于能耗限制,无法让它们同时工作。就好像一幢大楼里有很多房间,但由于功耗太大,你无法点亮每个房间的灯光,使得这幢大楼在夜里看起来有很多黑暗的部分。这其中的本质原因是在后摩尔定律时代,晶体管的能效发展已经趋于停滞。
  
  (暗硅示意图,图片来自NYU)
  这样,即使人们开发出了并行软件,并且不断增加了核心数量,所带来的性能提升也会比以往要小得多。所以,除此之外,业界还需要在其他方面带来更多进展,以克服“暗硅”的问题。
举报

李童

2020-11-26 09:29:43
  FPGA:解决暗硅效应的有效途径
  在我看来,一个可行的解决方法就是采用“定制计算”,也就是为特定的工作场景和负载优化硬件设计。然而,定制计算或定制芯片的主要问题就是高昂的成本。例如对于一个复杂的云计算场景,不论是设计者还是使用者都不会采用一个由47000种不同的芯片所组成的系统。
  因此,我们将赌注押在了这个名叫FPGA的芯片上。FPGA全名叫“现场可编程逻辑阵列”,它本质是一种可编程的芯片。人们可以把硬件设计重复烧写在它的可编程存储器里,从而使FPGA芯片可以执行不同的硬件设计和功能。另外,你也可以在使用现场动态的改变它上面运行的功能,这就是为什么它们被称作“现场可编程”的原因。事实上,你可以每隔几秒就改变一次FPGA芯片上运行的硬件设计,因此这种芯片非常灵活。
  基于这些特点,我们在FPGA这项技术上押下重注,并且将其广泛的部署到了微软的云数据中心里。与此同时,我们也开始将很多重要的应用和功能,从基于软件的实现方式,慢慢转移到基于FPGA的硬件实现方式上。可以说,这是一个非常有趣的计算架构,它也将是我们的基于定制化硬件的通用计算平台。
  通过使用FPGA,我们一方面可以尽早开展定制化计算与定制芯片的研究与设计,另一方面,我们可以保持与现有架构相互兼容的同构性。
  如果具体的应用场景或算法发展的太快,或者硬件规模太小的时候,我们可以继续使用FPGA实现这些硬件功能。当应用规模逐渐扩大时,我们可以在合适的时机,选择将这些已经成熟的定制化硬件设计直接转化成定制化芯片,以提高它们的稳定性,降低功耗和成本。
  灵活性是FPGA最重要的特点。要知道,FPGA芯片已经在电信领域中得到了非常广泛的使用。这种芯片非常擅长对数据流进行快速处理,同时也被用于流片前的功能测试等。但是在云计算中,之前并没有人能够真正成功的大规模部署FPGA。我指的“部署”,并不是指那些用来作为原型设计或概念验证的工作,而是指真正的用于工业级使用的部署。
举报

陈小鸥

2020-11-26 09:30:37
  使用FPGA的独特优势是什么
  首先我想说的是,CPU和GPU都是令人惊叹的计算机架构,它们是为了不同的工作负载与应用场景而设计的。
  CPU是一种非常通用的架构,它的工作方式基于一系列的计算机指令,也称为“指令集”。简单来说,CPU从内存中提取一小部分数据,放在寄存器或者缓存中,然后使用一系列指令对这些数据进行操作。操作完毕后,将数据写回内存,提取另一小部分数据,再用指令进行操作,并周而复始。我把这种计算方式称为“时域计算”。
  不过,如果这些需要用指令进行处理的数据集太大,或者这些数据值太大,那么CPU就不能很高效的应对这种情况。这就是为什么在处理高速网络流量的时候,我们往往需要使用定制芯片,比如网卡芯片等,而不是CPU。这是因为在CPU中,即使处理一个字节的数据也必须使用一堆指令才能完成,而当数据流以每秒125亿字节进入系统时,这种处理方式哪怕使用再多的线程也忙不过来。
  对于GPU来说,它所擅长的是被称作“单指令多数据流(SIMD)”的并行处理。这种处理方式的本质是,在GPU中有着一堆相同的计算核心,可以处理类似但并不是完全相同的数据集。因此,可以使用一条指令,就让这些计算核心执行相同的操作,并且平行的处理所有数据。
  然后对于FPGA而言,它实际上是CPU计算模型的转置。与其将数据锁定在架构上,然后使用指令流对其处理,FPGA将“指令”锁定在架构上,然后在上面运行数据流。
  我把这种计算方式称为“结构计算”,也有人称之为“空间计算”,与CPU的“时域计算”模型相对应。其实叫什么名称都无所谓,但它的核心思想是,将某种计算架构用硬件威廉希尔官方网站 实现出来,然后持续的将数据流输入系统,并完成计算。在云计算中,这种架构对于高速传输的网络数据非常有效,并且对于CPU来说也是一个很好的补充。
举报

周煌煦

2020-11-26 09:30:52
  什么是Catapult项目
  Catapult项目的主要目的是在微软的云数据中心大规模部署FPGA。虽然这个项目涵盖了威廉希尔官方网站 和系统架构设计等工程实践,但它的本质还是一个研究项目。
  在2015年末,我们开始在微软购买的几乎每台新服务器上部署Catapult FPGA板卡。这些服务器被用于微软的必应搜索、Azure云服务以及其他应用。到目前为止,我们已经发展到了非常大的规模,FPGA已经在世界范围内被大规模部署。这也使得微软成为了世界上最大的FPGA客户之一。
  在微软内部,很多团队都在使用Catapult FPGA来增强自己的服务。同时,我们使用FPGA对云计算的诸多网络功能进行加速,这样我们的客户会得到比以往更加快速、稳定、安全的云计算和网络服务。比如,当网络数据包以每秒500亿比特的速度进行传输时,我们可以使用FPGA对这些数据包进行控制、分类和改写。相反的,如果我们使用CPU来做这些事情的话,将需要海量的CPU内核资源。因此,对于我们这样的应用场景,FPGA是一个更好的选择。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分