写点什么

开发者预览版——EC2 实例(F1)携手可编程硬件

  • 2019-11-19
  • 本文字数:2656 字

    阅读完需:约 9 分钟

开发者预览版——EC2实例(F1)携手可编程硬件

你是否曾经在通用型工具与专用型工具之间左右为难?通用型工具可以解决多种不同的难题,但却未必是特定问题的最佳解决选项。相反,专用型工具擅长处理特定问题,但工具的使用频率往往不会很高。


工程师们在设计架构及指令集时同样需要考虑这一问题。他们始终追求能在更加通用的工作负载范围内,提供更佳性能表现的解决方案。然而新型工作负载与工作条件不断涌现,只有定制化硬件才是性能最佳之选。这就要求我们在其中找到平衡点:是要极出色的性能水平,还是要保证以年甚至季度为周期进行衡量的开发生命周期?


走入 FPGA 时代

作为一种备受瞩目的解决方案,我们迎来了基于定制化硬件的现场可编程门阵列机制,或者简称为 FPGA。相较于单纯着眼于一种特定功能的专用型芯片,FPGA 拥有更为出色的灵活性。其能够在现场完成编程,而后再接入 PC 主板的插槽当中。每块 FPGA 中包含一组固定且数量可观的简单逻辑门。对 FPGA 进行编程“基本上”就是将这些逻辑门彼此对接,从而建立起必要的逻辑功能(包括 AND、OR 以及 XOR 等等)或者存储元素(触发器与移位寄存器)。不同于 CPU 的串行本质(即数个并行元素)以及固定大小的指令集与数据路径(通常为 32 位或 64 位),FPGA 能够以编程方式并行执行更多操作,而这些操作本身几乎不设任何宽度或者规模限制。


这种高并行模式非常适合用于构建定制化加速器,从而处理计算密集型工作负载。在经过有针对性的编程之后,FPGA 能够在基因组学、抗震分析、金融网络分析、大数据搜索以及加密算法及应用领域提供高达 30 倍的速度增量。


希望这些优势能够鼓励大家尝试利用 FPGA 加速您的应用程序!不过必须承认,要实现这样的效果,我们还需要克服一系列挑战。首先,FPGA 从传统角度讲属于大规模专用型系统的一类组件。大家无法单纯购买一款并将其接入自己的台式机。相反,实现 FPGA 型解决方案要求我们完成硬件原型设计、硬件设备构建、大规模生产以及漫长的销售与部署周期等筹备工作。漫长的实现时间会限制 FPGA 的适用性,这也意味着摩尔定律指导下的 CPU 类解决方案也许更具成本效益。


但我们相信,我们能够在这方面做得更好!

全新 F1 实例

现在,我们发布了全新 F1 实例的开发者预览版。除了构建应用及服务供您自己使用之外,大家也可以将其进行打包并在 AWS Marketplace 中出售并进行复用。总体而言,大家将能够避免使用 FPGA 支持型解决方案所带来的高昂资本投入与时间消耗,我们提供的方案将带来与其它类型软件相同的商业模式。大家将能够通过云工具设计您自己的逻辑、模拟方案以及验证流程,而后在数天之内将其推向市场。


F1 实例配备有英特尔 Broadwell E5 2686 v4 处理器(基本速度为 2.3 GHz,Turbo 模式下全核心可达 2.7 GHz,Turbo 模式下单核最高可达 3.0 GHz),最多 976 GiB 内存、最高 4 TB NVMe SSD 存储以及一到八块 FPGA,这意味着其能够为大家提供充足的资源以构建自己的核心 FPGA 逻辑。各 FPGA 专用于此实例,且以隔离方式确保在多租户环境下的不致相互影响。


