新国际网站建设,保险代理平台,福州 网站开发,手游网络游戏排行榜导读#xff1a;数据中心和云计算的超高增速#xff0c;AI、视频、基因测序等应用对于算力的无尽渴求和摩尔定律发展事实上已经停滞的现实#xff0c;均给异构加速带来了巨大的应用潜力和商机。但 Faas 解决方案仍有较高的门槛#xff0c;今天#xff0c;我们一起了解 Faa…导读数据中心和云计算的超高增速AI、视频、基因测序等应用对于算力的无尽渴求和摩尔定律发展事实上已经停滞的现实均给异构加速带来了巨大的应用潜力和商机。但 Faas 解决方案仍有较高的门槛今天我们一起了解 Faas 的难度在哪里以及在阿里我们如何做到真正的 Faas
一、 前言
近几年DC 和云计算领域风起云涌发展地如火如荼。中外厂家纷纷发布 “DC First”、“All in Cloud”、“Cloud or Dead” 等战略不管此前公司的主业为何杀入 DC 和云计算领域的厂家如过江之鲫。但是和任何 ICT 领域一样在经过充分的搏杀和竞争之后整个市场将基本稳定下来由 TOP2-3的厂家把持其他 players 加到一起分点残羹冷炙。Gartner 于4月24日发布报告阿里云以19.6%的市场份额雄踞整个亚太第一AWS 和微软分居第二和第三。全球范围内仍然维持了AWS、微软和阿里云分别为冠、亚、季军的格局。
阿里云 FPGA as a Service以下简称FaaS舜天平台正是 FPGA 异构加速领域的领导者和开拓者也是 FPGA 异构加速领域良好生态的倡导者和建设者。依托阿里云百万企业付费客户以及阿里云强大的飞天操作系统FaaS 舜天平台对内而言已经成为阿里集团 FPGA 加速业务的基础设施对外而言则将大幅降低 FPGA 的开发和使用门槛致力于为客户提供最高性价比的算力和打造健康的 FPGA 加速生态。
二、 传统的 FPGA 应用与 FaaS 的区别
FPGA 由于其强大的灵活性自诞生以来在数以千计的垂直市场中都获得了大量的应用。但是这种应用都谈不上“云”也谈不上“service”。我们知道传统 IT 基础设施是没有弹性的因此很容易出现要么业务高峰时无法支撑乃至整个 IT 系统崩溃要么陷入业务低谷时大量 IT 资源闲置造成成本高企。因此“云”和“非云”的一个最大区别就在于是否支持资源的“弹性”伸缩需要时按需获取不需要时随时释放。而要做到“弹性”那么一定要通过虚拟化来支持。如果做不到“弹性”和“虚拟化”就称不上 FaaS究其本质和传统上对 FPGA 的使用没有任何区别。
如果单纯从 FPGA 的设计和使用角度看即使有门槛的存在设计一颗 glue logic的 FPGA 或者跑一点简单算法实现一点简单控制难度是相当有限的。但是不能说具备了这些能力之后就可以对外宣称可以提供 FaaS 的能力了。
首先使用 FPGA 实现复杂的算法的门槛是非常高的比如用 FPGA 实现 H.265 编码其次高效使用 FPGA 实现复杂的算法的门槛是非常非常高的还拿 H.265编码举例设计得不好的话很大容量的一颗 FPGA 也许只能支持一路 1080p/30 帧的 H.265 视频好的设计也许就能支持4路最后把 FPGA 的加速能力通过“云”来输出给客户的门槛是非常非常非常高的。所以FaaS 的核心之一是让 FPGA 的算力“x86化”即云上购买和使用 FPGA 的算力和云上购买和使用 CPU 的算力一样简单核心之二是让 FPGA 的算力“服务化”即不需要客户做二次开发和适配通过简单的类 URL 调用即可使用。 三、 FaaS的难度在哪里
FaaS 的价值可以从三方面来看
一是把 FPGA 的算力从传统的“线下”输出改为“线上”输出二是把 FPGA 的算力形成资源池和 CPU 一样做到业务高峰时“召之即来”轻松应对大业务量挑战、业务低谷时“挥之即去”及时释放资源以节约成本三是把 FPGA 的算法IP做成“积木”可以让客户根据实际的业务需求在很短的时间内选取合适的 IP “积木“搭成针对性的解决方案。
这三方面的价值同时也是 FaaS 的难度所在。
1、 云化
传统的使用 FPGA 的方式也即所谓的“线下”模式一般是FPGA 和其他器件包括主控的 CPU一样都焊在“母板”上主控 CPU 通过与 FPGA 直连或者 CPLD 桥接的方式对该 FPGA 进行配置和控制FPGA 的存储空间直接映射到 CPU 的主内存空间。而云上模式下FPGA 所在的板卡通常叫做 FPGA 加速卡是所在宿主机“母板”上的一个 PCIe 设备云服务的客户使用虚拟机和 PCIe 报文对该加速卡也就是 FPGA进行配置和控制。由于此时 FPGA 跟“母板” CPU 之间不存在任何“直连”关系只能通过 PCIe 报文对 FPGA 进行操作传统上对 FPGA 的复位、加载、状态和性能监控等常规功能在虚拟机云上环境下不再那么“常规”。简单的用一句话总结就是线下根本不是问题的问题到了线上云上可能全是问题。不解决好这些问题就没办法让 FPGA 简单易用也就谈不上算力“普惠化”更谈不上“云服务”了。
FPGA 云厂商要做的是介于 FPGA 的驱动层以及客户的软件 SDK 层之间的适配层这个适配层尽可能屏蔽底层的软硬件细节通过 API 给客户的软件 SDK 提供必要的控制接口使得客户能够以“类 URL 调用”这样的简单方式来调用 FPGA 的算力。简而言之如果不能做到简单易用那么尽管 FPGA 相对 CPU、GPU 可以提供极高的性价比也会在 CPU 和 GPU 的强大生态面前败下阵来。客户的诉求很简单希望动动鼠标就能得到结果客户根本不 care 底层的算力是 CPU、GPU 还是 FPGA 输出的而不是要看几百页手册要三五个乃至更多开发人员适配上三个月才能使用。
2、 算力池化
传统上由于 FPGA 是焊接在所在母板的因此母板所在的宿主机的 CPU 对该片或者几片FPGA 是拥有100%的“所有权”和“使用权”的。即便很多时候FPGA 处于空闲状态它也不可能被别的宿主机尽管可能宿主机之间存在网络连接不管是 WAN 还是 LAN甚至是网线直连所使用。但是在云上使用环境中每个宿主机所“携带”的 FPGA 都是某个计算集群的一份子每个宿主机和运行在其上的虚拟机既可以使用自己本板/本机上的 FPGA 、也可以使用其他宿主机的 FPGA 。传统使用方式下没办法满足类似“提供 1.25 片 FPGA 或者 3.5 片 FPGA 给某个用户使用”这样的需求但在云上环境中满足这样的需求是云服务的基本功能。
3、 算法 IP 积木化
算法通常我们称呼这些算法叫 IP是 FPGA 的灵魂没有了算法FPGA 可以说什么都不是有了算法FPGA 几乎可以做任何事情FPGA 的高灵活性是由算法来使能的。业界有很多第三方的 ISV 和独立开发者充分利用 FPGA 的高并行和时间流水特性开发了很多高效的 IP这些 IP 可以高效地完成某一个或几个特定的功能。更多的时候客户的需求必须要多个 IP 的配合才能满足。由于并没有任何标准组织来制定 IP 的对外接口各家 ISV /独立开发者所开发的 IP 的接口多种多样。要将他们拼到一起形成解决方案往往需要花费大量的时间和精力开发二者中间的适配层这样就失去了通过组合 IP 从而快速形成解决方案的优势。只有所有的 IP 都遵循统一的接口标准才能够做到 IP 像乐高积木一样任意组合、快速形成解决方案。
这当然是一种理想状态。事实上FPGA 器件出现已经有 30 多年的历史大大小小的设计各种 IP 的 ISV 也有很多但是极少有 ISV 能够长大、能够规模化。在 FPGA 的传统擅长领域没有出现在 FaaS 渐成风潮的今天暂时也没有出现。开发 IP 最大的问题在于平衡“通用性”和“专用性”包括 IP 算法本身和 IO 接口。一般来说通用性越好意味着性能往往就要差一些性能调测的非常强劲的 IP通用性往往不够好使用时要做各种各样的适配和牺牲支持的 IO 接口越多意味着 IP 本身的成本也就越高但是只支持某种 IO 接口的话成本是降下来了但是严重限制了 IP 的应用范围。
到了 FaaS 云时代由于在特定垂直领域FPGA 相对 CPU 或者 GPU 的性价比往往非常出众所以 IP 的性能往往不是考虑的第一要素而且云上只能输出算力无法输出 IO因此也不存在支持的 IO 的种类问题。FPGA 算力云化的最大障碍在于 IP 距离“服务”还有相当的距离要充分发挥 IP 的性能客户往往要做二次开发以及大量的软件适配这恰恰和云化降低 FPGA 的使用门槛、使 FPGA 的算力普惠化的大目标相抵触。
四、 阿里云舜天平台做真正的FaaS
阿里云 FaaS 舜天平台自诞生之初就把 FPGA 算力普惠化作为自己的使命通过云化输出 FPGA 算力为客户提供更高性价比的计算解决方案是舜天平台的价值所在。舜天平台不但很好地解决了上述的三个难点同时还致力于三方面的工作使得FaaS真正的名副其实。
一是针对 FPGA 具有明显加速优势的特定垂直市场做到真正以“服务”来输出 FPGA 的高性价比算力。CPU 和 GPU 的生态已经非常的完善在全球有几十甚至上百万的开发者。这就使得客户只需购买 ECSElastic Compute Service弹性计算服务/EGSElastic Graphic Service弹性图形服务这样的 IaaS 基础设施可以很容易、快捷地在其上建立 PaaS/SaaS 服务。
但是对于 FPGA 来说由于生态的不完善和分散绝大部分云上 FPGA 用户不具备自行购买 EFSElastic FPGA Service之后在其上搭建 PaaS/SaaS 的能力。这就意味着如果云服务厂商仅仅提供 FPGA 的 IaaS客户是根本不会买单的即使是提供带 IP 的IaaS客户仍然要做二次开发与适配这就大大降低了 FaaS 的吸引力。因此要使得 FPGA as a Service 成为一种可行的商业模式就必须对外提供基于 FPGA IaaS/IaaS的 SaaS 服务只有这样才能够与 CPU/GPU 进行竞争从而发挥 FPGA的高性价比、低延时、高灵活可编程性等优势。
二是建立完善的FPGA IP 云市场在 IP Vendor 和 FPGA 异构计算云服务客户之间牵线搭桥IP Vendor 通过阿里云 FaaS IP 市场获得收入从而发展壮大设计适用于更多垂直市场的 IP而客户则通过在 IP 云市场灵活选择 IP快速形成解决方案从而获得更高性价比的算力。如上所说无生态不 FaaS生态对于 FaaS 的成功可谓至关重要FPGA 器件厂商、FPGA 云服务提供商和广大的 FPGA IP 独立开发者和 ISV 是这个生态的三根支柱。缺少了任何一方生态的建设都是举步维艰的。
相对而言FPGA 器件厂商和云服务提供商应该投入更多的资金和资源来扶持独立开发者和 ISV。同时云服务提供商要与 ISV 密切合作在目前能够看到的 FPGA 具备明显优势的垂直领域迅速落地应用并产生价值形成示范和标杆效应以吸引更多的独立开发者和 ISV 加入到建设 FaaS 生态的大军中来。
第三阿里云 FaaS 舜天平台还致力于建立云上的 FPGA 开发环境与平台降低FPGA 设计、开发、验证的门槛客户、ISV 和独立开发者均可聚焦于设计本身而无需考虑 EDA 工具、开发环境、验证环境等对最终业务价值增值不多但又必须花费大量时间和精力的事情。
传统上FPGA 是一项“重资产”应用要购买 FPGA 器件、要开发板卡、要购买 EDA 工具和 FPGA 调测仪器如逻辑分析仪所有这些加起来形成了 FPGA 应用的高门槛。单说 EDA 工具这一项对于中小 ISV 和独立开发者来说EDA 工具含 FPGA 器件厂家提供的配套开发软件如 Intel 的 Quartus 和 XILINX 的Vivado的 license 授权费用不菲他们很难负担得起而要使用非正版软件又不得不面临很大的风险包括软件侵权风险和设计中埋下隐患的风险。FaaS 舜天平台很好的解决了这些问题大大降低了 FPGA 开发、使用的成本和门槛为建设健康的 FaaS 生态打下了坚实的基础。 针对上述价值FaaS做了大量针对性的创新设计。
1、 支持业界主流 FPGA 器件厂商
目前阿里云 FaaS 舜天平台同时支持 Intel 和 XILINX 两家主流 FPGA 厂商的器件阿里云也是全球 FaaS 产品线最齐全的公共云服务商。对于只想利用 FPGA 算力加速的客户来说无需知道也不会知道底层提供加速的 FPGA 属于哪家厂商。一方面两家厂商的器件和开发环境各有千秋另一方面相当一部分使用 FaaS 进行设计、验证的第三方 ISV 和独立开发者来说其设计面向的是线下应用因此必须针对某个厂家的某款器件这就使得同时支持 Intel 和 XILINX 两家厂商的器件变为必需。阿里云目前是 FaaS 产品线最为齐全的云服务提供商。 2、 硬件设计创新
FaaS 舜天平台的 F3 实例其板卡采用了单卡双芯片XILINX 公司的 VU9P 芯片的高密设计而绝大多数号称提供 FaaS 的云服务提供商均采用了更为稳妥的单卡单芯片方案。单片 VU9P 的典型功耗为75W两片就是150W供电和散热成为设计时必须重点考虑的因素这些问题解决不好的话将极大的影响 F3 的稳定性。同时由于 PCB 达到了26层信号完整性比如 PCIe、MAC 等高速接口也是巨大的挑战之一。克服这些挑战之后FaaS 舜天平台的 F3 实现了算力密度业界第一从而实现了最多可以节省50%的物理机采购成本这进一步提升了 FPGA 的性价比竞争力。
3、 软件设计创新
阿里云FaaS也有大量的软件创新
完整的 FPGA 监控系统用户可以实时获取 FPGA 的各种运行状态包括功耗、温度、IP使用率等 用户可选 1/2/4片 FPGA 互联拓扑用户可根据自己 workload 大小灵活选取和配置合适的实例实现最高性价比同卡 FPGA 之间有高达 600Gbps 的高速互联通道应用若需两片 FPGA 之间实现实时、大批量数据搬运不存在带宽瓶颈 自适应网络接口两路100G光口使得不同 NC 之间的 FPGA 相互通信不存在任何带宽瓶颈 热升级在不中断客户业务的前提下对部分用户逻辑进行在线重配置以实现新的功能和 Feature 支持软硬件联合仿真。这些创新设计为用户提供了灵活、丰富的实例规格选择大大简化了 FPGA 的高性价比算力输出的复杂度同时极大的提升了 FaaS服务的易用性。 FaaS 舜天平台提供两大套件 HDK 和 SDK提供更加高效、统一的开发及部署平台。
HDKShell Role的组合方式保证了Shell 的最轻量化和稳定性又兼顾了便捷性和灵活性 SDK一部分是 HDK 对应的主机端驱动Drivers与软件库Libraries另一部分是 FPGA 管理工具 faascmd 套件。驱动与软件库和 HDK 的 Shell 以及 Role 相对应和 HDK 一起为用户提供统一及灵活的软件支持。faascmd 工具套件则为用户提供云上 FPGA 管理服务包括 BIT/DCP 文件安全校验、FPGA 镜像生成、下载及管理、FPGA 加速卡状态查询反馈等功能。
4、 安全性创新
采用定制虚拟化技术达到 IP 加速与部署环境的强隔离IP 的用户与 IP 的网表文件完全隔离网表文件的传输、部署、加速流程全程对用户都不可见同时加速计算能力又可以透明的向使用该IP的客户开放。通过这个创新完全杜绝了 FPGA IP 在云上输出的时候被盗用、盗版的可能提供了非常高的安全保护机制。同时 IP 的拥有方可以通过阿里云的 KMS 加密服务对IP进行加密保护每次对 IP 加载前都需要向KMS 服务获取秘钥进行解密这样一来针对 IP 的使用下载有据可查并且使得 IP 发布方的 IP 在数据中心内部都是安全的因为没有了 IP 提供方的 KMS 秘钥即便是阿里云也无法对加密的网表进行解密操作。
原文链接 本文为阿里云原创内容未经允许不得转载。