作者:腾讯云 FPGA 团队

前景

随着 AI 这股热潮的发展,业界对人工智能发展的热情逐渐高涨,人工智能也成为了未来发展的趋势。中小型企业也期望搭上人工智能这辆列车。

过去,中小企业部署 FPGA 面临诸多问题:FPGA 硬件成本高、灵活性差、一次性采购投入大,需要高昂的费用和巨大精力进行 FPGA 的定制和采购, FPGA 硬件交易价格不透明,为保障服务稳定需高额的运维 IT 成本,并需配备相应的硬件工程师和软件工程师。

同时企业接下来还会面临 FPGA 芯片更新换代带来的资源闲置流转问题。虽然 FPGA 知识产权(FPGA IP,FPGA Intellectual Property)提供了业务所需的硬件加速功能,但研发周期长,研发投入和风险高,令诸多企业望而却步。

FPGA 是什么

人工智能包括三个要素:算法,计算和数据。人工智能算法目前最主流的是深度学习。计算所对应的硬件平台有:CPU、GPU、FPGA、ASIC。由于移动互联网的到来,用户每天产生大量的数据被入口应用收集:搜索(百度)、通讯(QQ、微信)。我们的 QQ、微信业务,用户每天产生的图片数量都是数亿级别,如果我们把这些用户产生的数据看成矿藏的话,计算所对应的硬件平台看成挖掘机,挖掘机的挖掘效率就是各个计算硬件平台对比的标准。

通用处理器(CPU)可提供高度的灵活性和易用性,可以低廉的价格生产,并且适用于多种用途和重复使用。但性能相对缺乏效率。

专用集成电路(ASIC)可提供高性能,但代价是不够灵活且生产难度更大。这些电路专用于某特定的应用程序,并且生产起来价格昂贵且耗时。

从灵活性而言,介于 CPU 和 ASIC 两者之间的处理器,使用比较多的异构处理器目前有两个,一个是 GPU,一个是 FPGA。

FPGA 属于一类更通用的可编程逻辑设备(PLD), FPGA 既能提供集成电路的性能优势,又具备 CPU 可重新配置的灵活性。简单来说,FPGA 是一种可重新配置的「通用集成电路」。

GPU 的灵活性是介于 FPGA 与 CPU 之间。GPU 的核心数量一般是 CPU 的成百上千倍,计算能力要比 CPU 多出几个数量级,也更适合进行并行计算。但是如果计算里面有大量的分支,或者算法的数据前后存在依赖关系,使得算法无法并行运行,则 GPU 的性能优势会被大大减弱。

相比 GPU,FPGA 的可操控粒度更小,具备更高的灵活度和算法适应性。FPGA 能够简单地通过使用触发器(FF)来实现顺序逻辑,并通过使用查找表(LUT)来实现组合逻辑。当算法需要并行计算能力时,可以将大部分的逻辑资源都用来做计算,达到更高的计算效率;当算法需要更多的控制流程时,可以将大部分的逻辑资源都用来做控制。(实际的 FPGA 内部也存在大量的硬核来完成固定的功能)。正是基于 FPGA 资源的高可控度,可以带来算法实现时的灵活度。

FPGA 全称「可编辑门阵列」(Field Programmable Gate Array),其基本原理是在 FPGA 芯片内集成大量的数字电路基本门电路以及存储器,而用户可以通过烧写 FPGA 配置文件来来定义这些门电路以及存储器之间的连线。这种烧入不是一次性的,即用户今天可以把 FPGA 配置成一个图像编解码器,明天可以编辑配置文件把同一个 FPGA 配置成一个音频编解码器,这个特性可以极大地提高数据中心弹性服务能力。所以说在 FPGA 可以快速实现为深度学习算法开发的芯片架构,而且成本比设计的专用芯片(ASIC)要便宜,当然性能也没有专用芯片(ASIC)强。ASIC 是一锤子买卖,设计出来要是发现哪里不对基本就没机会改了,但是 FPGA 可以通过重新配置来不停地试错知道获得最佳方案,所以用 FPGA 开发的风险也远远小于 ASIC。

处理器 优点 缺点
通用处理器(CPU) 高度的灵活性和易用性,可以低廉的价格生产,并且适用于多种用途和重复使用 性能相对缺乏效率
专用集成电路(ASIC) 高性能 不够灵活,生产难度更大
图形处理器(GPU) 更适合进行并行计算 如果计算里面有大量的分支,或者算法的数据前后存在依赖关系,使得算法无法并行运行,则 GPU 的性能优势会被大大减弱。
可编辑门阵列(FPGA) 提供集成电路的性能优势,又具备 CPU 可重新配置的灵活性, 可操控粒度更小,具备更高的灵活度和算法适应性 性能没有专用芯片(ASIC)强

腾讯云国内首发 FPGA

1 月 20 日,腾讯云推出国内首款高性能异构计算基础设施——FPGA 云服务器,以云服务方式将大型公司才能长期支付使用的 FPGA 推广到更多企业。

腾讯云带来的革命性进展是:将 FPGA 部署时间从数月缩短到数分钟,企业可按需付费使用 FPGA,极大降低 FPGA 的使用成本,实现高性能 FPGA 硬件加速处理。企业可以通过 FPGA 云服务器进行 FPGA 硬件编程,可将性能提升至通用 CPU 服务器的 30 倍 以上。同时腾讯云率先在国内提供第三方 FPGA 知识产权市场,通过腾讯云服务市场,FPGA 开发者和使用者可以更高效地交易。