下在来看该 FPGA 的具体规格(请注意,单一 F1 实例中最多可使用八块 FPGA):


  • Xilinx UltraScale+ VU9P,采用 16 纳米制程工艺制造。

  • 64 GiB ECC 保护内存,配合 288 位总线(四 DDR4 通道)

  • 专用 PCIe x 16 CPU 接口

  • 约 250 万逻辑元素

  • 约 6800 套数字信号处理(简称 DSP)引擎

  • 提供虚拟 JTAG 接口用于调试


在包含超过一块 FPGA 的实例当中,专用 PCIe 架构允许各 FPGA 共享同一套内存寻址空间并通过 PCIe Fabric 以最高每秒 12 GB 的单工速率实现彼此通信。单一实例中的各 FPGA 共同接入一套 400 Gbps 双向环状结构以实现低延迟水平与高传输带宽(大家需要定义自有协议以使用这项高级功能)。

FPGA 开发流程

作为这套开发者预览版中的组成部分,我们还提供 FPGA 开发者 AMI。大家可以在内存优化型或者计算优化型实例当中启动该 AMI,从而实现开发与模拟,而后利用 F1 实例进行最终调试及测试。



此 AMI 包含多款开发者工具,大家可以在 AWS Cloud 当中免费加以使用。您需要使用 VHDL 或者 Verilog 编写 FPGA 代码,而后利用Xilinx Vivado设计套件(当然也可以使用第三方模拟工具、高级语言编译器、图形编程工具以及 FPGA IP 库)对代码进行编译、模拟与验证。


下面来看一段简单 8 位计数器的 Verilog 代码示例:



虽然这些语言常被描述为使用类 C 语法,但这并不代表大家可以直接使用现有代码并通过重新编译将其应用于 FPGA 当中。相反,大家需要首先对 FPGA 编程模式进行深入了解,学习布尔代数,而后掌握传播延迟与时钟脉冲边沿等概念。在此基础之上,大家才能够开始考虑将 FPGA 引入您的业务环境。如果这些底层知识对您来说太过艰深,大家亦可使用各类现有高级综合工具,包括 OpenCL 等,进行 FPGA 编程。


在启动自己的实例后,我进行登录、安装多款软件包并设置许可管理器,而后即可运行 Vivado 工具。接下来,我 RDP 到桌面,打开一个终端窗口并以 GUI 模式启动 Vivado:



我随后打开该示例项目(counter.xpr),这就是我初次尝试后的 FPGA 设计与开发成果:



在一番探索之后,我了解了如何建立自己的首个 FPGA(其实我基本上就是到处点点并了解其作用; 我本人在这方面甚至连新手都算不上):



从这里开始,我可以测试自己的设计并将其打包为 Amazon FPGA 镜像(简称 AFI),而后将其运用在自有应用或者发布至 AWS Marketplace 当中。我还将继续摸索,希望能用几周时间弄清一切并向大家汇报。

F1 硬件开发工具包

在了解了 F1 实例之后,我的第一个问题是如何处理 FPGA、CPU 以及主内存之间的接口。F1 硬件开发工具包(简称 HDK)当中包含多款预配置 I/O 接口及示例应用,适用于包括主机到 FPGA、FPGA 到内存以及 FPGA 到 FPGA 等的多种通信方法。其还提供编译脚本、参考示例以及一套现场调试工具。这套工具包可供 F1 开发者预览版的各位用户随意使用。


总结评述

总体来讲,F1 实例、云开发工具与相关功能的结合共同实现了独特且强大的 FPGA 型应用方案。FPGA 模式的强大性能及灵活性如今已经可供每位 AWS 用户使用; 可以肯定,这将激发出前所未有的应用方式与企业业务实现途径。

预览版现已上线!

正如之前提到,全新 F1 实例现已在美国东部(北弗吉尼亚州)区域推出开发者预览版(我们还将在 2017 年年初将该实例的正式版本推向其它服务区)。如果大家此前拥有 FPGA 编程经验并对 F1 实例很感兴趣,请访问:


https://aws.amazon.com/ec2/instance-types/f1/


马上报名加入。


