异构计算助力客户春节webp图片编码
摘要: 背景與挑戰(zhàn) 技博客 GigaOM 曾報(bào)道:YouTube 的視頻略縮圖采用 WebP 格式后,網(wǎng)頁加載速度提升了 10%;谷歌的 Chrome 網(wǎng)上應(yīng)用商店采用 WebP 格式圖片后,每天可以節(jié)省幾 TB 的帶寬,頁面平均加載時(shí)間大約減少 1/3;Google+ 移動(dòng)應(yīng)用采用 WebP 圖片格式后,每天節(jié)省了 50TB 數(shù)據(jù)存儲(chǔ)空間。
背景與挑戰(zhàn)
科技博客 GigaOM 曾報(bào)道:YouTube 的視頻略縮圖采用 WebP 格式后,網(wǎng)頁加載速度提升了 10%;谷歌的 Chrome 網(wǎng)上應(yīng)用商店采用 WebP 格式圖片后,每天可以節(jié)省幾 TB 的帶寬,頁面平均加載時(shí)間大約減少 1/3;Google+ 移動(dòng)應(yīng)用采用 WebP 圖片格式后,每天節(jié)省了 50TB 數(shù)據(jù)存儲(chǔ)空間。但Webp最大的缺點(diǎn)在于壓縮算法計(jì)算復(fù)雜度是JPEG的10倍以上,我們迫切需要一套高性能加速方案來降低業(yè)務(wù)成本。
項(xiàng)目
今年春節(jié)期間大客戶為了支持其搶紅包業(yè)務(wù)向阿里云提出了webp轉(zhuǎn)碼需求。根據(jù)以往經(jīng)驗(yàn)總共需要準(zhǔn)備數(shù)幾十臺(tái)32核64線程的物理機(jī)。阿里云為提升用戶體驗(yàn)降低自身成本,使用FaaS(FPGA as a Service) F1實(shí)例加速webp編碼。其中FaaS團(tuán)隊(duì)提供了FPGA平臺(tái)支持,OSS團(tuán)隊(duì)提供了算法的支持。得益于高性能的FPGA平臺(tái),我們使用5臺(tái)單卡FPGA云服務(wù)器扛下了日常40%的webp編碼流量。
效果
本次性能測(cè)試所使用樣本為512x512的圖片,所有測(cè)試都在阿里云FaaS F1實(shí)例上測(cè)試。根據(jù)業(yè)務(wù)方的要求,我們對(duì)其中部分?jǐn)?shù)據(jù)值做了一些混淆。
1)延時(shí)
在使用了FPGA加速webp編碼之后,延遲降為原來的1/10。
2)吞吐量
每個(gè)單卡的F1實(shí)例(8vcpu,1 * ARRIA 10)可以獲得大約32核64線程物理機(jī)的~2倍吞吐量,跟某業(yè)內(nèi)專業(yè)加速webp編碼公司對(duì)比(在用同樣F1實(shí)例)。我們發(fā)現(xiàn)某司的FPGA加速webp編碼對(duì)CPU依賴非常多,但利用率又只有50-60%,這非常讓人費(fèi)解。
3)圖片質(zhì)量
下圖是在不同quality下,對(duì)比軟件(藍(lán)線)、OSS(紅線)、某司(綠線)的編碼后psnr曲線。PSNR使用ImageMagick的convert工具計(jì)算,數(shù)值越大越好。OSS提供的硬件加速算法,在圖像質(zhì)量方面幾乎跟軟件幾乎完全重合,某司提供的webp編碼加速器存在不小的差距(差距在0.1~0.5db之間)。
4)壓縮率
同樣使用圖片空間的測(cè)試架,quality設(shè)置也一樣,數(shù)值為相對(duì)JPEG原圖的壓縮率,數(shù)值越小越好。經(jīng)過測(cè)試我們發(fā)現(xiàn)軟件、OSS、某司的壓縮率幾乎完全重合,但依舊保持原有梯隊(duì),軟件>OSS>某司。
根據(jù)上面測(cè)試結(jié)果,目前阿里云OSS的加速方案在webp壓縮場(chǎng)景所有指標(biāo)都超過了某司,除了壓縮率小幅領(lǐng)先之外,其他兩個(gè)指標(biāo)都有非常明顯的優(yōu)勢(shì)。
未來
1)預(yù)計(jì)性能優(yōu)化完成之后E2E還可以提升50%的性能。壓縮率上,未來采用m6等級(jí)的編碼,其壓縮率比當(dāng)前壓縮率更高。
2)單個(gè)FPGA板卡的成本遠(yuǎn)小于服務(wù)器,所以降低業(yè)務(wù)成本的關(guān)鍵在于提高FPGA的密度。未來webp加速器將使用F3實(shí)例,單個(gè)芯片的FPGA性能提升了超過2倍,單臺(tái)服務(wù)器的FPGA芯片密度也提升了一倍。
原文鏈接
干貨好文,請(qǐng)關(guān)注掃描以下二維碼:
總結(jié)
以上是生活随笔為你收集整理的异构计算助力客户春节webp图片编码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手把手教你创建容器服务Kubernete
- 下一篇: 隐私与机器学习,二者可以兼得吗?