开发者学堂课程【阿里云异构计算 FPGA 解决方案介绍: 什么是 FPGA 异构计算】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/652/detail/10827
什么是 FPGA 异构计算
内容简介:
一、云计算 VS 传统 IT 基础设施
二、异构计算及各类芯片简介
三、什么是 FPGA 异构计算
一、云计算 VS 传统 IT 基础设施
• 传统 IT 基础设施没有弹性:要么业务高峰时无法应对;要么业务低谷时,大量资源闲置
• 云和非云的一个重大区别在于是否有弹性:弹性是指资源的动态调节和使用
• 召之即来:需要时可快速获得大量的计算、存储和网络资源
• 挥之即去:不需要时释放
云计算的和传统 IT 基础设施之间有较大的区别。所有的 IT 基础设施分成三大块——计算、存储和网络。云和传统 IT 基础设施之间最大的一个区别在于弹性。对于传统 IT 基础设施来讲,需要多少 IT 资源,就买多少资源,资源的所有权和使用权的都是归自己所有的,但存在一个问题,无论你所处的是哪一个行业,一般来讲业务都是有高峰和低谷的,但是自己的 IT 基础设施没有办法去按照高峰或者低谷来配置。因为如果按照高峰去配置,那么在低谷的时候肯定会出现大量资源闲置;如果按照低谷去配置,那么业务高峰到来的时候,IT 基础设施没有办法去支撑,很有可能会造成基础设施崩溃。但是云的最大的特点是,当自己的业务高峰到来时,可以随时去购买自己需要的资源;当到了业务低谷时,可以把不用的资源又释放回阿里云。实际上就是从 IT 基础设施的角度获得了最高的性价比。阿里云从2009年这个成立到现在,飞天操作系统经历了长时间的发展,在国内外的云计算厂商里,阿里云的飞天操作系统获得了国家科技进步特等奖。
二、异构计算及各类芯片简介
FPGA 异构计算实际上还是归属到 IT 基础设施中的计算环节。既然是计算,就必然牵扯到这个算例由谁来完成。实际上承载云计算是下图中数据中心的画面。
大致上是一排排的机柜,机柜上放着一排大量的服务器和交换机。第三个图就是一个服务器,第四张图就是服务器中各种各样的主板和插卡。主板或插卡实际上最核心的担负起算力输出的芯片也就是四类。插板中的 CPU、GPU都是非常熟悉的,X86 的 CPU,现在英特尔基本上占据了整个数据中心计算市场的大概七成的份额。
GPU 以NVIDIA 为首,随着近几年 AI 应用的兴起,GPU 也在数据中心计算领域占据了大量份额。剩下两类 FPGA 和 ASIC,也针对各自特定的垂直市场,发挥着越来越大的作用。业界公认摩尔定律的发展已经基本陷入停滞状态。英特尔自己预测摩尔定律十八个月芯片的面积缩小一倍,然后算力增大一倍的规律,改为未来十年内 CPU 的算力才能翻一倍。但随着这个云计算和数据中心应用的蓬勃发展,对于算力的需求是无穷无尽的。但 CPU 在很多场合表现的越来越力不从心,就是说这个计算任务 CPU 不是不能做,但是做的费力,费力就是指拿 CPU 来做成本也许很高,也许延时非常大,也许功耗非常高。这也是 FPGA、GPU、ASIC 芯片逐渐在数据中心占据越来越多的市场份额的根本原因。
所谓异构是指 FPGA、GPU、ASIC 都和 X86 CPU 所采用的指令级是不一样的。当然,对于 FPGA 和 ASIC 来讲压根就没有指令级。相对于 CPU、FPGA、GPU 来讲,ASIC 为什么现在在数据中心里的应用相对比较少呢?最根本的原因有两个,
第一个原因,ASIC 的开发周期是非常长的。通信行业的一个芯片的巨头叫博通,博通算是业内 ASIC 迭带开发速度至少是最快之一。博通的 ASIC 芯片的推出速度大概九个月可以推出一个 ASIC 芯片。但博通能做到这么快的推出 ASIC 这个芯片的最根本的原因是,据说博通有一个原则,博通在开发一款新的芯片时,一定要确保可重用的部分达到至少70%,新开发的的功能占30%。但是对业内的其他厂商来讲,正常的开发周期一般都在一年半乃至更长的时间。所以长时间的开发周期就很难满足云计算,或者是数据中心应用的快速变化的趋势。
第二个原因,随着半导体工艺的逐步推进,现在三星和 Arm 都推出了七纳米的工艺,之后再进一步推到五纳米,未来还剩三纳米和一纳米两个节点。随着半导体工艺每推进一步,会导致生产成本也是急剧飙升。英特尔的十纳米产品线,基本上建一条通常成本大概是十亿美元。对于整个 ICT 业界来讲,能建一条这个半导体生产线的厂商也为数不多。在这种情况下,FPGA 以接近于 ASIC 的性能,同时在用量不是特别大,比如到 100k 也就是10万片以内的应用量的情况下,它的性价比优势非常高,而且 FPGA 是一个可编程芯片,跟 ASIC 这种一旦流片功能就完全固化下来,没有办法做任何更改的芯片有很大的区别, FPGA 是可以重新编程的,随时随地可以在线编程。
三、什么是 FPGA 异构计算
FPGA:在线可编程门阵列(Field Programmable GateArray)
1、FPGA 是一种“可编程”的半导体芯片,和 CPU 必须要靠程序才能完成特定工作类似,FPGA 也需要“程序”,通常我们叫做“算法”或“IP”,只要更换不同的“IP”,FPGA 就会变成一个“新芯片”
2、FPGA 相比于冯诺依曼结构通用处理器,效率更高、速度更快;相比于专用 ASIC,FPGA 开发难度小、开发周期短的优势,因此更适用于复杂多变的数据中心等应用
3、理论上说,CPU、ASIC 和 FPGA 都几乎可以做“任何事情”。只是,每一种芯片都有各自性价比最高的应用场景。因此,可以说,是应用场景决定了底层的算力应该由“谁”来输出
FPGA 芯片就是一个在线的可编程的门阵列。拿 CPU 和 FPGA 来做类比。CPU 要完成一项特定的任务,就一定要写针对特定任务的程序,离开了程序,CPU 实际什么也做不了。FPGA 也一样,为 FPGA 开发的程序通常有一个术语叫“IP”,或“算法”。FPGA 与 CPU 比较类似的一点是,只要去更换不同的程序,它就能以最高的性价比去完成特定的计算任务。第二点,CPU 是有 X86 的复杂指令级,但FPGA 完全没有指令级。这是在很多垂直市场,FPGA 相对于 CPU有性价比优势的根本原因之一。第三点,CPU、FPGA、GPU、ASIC 彼此之间不是互相取代的一个关系,实际上跟它们各自的优势,或者是结构特点,决定了它们哪个应用场景具备最高的性价比。反过来讲呢,实际上是上层的应用场景决定了底下的 ASS 层。采取哪个算力输出源头才是具备最高的性价比或是最低的延时。