FPGA+CPU助力数据中心实现图像处理应用体验与服务成本新平衡

Wesley13
• 阅读 567

FPGA+CPU助力数据中心实现图像处理应用体验与服务成本新平衡

图片逐渐成为互联网主要的内容构成,相应的图片处理需求也在高速成长,移动应用与用户生产内容(UGC)正在驱动数据中心图像处理的业务负载快速增加。 本文深维科技联合创始人兼CEO樊平详细剖析了图片加速的必要性、当前实际的图片解决方案与部署方式以及如何通过FPGA+CPU异构计算的方案维护用户体验与服务成本新平衡。

文 / 深维科技樊平

整理 / LiveVideoStack

1. 为什么需要图片加速?

FPGA+CPU助力数据中心实现图像处理应用体验与服务成本新平衡

目前,图片处理的需求正在快速成长,即源于用户生成内容、视频图片抓取等方式的图片缩略图生成,像素处理,图片转码、智能分析处理需求不断增加。 众多应用迫切需要高性能,高性价比的图片处理解决方案。

FPGA+CPU助力数据中心实现图像处理应用体验与服务成本新平衡

在这种情况下,数据中心面临着一个核心的考验 —— 即用户体验与服务成本之间的平衡。 总地来说,目前存在的纯CPU处理方案,TCO(服务器、电费、带宽、场地人员 成本)相对高昂,用户体验也相对较差。

2. 解决 方案

2.1 ThunderImage JPEG2JPEG缩略图方案

鉴于此,深维科技推出了基于FPGA+CPU异构计算的解决方案——JPEG2JPEG,通过高性能FPGA分担CPU处理任务,其所带来的优势是20倍吞吐性能提升,20倍延迟的降低,5倍实际成本的节省以及10倍的能效比提升。

FPGA+CPU助力数据中心实现图像处理应用体验与服务成本新平衡

JPEG2JPEG缩略图方案是将用户上传的图片进行高质量的缩放,即可满足绝大多数应用场合需求,例如,微信接收的一般都是缩小后的图片。 缩略图是一项大量的、高并发的需求,针对4K图像输入,输出缩放至1024x768、640x480的场景。 目前,JPEG2JPEG缩略图方案可以实现吞吐量550张、延迟约58ms的高性能效果。

2.2 ThunderImage JPEG2WebP转码方案

FPGA+CPU助力数据中心实现图像处理应用体验与服务成本新平衡

WebP的需求主要来自于对带宽成本的节省。 WebP相较于JPEG在同等图像质量情况下,压缩率可以提升25%~34%,相应带宽成本的节省更加明显,并且因为传输数据量的减少,延迟也会随之降低,进而带来用户体验的提升。 但与此同时,WebP也存在一些问题,其计算复杂度是JPEG的10倍,对服务器的性能要求也更高,进而造成部署成本的提升。

FPGA+CPU助力数据中心实现图像处理应用体验与服务成本新平衡

深维科技的ThunderImage JPEG2WebP转码方案,通过FPGA加速可以带来10倍左右的性能提升,进而降低WebP的复杂度及服务器成本。 ThunderImage JPEG2WebP转码方案支持Baseline、Main、Ultra几种类型,实现了对WebP M4以及M6模式的支持,并且支持M4的比特级一致(与CPU参考软件输出结果每比特一致)。

3. 部署问题

实现了技术方面的突破之后要如何与生产环境集成呢? 如何在实际的业务体系中实现对FPGA优势更好的应用? 实际部署是其中最值得探讨与研究的方向。 对此,深维科技进行了一系列的探索与尝试,形成了以下几种方案。

3.1 如何与生产环境集成

FPGA+CPU助力数据中心实现图像处理应用体验与服务成本新平衡

在云端,ThunderImage通常会与OBS进行集成,用户端发送对图片的请求,CDN检查是否存在本地缓存,如不存在则向OBS发送请求,OBS通过相应参数与ThunderImage交互,生成相应的图片格式,最终通过CDN返回给用户端。 这种与OBS集成的在线处理的方式,带来的是带宽成本以及存储成本的降低,以及QoS的提升。

