FPGA资源平民化的新晋- F3 技术解析

摘要: FPGA (现场可编程门阵列)由于其硬件并行加速能力和可编程特性,在传统通信领域和IC设计领域大放异彩。一路走来,FPGA并非一个新兴的硬件器件,由于其开发门槛过高,硬件加速算法的发布和部署保护要求非常高,FPGA的使用一直是高冷的美人,没有走入平常百姓家。

FPGA (现场可编程门阵列)由于其硬件并行加速能力和可编程特性,在传统通信领域和IC设计领域大放异彩。一路走来,FPGA并非一个新兴的硬件器件,由于其开发门槛过高,硬件加速算法的发布和部署保护要求非常高,FPGA的使用一直是高冷的美人,没有走入平常百姓家。也就导致FPGA的计算潜力还没有得到深入的挖掘。

阿里云虚拟化团队异构计算和高性能计算团队一直致力于将计算资源"平民化";高性能计算团队在做的E-HPC就是要让所有云上用户都能够瞬间拥有一个小型的超算集群,使得使用超算不再仅仅是一些超算中心和高校的特权;而异构计算团队则致力于将目前最快,最新的计算设备在云上提供给用户,使得曾经高冷的计算资源不再拒人千里之外:推出了FPGA云服务器FaaS 服务,其中的F1和F2实例已经对外提供服务,可以通过一键部署的方式把Intel和Xilinx的小规格的器件计算能力赋予客户。

2018年5月,新晋的大规格FPGA实例,基于Xilinx 16nm Virtex UltraScale+ 器件VU9P的实例F3正式发布。下面将对阿里云FPGA计算(下面简称FaaS)服务本身,以及这次发布的F3实例的底层硬件架构和平台架构进行技术解读。
FaaS
阿里FPGA云服务器平台FaaS(FPGA as a Service)在云端提供统一硬件平台与中间件,可大大降低加速器的开发与部署成本。加速器开发商的加速器可以形成服务提供给加速器用户,消除加速技术与最终用户的硬件壁垒。用户则能够在无需了解底层硬件的情况下,直接按需使用加速服务。

为了给加速器提供方和使用方提供更加高效、统一的开发及部署平台,FaaS提供两大套件:HDK和SDK。


HDK


HDK给所有的加速器开发者提供统一的FPGA硬件接口,提前帮用户解决了FPGA开发中难度最大的高速接口开发及调试,例如PCIe、SERDES接口、DDR控制器等等;使得用户能够直接得到硬件平台和FPGA接口的最大性能,不会因为团队开发能力和经验的欠缺,造成硬件平台性能浪费;高效、可靠、统一的接口套件也为云上平台的安全隔离、设备稳定提供了保障,不会因为用户的接口设计问题,造成服务器宕机;同时可以杜绝用户在FPGA端对主机的非法操作,为整个云上安全提供保障。

HDK包括两个部分,Shell和 Role;Shell部署在静态区域,提供上述统一接口部分。
在提供统一接口、安全性和便捷性的前提下,阿里云FaaS HDK 也尽最大的努力保证用户设计的灵活性,Role的概念应运而生。Role部署在动态区域,是在Shell之外,预先开发并提供的,用户可以配合用户逻辑(Customer Logic)使用。不同于Shell,用户可以根据需要,随时更换Role部分;这种Shell + Role的组合方式,保证了Shell的最轻量化,兼顾了统一性、便捷性和灵活性。

SDK


SDK包括两个部分:
 和HDK(Shell+Role)对应的主机端驱动(Drivers)和软件库(Libraries)
 FPGA管理工具 faascmd套件

驱动和软件库和HDK的Shell以及Role相对应,和HDK一起,为用户提供统一及灵活的软件支持,比如DMA驱动、寄存器访问驱动等等。

