2025 AI基础设施风向标,不看必后悔!#AI基础设施峰会 了解详情
写点什么

开发者预览版——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:00662

评论

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

python中find_element()和find_elements()的区别

Geek_6370d5

Python

银四30天,苦心啃透java高级工程师面试1000题,涨薪10K很难吗?

Java 编程 程序员 架构 面试

2021突击银四必备:BAT900道Java面试清单!免费开放

比伯

Java 编程 架构 面试 计算机

区块链溯源,茶叶溯源平台的搭建

13828808769

区块链+ #区块链#

Java程序员都要懂得知识点:反射

华为云开发者联盟

Java 对象 反射 class 函数

一次客户需求引发的K8s网络探究

京东科技开发者

云计算

Java 并发系列(二):DCL — Double Check Lock

TroyLiu

Java volatile 多线程 synchronized DCL

首站重庆聚焦智慧物流、呈现最新AI能力

百度大脑

AI 百度大脑

区块链溯源服务平台,区块链商品防伪溯源解决方案

13828808769

区块链+ #区块链#

智慧公安警务系统搭建,警务大数据可视化分析平台解决方案

13828808769

智慧城市

区块链溯源,茶叶溯源平台的搭建

13828808769

#区块链#

你真了解开源许可证吗?

郭旭东

开源

在开源的公链上实现隐私保护?静看NA公链 NAC公链创新之路应如何蜕变

区块链第一资讯

Python+OpenCV检测灯光亮点

不脱发的程序猿

Python OpenCV 28天写作 3月日更 检测灯光亮点

Rust从0到1-基础概念-注释

rust 代码注释

Java学习之路 -- Java怎么学?

秦怀杂货店

Java 编程 基础 书籍

中国唯一入选 Forrester 领导者象限,阿里云 Serverless 全球领先

Serverless Devs

阿里云 Serverless 云原生

【技术面对面】基于场景图的多物体图像生成技术

京东科技开发者

云计算

“广度”和“深度”,是我最终选择蚂蚁的理由

DT极客

面试官:说说JavaScript中的事件模型

我家有萌🐱

JavaScript 面试 大前端 js

EGG NETWORK阿凡提超级公链  EFT流量通证信息完全公开源

币圈那点事

Python基础之:Python中的异常和错误

程序那些事

Python Python3 程序那些事

实战案例丨分布式系统中如何用python实现Paxos

华为云开发者联盟

Python 算法 分布式系统 PAXOS 集群库

【签约计划】技术编辑能力考核成绩公布

InfoQ写作社区官方

签约计划 热门活动

Elasticsearch详细剖析

大数据技术指南

ES 3月日更

科技赋能城市建设,英特尔正式发布智慧社区解决方案参考架构

E科讯

百度飞桨中国行南京站开启!共研AI赋能产业新模式

百度大脑

百度 AI 飞桨

JVM-技术专题-Class文件加载虚拟机

码界西柚

JVM Class字节码

LDO和DC-DC有什么不同?如何选型?

不脱发的程序猿

28天写作 3月日更 LDO DC-DC 电源转换

Mongodb特定场景性能数十倍提升优化实践(记一次十亿级mongodb核心集群雪崩故障)

杨亚洲(专注MongoDB及高性能中间件)

MySQL 数据库 mongodb 架构 分布式数据库mongodb

一位入职蚂蚁金服,年薪180万的大佬扔给我的笔记,看完发现差距不止一点点!

Java架构追梦

Java 阿里巴巴 架构 面试

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