3.2 FPGA产品部署方面

FPGA+CPU助力数据中心实现图像处理应用体验与服务成本新平衡

目前,FPGA产品在部署方面可以划分为公有云方案以及私有云方案两种方式。 深维科技目前所拥有的解决方案对行业输出的产品形态主要分为公有云: SaaS、Instance以及镜像服务; 私有云以及线下产品: 软硬一体机。 所应用的场景包括手机、电商、社交、CDN、云存储、视频等。

3.3 私有云部署方案

FPGA+CPU助力数据中心实现图像处理应用体验与服务成本新平衡

针对私有云部署,架构基于视频加速卡的硬件环境,服务器上层相应的操作系统以及虚拟化处理相结合,覆盖赛灵思驱动层、管理层工具等部分。 深维科技的方案部署于此架构上,直接面向相应的应用场景。

3.4 Alveo U50部署方案

FPGA+CPU助力数据中心实现图像处理应用体验与服务成本新平衡

Alveo U50采用了UltraScale+架构,集成了超高带宽的8GB HBM2存储器技术,所以大幅缩小了产品尺寸。 以此为基础的方案是当前计算密度最高的处理方案,对于数据中心服务器升级来说更加便捷。

4. 案例分析

FPGA+CPU助力数据中心实现图像处理应用体验与服务成本新平衡

上图为某社交网络云相册缩略图生产的实际案例,单节点吞吐性能提升可以达到16倍,TCO可以降低到一半,并且具有更优质的服务质量体验。 因为其集群规模更小,所以维护起来更加方便。

4.1 公有云部署

FPGA+CPU助力数据中心实现图像处理应用体验与服务成本新平衡

公有云部署主要涉及平台、功能以及服务几个方面。 其中云上的服务形态包括SaaS、Instance、Image三种。 SaaS的优势是易部署,起步费用较低,方便小规模用户集成使用。 Instance的集成更加灵活,封装比较完整,成本相比SaaS更低。 对于Image来说,购买云主机以及镜像,需要在服务器端将应用与镜像完美集成,这意味着我们有机会将整体方案的最好性能发挥出来,因此Image方式的性能是最强的,并且可以实现深度的定制。

4.2 某视频网站WebP转码方案

FPGA+CPU助力数据中心实现图像处理应用体验与服务成本新平衡

上图为某视频网站WebP转码方案的实际案例,我们在云端上的整体性能都是有保障的,虽然云端的CPU为VCPU,在性能上会有些损耗,但整体性能收益一般情况下都会有20倍以上的性能提升。

综上,深维科技ThunderImage图像处理方案,支持丰富的编解码算法,能够适应差异化的应用场景,同时,无缝兼容业界常见算法平台。 高效便捷的应用体验与部署方式,对于无论是公有云,私有云还是混合云端的应用来说都是一种新的优化与选择。

关 于 深维 科技

北京深维科技有限公司(简称深维科技)成立于2016年,由中国顶级FPGA软件和硬件开发人员组成。 公司团队在多媒体处理,HPC应用和异构系统架构设计方面拥有丰富的经验。 致力于成长为领先的异构加速应用领域FPGA计算平台供应商,为更多行业和应用提供支持。

深维科技基于FPGA + CPU的异构计算技术,为数据中心应用提供超高性能的图像和视频处理解决方案和产品。 除此之外,深维科技还为高性能计算和大数据应用,如存储压缩加速和地震勘探等应用提供解决方案和设计服务。

LiveVideoStackCon 2020

上海/北京/旧金山 讲师招募

2020年LiveVideoStackCon将持续迭代,LiveVideoStackCon将分别在上海(6月13-14日),北京(9月11-12日)和旧金山(11月)举行。欢迎将你的技术实践、踩坑与填坑经历、技术与商业创业的思考分享出来,独乐不如众乐。请将个人资料和话题信息邮件到 speaker@livevideostack.com 或点击【阅读原文】了解成为LiveVideoStackCon讲师的权益与义务,我们会在48小时内回复。

本文分享自微信公众号 - LiveVideoStack(livevideostack)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Stella981 Stella981
2年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这