长期以来,FPGA 行业内的提供者和使用者一直缺乏交易平台和信用保证,导致交易环节冗长,很难达成交易。腾讯云服务市场搭建一个简单可靠的 FPGA 知识产权交易市场。

对于 FPGA 使用者而言,可以在腾讯云服务市场购买已开发并验证好的 FPGA 知识产权功能,可节约长达数月的 FPGA 研发周期,同时采用按需使用付费的模式,能最大化地节省硬件投入成本。

而 FPGA 开发者可以通过使用腾讯云 FPGA 的开发框架,显著提升研发效率,更专注于核心功能开发,将图像处理功能、深度学习功能等已有的成熟 FPGA 知识产权通过简单封装适配,集成并投放到腾讯云服务市场,开放给 FPGA 使用者使用,分摊 FPGA 知识产权的研发成本。

FPGA 应用案例

FPGA 应用案例一

  • 项目背景:
    随着移动互联网的发展,基于用户社交平台的腾讯每天用户上传的图片越来越庞大,公司目前用于图片转码的业务主要有 QQ 相册、微信及其他业务。图片格式中有 JPEG 格式、WEBP 格式等,WEBP 图片格式比 JPEG 图片格式存储空间小 30%。如果落地存储采用 WEBP 格式替代 JPEG 格式,可以减少三分之一存储空间;而传输分发用 WEBP 格式,还可以降低传输流量,从而提升用户的图片下载体验。而采用 WEBP 的问题在于 WEBP 压缩计算复杂度是 JPEG 压缩的 10 倍以上,采用 CPU 进行 WEBP 转码成本很高,导致很难在业务中全面推广。为了增强图片转码能力,我们使用 FPGA 对图片转码进行加速。
  • 项目结果:
    完成 JPEG 格式图片转成 WEBP 格式图片,测试图片大小为 853x640,FPGA 处理延时相比 CPU 降低 20 倍 ,FPGA处理性能是CPU机器的 6 倍 ,FPGA机型单位成本是 CPU 机型的 1/3

表1. FPGA 和 CPU 的计算性能对比

机型 CPU E3-1230 V2 @3.3GHz FPGA
延时ms 1170 60
吞吐率(张/s) 20 133
成本对比 1.00 0.33

FPGA 应用案例二

  • 项目背景:
    传统上,Google、百度等搜索引擎公司以 Logistic Regression(LR)作为预估模型。早在 2012 年开始,百度开始尝试将 DNN 算法作用于搜索广告,并在2013 年 5 月就开始服务于百度搜索广告系统。近年来异军突起的今日头条在技术上也使用了 DNN 算法,提高新闻的点击率。但是 DNN 算法对系统的计算量明显增大,如果还是用 CPU 进行计算,无法满足系统的延时和吞吐率要求。
    DNN 算法模型为 17*200*20*1 的 4 层模型,要求 4000 个样本的 DNN 计算时延要小于 5ms。如果用 CPU 计算,B6(CPU E5-2620 X 2) 机器的计算时延为 120.55ms*,无法满足要求(计算时间见表2)。因此,我们用 FPGA 对 DNN 计算进行加速,使 4000 个样本的 DNN 计算时延小于 5ms。
  • 项目结果:
    我们在使用 50% 的 FPGA 资源的情况下,将 4000 个样本的 DNN 计算时延减小为 1.2ms,吞吐率达到 6000 集合/s(4000 个样本为 1 个集合),不仅达到了系统对低延时的要求,而且极大地提高了系统的吞吐能力,处理延时降低 100 倍,处理吞吐率提高 5 倍,成本是 CPU 机型的 1/5。说明 FPGA 在 DNN 计算加速上有较明显的优势。

表2. FPGA 和 CPU 的计算性能对比

机型 CPU E5-2620 x2 FPGA
延时ms 120.55 1.2
吞吐率(集合/s) 1200 6000
成本对比 1.00 0.2

FPGA 应用案例三

  • 项目背景:
    深度学习(DL)近年来在语音识别、图片分类和识别、推荐算法等领域发挥了越来越大的作用。深度学习基于深度神经网络理论,用在图片分类的神经网络是其中的一个分支:卷积神经网络(CNN)。随着移动互联网的发展,基于用户社交平台的腾讯每天用户上传的图片越来越庞大,并且增长速度很快。为了增强图片检测的处理能力,降低图片检测成本,我们使用 FPGA 对 CNN 计算进行加速。
  • 项目结果:
    FPGA 完成 CNN 算法的 Alexnet 模型,FPGA 处理性能是 CPU 机器的 4 倍,FPGA 机型单位成本是 CPU 机型的 1/3

小结

当前 AI 火爆,得益于 FPGA 的高密度计算能力以及低功耗的特性,FPGA 率先在深度学习在线预测方向(广告推荐、图片识别、语音识别等)得到了较大规模的部署。

用户也常常将 FPGA 与 GPU 进行对比,GPU 的易编程性、高吞吐与 FPGA 的低功耗、易部署等特性也各有千秋。相较于 GPU 以及 ASIC,FPGA 的低延时以及可编程性也是其核心竞争能力。

使用腾讯云 FPGA 云服务,你只需单击几下即可在几分钟内轻松获取并部署你的 FPGA 计算实例。你可以在 FPGA 实例上编程,为你的应用程序创建自定义硬件加速。我们为你提供可重编程的环境,可以在 FPGA 实例上多次编程,而无需重新设计硬件,让你能更加专注于业务发展。

文章来源于腾讯云开发者社区,点击查看原文