faascmd工具套件为用户提供云上FPGA管理服务,包括安全校验、FPGA镜像生成、下载及管理、FPGA加速卡状态查询反馈等功能。公有环境使用FPGA,需要考虑用户FPGA文件的安全,faascmd提供的秘钥及OSS bucket指定机制,有效保证了用户的FPGA下载文件的私密性。在线下的开发及应用中,开发者直接对FPGA进行下载操作,但在云上环境,用户对公有的FPGA资源直接操作对安全造成较大影响。Faascmd工具会对用户操作申请和物理FPGA资源进行隔离,但保证了用户下载安全的同时,提供给用户类似线下操作的体验;同时会对用户提交的网表进行校验,提高安全、降低风险。faascmd同时也提供调用接口,用户能很容易的在自己的App中调用管理工具,结合自身加速器特性实现各种管理功能。

FaaS 的IP市场


FaaS帮助降低了FPGA逻辑开发者开发的准入门槛:云上即开即用的FPGA资源,灵活的付费模式使得硬件资源触手可及;FPGA的逻辑开发上,简化了开发流程,统一了开发接口,把核心加速逻辑从周边硬件设备的接口调试中隔离出来,使得FPGA的新兴应用可以只关注业务加速的核心逻辑,快速迭代;在这两点上,阿里云的FaaS 迈出了FPGA资源平民化的第一步。

但是即便是大大简化的开发流程,触手可及的硬件资源,FPGA依然有一定的开发门槛。如何把已有的FPGA 逻辑IP价值最大化,联通FPGA加速的需求方和提供方呢?重要的一点就是如何解决在公共云数据中心层面保证FPGA加速IP的安全性,特别是对不可信的第三方进行输出和部署这个难题, FaaS是如何解决这个问题的呢?

答案是通过阿里云的FaaS的IP市场。技术上,通过与Xilinx联合开发的定制虚拟化技术达到IP加速与部署环境的强隔离,IP的用户对原始IP的网表文件完全隔离,网表文件的传输,部署,加速流程全程对用户都不可见,同时加速计算能力又可以透明的向IP使用方第三方用户开放,这是阿里云在FPGA云上加速服务另外一个技术创新。这个创新,完全杜绝了FPGA IP在云上输出的时候被盗版的可能,提供了非常高的安全保护机制。

更加严格的保密机制也在规划中:很快可以通过阿里云的KMS加密服务对IP进行加密保护,每次对IP加载前都需要向KMS服务获取秘钥解密,这样一来针对IP的使用下载有据可查;并且使得IP发布方的IP在数据中心内部都是安全的,因为没有了IP使用方的KMS秘钥,即便是阿里云也无法对原始的网表进行解密操作。

在阿里云FaaS IP 市场的帮助下,即便是从来没有任何FPGA开发经验的用户,也可以一键从IP市场中获取相应的加速逻辑,并部署到对应的FPGA器件上面去。相信通过即开即用的硬件资源,统一的软硬件逻辑开发接口和IP市场,阿里云能够真正实现FPGA计算资源平民化的承诺。


F3硬件架构


阿里云FaaS的F3实例在底层硬件上,是使用阿里云自主研发的高性能单卡双芯片的VU9P的板卡。这里要划重点啦:单卡双芯片。一定有用户要问为什么要这么设计呢?单卡双芯片的硬件设计有什么好处呢?

首先,对于用户来说,通过单卡双芯片的这样的规格设计,与阿里云配套自研的服务器一起,最高可以提供单实例16 块 VU9P的计算实例。16块 VU9P这是非常高的计算密度了,这是设计单卡双芯片的第一个目的:通过提高计算密度,在同等计算单元下集成了更多的加速芯片,能够有效降低单位计算力的成本,从成本和单位实例的垂直计算力提升上客户可以双重受益。

单卡双芯片的两个VU9P芯片通过PCIe 桥接入系统,那么双芯片之间的互相通信呢?是不是只能通过PCIe的总线来进行呢,答案是否定的,除了FPGA Direct这种通过PCIe互相通信的能力之外,在阿里云的自研的板卡上也是有特殊考虑的。在两个芯片之间,设计了一个高速互联通道,使得两个FPGA之间可以通过这个特殊的通道以高达600Gb/s的速率进行通信,这个通信技术称之为FPGA Link。要知道,现在的数据中心主流部署的接入交换机光口通信也只能达到100Gb/s的通信速率,更高的200Gb/s的交换机还在试部署中。