本文转载自 AWS 技术博客。


原文链接:https://amazonaws-china.com/cn/blogs/china/developer-preview-ec2-instances-f1-with-programmable-hardware/


2019-11-19 08:00577

评论

发布
暂无评论
发现更多内容

科大讯飞p30和x3pro选哪个好

妙龙

科大讯飞 学习机

Python如何用PyModbus库进行Modbus TCP通信

我再BUG界嘎嘎乱杀

Python 编程 后端 开发语言

官宣定档!2025杭州安防展览会(浙江安博会)定于4月召开

AIOTE智博会

安博会 浙江安博会

中微公司就被列入中国军事企业清单正式起诉美国国防部

新消费日报

豆瓣评分9.4!Python程序员必读的《流畅的Python》,放这里了!

我再BUG界嘎嘎乱杀

Python 编程 后端 开发语言

SD-WAN怎样降低异地组网延迟

Ogcloud

SD-WAN SD-WAN组网 SD-WAN服务商 异地组网 SDWAN

Magnet for mac(macOS窗口管理软件)中文免激活版

Mac相关知识分享

交互原型设计软件中文激活版Axure RP 9 for Mac

Mac相关知识分享

锁定PPT图片不被移动!2个PPT使用技巧分享!

职场工具箱

效率 职场 PPT 办公软件 效率软件

亮相2024 DPU&AI Networking创新大会,天翼云斩获两项大奖!

天翼云开发者社区

人工智能 云计算 天翼云

微信私域&SEO运营神器,9款RPA机器人上线

八爪鱼采集器︱RPA机器人

微信 RPA 自动化 RPAxAI

昆仑万维发布 AI 流媒体音乐平台 Melodio;Grok-2 Beta 发布,可在 X 上生成图像丨 RTE 开发者日报

声网

大模型,不是消费电子的救星

脑极体

AI

数字先锋| 千里之行,“驶”于云上!

天翼云开发者社区

云服务 云平台 天翼云

宝尊将于2024年8月28日发布2024年二季度及中期未经审计财务业绩

财见

深入探索京东JD商品详情API返回值结构

技术冰糖葫芦

API Explorer平台 API Explorer API 接口 API 测试

【YashanDB知识库】YMP元数据阶段二报错YAS-04204

YashanDB

yashandb 崖山数据库 崖山DB

金融行业实时湖仓建设实践与思考

镜舟科技

大数据 数据仓库 金融 StarRocks 湖仓

UE虚幻云渲染未来趋势与挑战分析

3DCAT实时渲染

实时云渲染 虚幻引擎云渲染 UE云渲染

Mac思维导图软件MindNode for mac中文激活版

Mac相关知识分享

思维导图

[Paper Reading]SWE-Bench: Can Language Models Resolve Real-World Github Issues?

吴京

benchmark agent LLM Coder

面试官:JDK中都用了哪些设计模式?

王磊

Java

安全、高效!天翼云HPFS助企业一臂之力!

天翼云开发者社区

云服务 天翼云 并行文件服务

云解析DNS是什么意思?和普通的DNS有什么区别?

国科云

微软Copilot 被曝数据泄露,AI 助手是汗血宝马还是特洛伊木马?

极狐GitLab

GitHub AI gitlab Copilot 驭码CodeRider

Go语言中使用sqlx来操作事务

左诗右码

关于代购系统的全面解析

Noah

5大低代码开源平台案例研究

NocoBase

开源 低代码 开发平台 案例研究

python多继承的3C算法是什么?怎么用?

我再BUG界嘎嘎乱杀

Python 编程 后端 多继承 3C算法

科大讯飞p30和作业帮p20区别对比评测

妙龙

科大讯飞 学习机

HBlock 存储资源盘活系统:企业降本增效与绿色转型的新引擎

老壳有点爽

HBlock

开发者预览版——EC2实例(F1)携手可编程硬件_语言 & 开发_Q资讯_InfoQ精选文章