试想一下,无需额外的交换机和光口硬件,两个FPGA芯片可以通过FPGA Link技术以超短时延通过6倍于主流光口通信的速率进行通信,这个将会以极低的成本帮助用户开启大量新的FPGA加速应用模式。比如,小规模的芯片仿真,需要两个器件才能部署的下的情况,可以将整体仿真模块拆解之后部署到两个芯片上,两个芯片之间的数据通路和同步信号通过高速通道互联;还有其他的应用场景,需要把功能模块部署到两个FPGA芯片之上,而两者之间需要大量的数据交换,比如视频转码场景:把小规模但是模块数目比较多的解码单元、视频处理单元部署到一个FPGA之上,把面积占用比较多的编码单元放到另外一个FPGA上,编解码模组之间通过高速互联交换裸视频流。这将大大改善部署的难度,以及极大的解耦两个模块之间的相互依赖和设计难度。以上举了两个例子,读者一定能够举一反三的想到,其他需要流水线处理并需要大量数据交换的场景,阿里云的F3实例的双芯片实例能够为客户提供最大的价值。

不少应用场景对板载的DDR存储还是有要求的。阿里云的F3实例,为每个FPGA搭配了客户可见的64GB的DDR内存,这64GB的DDR分成4个通道,分别连接到VU9P的3个硅单元上面,其中一个通道对应的16GB DDR保留常驻,其余3个通道对应的48GB存储以可选的方式可以被客户逻辑加载使用。

目前,看到了双芯片实例除了FPGA Direct技术和高达600Gb/s的FPGA Link高速互联能力之外,另外值得一提的是:双芯片的实例与其他的双芯片实例板卡之间也可以通过400Gb/s的光口进行互联,而且400Gb/s的以太协议驱动是通过Xilinx预置的MAC硬核来加速,不占用逻辑面积;通过以太或者自定义的轻量级通信协议,能够在16芯片之间,以及更多的芯片之间搭建2维Mesh或者环形互联,进一步扩展多片互联的使用模式和应用场景。

最后,上一张图,让大家对上面做的硬件的技术解析有一个相对更具体的认识。

F3逻辑结构
F3逻辑结构,先给大家上一幅图:

  • SHELL和ROLE概念
    SHELL:

Shell是FPGA的静态区域,内部包含用户PCIe、管理PCIEe、板卡管理系统和一个DDR访问通道。为了提高板卡的安全和稳定性,用户无权修改SHELL区域。

ROLE:
在设计中提出了Role的概念,Role和Shell是类似的封装。而Role跟Custom Logic一起在动态区域。Role的提出,可以更加轻量化Shell。通过Role实现了同一个Shell既可以支持OpenCL开发,也可以支持RTL开发;最后就是Role的再次抽象降低了用户对于FPGA的开发门槛。我们提供基础的Role,也允许用户自行设计Role。我们希望更多第三方的设计者通过分享自己Role,使得FaaS平台更加精彩.

ROLE内部结构简介


Interconnect:该部分主要是提供给用户四路DDR通道的访问和USER_PCIe对四路DDR通路的访问。 该模块帮助用户隔离了时钟域,使用户逻辑在同一个时钟域上对4路DDR通道进行访问。
Inter chip interconnect: FPGA 单卡双芯片间互联通路;
Card interconnect: FPGA 卡间互联通路;
Custom Logic:用户自定义逻辑部分;

  • Custom Logic介绍

用户逻辑是属于Role的一部分,属于动态加载区域。 为了方便用户标准化使用,我们在RTL设计中使用了标准的AXI-4和AXI-LITE接口。

<a href=""http://click.aliyun.com/m/50325/">原文链接

本文为云栖社区原创内容,未经允许不得转载。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521755.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue计算属性、方法、侦听器

文章目录一、基础计算模板二、计算属性computed三、方法methods四、侦听器watch五、总结六、源码地址一、基础计算模板 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Vue计算属性、方法、侦听器<…

漫画:五分钟看懂车联网

戳蓝字“CSDN云计算”关注我们哦&#xff01;福利扫描添加小编微信&#xff0c;备注“姓名公司职位”&#xff0c;加入【云计算学习交流群】&#xff0c;和志同道合的朋友们共同打卡学习&#xff01;推荐阅读&#xff1a;华为 | 泰山之巅 鲲鹏展翅 扶摇直上九万里聊聊我是如何在…

对数据科学家来说最重要的算法和统计模型

摘要&#xff1a; 本文提供了工业中常用的关键算法和统计技术的概要&#xff0c;以及与这些技术相关的短缺资源。作为一个在这个行业已经好几年的数据科学家&#xff0c;在LinkedIn和QuoLa上&#xff0c;我经常接触一些学生或者想转行的人&#xff0c;帮助他们进行机器学习的职…

华为愿出售5G技术渴望对手;苹果将向印度投资10亿美元;华为全联接大会首发计算战略;腾讯自研轻量级物联网操作系统正式开源……...

戳蓝字“CSDN云计算”关注我们哦&#xff01;嗨&#xff0c;大家好&#xff0c;重磅君带来的【云重磅】特别栏目&#xff0c;如期而至&#xff0c;每周五第一时间为大家带来重磅新闻。把握技术风向标&#xff0c;了解行业应用与实践&#xff0c;就交给我重磅君吧&#xff01;重…

数组元素反序

和前面的字符串逆向输出有异曲同工之妙 第一位和最后一位交换位置&#xff0c;然后用比大小循环 那么接下来修改一下这个程序&#xff0c;我们接下来解释一下p的概念 画图解释&#xff1a; 在最前面的 定义的时候&#xff0c;我们将p&#xff08;0&#xff09;定义在了1上&…

如何计算Java对象所占内存的大小

摘要&#xff1a; 本文以如何计算Java对象占用内存大小为切入点&#xff0c;在讨论计算Java对象占用堆内存大小的方法的基础上&#xff0c;详细讨论了Java对象头格式并结合JDK源码对对象头中的协议字段做了介绍&#xff0c;涉及内存模型、锁原理、分代GC、OOP-Klass模型等内容。…

hilbert谱 matlab,怎么在matlab中做信号hilbert边际谱分析

摘要&#xff1a;传统的数字滤波器的设计过程复杂&#xff0c;计算工作量大&#xff0c;滤波特性调整困难&#xff0c;影响了它的应用。本文介绍了一种利用MATLAB信号处理工具箱(Signal Processing Toolbox)快速有效的设计由软件组成的常规数字滤波器的设计方法。给出了使用MAT…

时间序列数据的处理

摘要&#xff1a; 随着云计算和IoT的发展&#xff0c;时间序列数据的数据量急剧膨胀&#xff0c;高效的分析时间序列数据&#xff0c;使之产生业务价值成为一个热门话题。阿里巴巴数据库事业部的HiTSDB团队为您分享时间序列数据的计算分析的一般方法以及优化手段。演讲嘉宾简介…

saas java框架_XMReport-提供web项目Java套打解决方案

简介XMReport是国内首款支持在线编辑&#xff0c;维护的控件式报表产品。XMReport报表产品分为设计器与引擎两个部分&#xff0c;其中报表设计器是完全基于HTML5技术&#xff0c;提供优秀跨平台的支持&#xff0c;用户无需安装客户端或者插件&#xff0c;仅使用浏览器即可进行报…

只有程序员才能读懂的西游记

戳蓝字“CSDN云计算”关注我们哦&#xff01;这其实一个有关计算机网络协议的故事一、我佛造经传极乐话说我佛如来为度化天下苍生&#xff0c;有三藏真经&#xff0c;可劝人为善。就如图中所示&#xff0c;真经所藏之处&#xff0c;在于云端。佛祖所管辖之下&#xff0c;有四个…

Logtail从入门到精通(四):正则表达式Java日志采集实战

摘要&#xff1a; 为简化日志接入门槛&#xff0c;我们提供了极简模式的日志解析方式&#xff08;如[开启日志采集之旅]()中的介绍&#xff09;。为了更好的对日志进行分析&#xff0c;我们还提供了其他解析方式&#xff0c;例如&#xff1a;分隔符模式、完整正则模式、JSON模式…

Vue中的条件渲染

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Vue中的条件渲染</title><!--引入vue.js库--><script src"../vue.js"></script> </head><body> <d…

多隆:淘宝第一行代码撰写者的程序世界

他2000年加入阿里巴巴&#xff0c;是淘宝的创始人之一&#xff0c;是阿里内部公认的技术大牛&#xff0c;在阿里内网上他被贴得最多的标签就是“神”。在第二届研发效能嘉年华中他将在“向代码致敬&#xff0c;寻找83行代码”活动颁奖盛典中华丽现身&#xff0c;他就是“码神”…

通信工程到底要不要转专业?

戳蓝字“CSDN云计算”关注我们哦&#xff01;一年一度的大学新生报名季又开始了。各地高校陆陆续续迎来了新同学&#xff0c;有的甚至已经开始了军训。每年看到这些怀揣着梦想的年轻面孔&#xff0c;小枣君就非常感慨——时光飞逝&#xff0c;岁月无情&#xff0c;自己的青春&a…

真相!30K拿到互联网大厂offer,网友:我服了!

最近笔者在知乎刷到一个帖子&#xff0c;其中&#xff0c;这条回答让人印象深刻&#xff1a;其实&#xff0c;最近几年人工智能大火&#xff0c;其中深度学习岗位的薪酬爆增&#xff0c;BAT大厂高薪招聘AI人才&#xff0c;收到的简历却寥寥无几&#xff1f;究竟是大厂岗位要求高…

鸿蒙 OS 的到来,能为我们改变什么?| 程序员大本营9月刊

作者 | 屠敏出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;「鸿蒙初辟原无姓&#xff0c;打破顽空需悟空」&#xff0c;在国产自研操作系统短缺的窘境之下&#xff0c;天惊一声雷&#xff0c;「鸿蒙」踏风来。回首上个月的技术圈&#xff0c;最值得业界浮称流说的…

注释那些事儿:前端代码质量系列文章(一)

摘要&#xff1a; 好的注释可以提高代码的可读性和可维护性&#xff0c;从而提高代码质量。那么什么是好的注释&#xff1f;如何写出好的注释&#xff1f;“Comment or not comment, that is the question”好的注释可以提高代码的可读性和可维护性&#xff0c;从而提高代码质量…

linux 给普通用户赋予最高权限

文章目录一、创建新用户二、给新用户设置密码三、赋予sudoers文件写的权限四、编辑sudoers文件五、删除sudoers文件写的权限一、创建新用户 useradd know二、给新用户设置密码 passwd know三、赋予sudoers文件写的权限 chmod uw /etc/sudoers四、编辑sudoers文件 vim /etc/…

php裁剪图片并上传源码,改写jcrop插件+php的图片上传实现与裁剪一体化

1.图片上传后立刻判断图片的宽和高是否超过预设的最大高度与宽度&#xff0c;超过了则生成缩略图&#xff0c;2.图片裁剪使用的是jquery的裁剪插件Jcrop,可以实现裁剪的即时预览&#xff0c;代码没有优化&#xff0c;会生成很多垃圾图片&#xff0c;欢迎大家一起改进&#xff0…

人工智能和机器学习的前世今生

摘要&#xff1a; 阅读本文以了解更多关于人工智能、机器学习和深度学习方面的知识&#xff0c;以及它们对商业化意味着什么。如果正确的利用模式识别进行商业预测和决策&#xff0c;那么会为企业带来巨大的利益。机器学习&#xff08;ML&#xff09;研究这些模式&#xff0c;并…