從靈活性而言,介于 CPU 和 ASIC 兩者之間的處理器,使用比較多的異構(gòu)處理器目前有兩個(gè),一個(gè)是 GPU,一個(gè)是 FPGA。
FPGA 屬于一類更通用的可編程邏輯設(shè)備(PLD), FPGA 既能提供集成電路的性能優(yōu)勢(shì),又具備 CPU 可重新配置的靈活性。簡(jiǎn)單來(lái)說(shuō),F(xiàn)PGA 是一種可重新配置的「通用集成電路」。
GPU 的靈活性是介于 FPGA 與 CPU 之間。GPU 的核心數(shù)量一般是 CPU 的成百上千倍,計(jì)算能力要比 CPU 多出幾個(gè)數(shù)量級(jí),也更適合進(jìn)行并行計(jì)算。但是如果計(jì)算里面有大量的分支,或者算法的數(shù)據(jù)前后存在依賴關(guān)系,使得算法無(wú)法并行運(yùn)行,則 GPU 的性能優(yōu)勢(shì)會(huì)被大大減弱。
相比 GPU,F(xiàn)PGA 的可操控粒度更小,具備更高的靈活度和算法適應(yīng)性。FPGA 能夠簡(jiǎn)單地通過(guò)使用觸發(fā)器(FF)來(lái)實(shí)現(xiàn)順序邏輯,并通過(guò)使用查找表(LUT)來(lái)實(shí)現(xiàn)組合邏輯。當(dāng)算法需要并行計(jì)算能力時(shí),可以將大部分的邏輯資源都用來(lái)做計(jì)算,達(dá)到更高的計(jì)算效率;當(dāng)算法需要更多的控制流程時(shí),可以將大部分的邏輯資源都用來(lái)做控制。(實(shí)際的 FPGA 內(nèi)部也存在大量的硬核來(lái)完成固定的功能)。正是基于 FPGA 資源的高可控度,可以帶來(lái)算法實(shí)現(xiàn)時(shí)的靈活度。
FPGA 全稱「可編輯門陣列」(Field Programmable Gate Array),其基本原理是在 FPGA 芯片內(nèi)集成大量的數(shù)字電路基本門電路以及存儲(chǔ)器,而用戶可以通過(guò)燒寫 FPGA 配置文件來(lái)來(lái)定義這些門電路以及存儲(chǔ)器之間的連線。這種燒入不是一次性的,即用戶今天可以把 FPGA 配置成一個(gè)圖像編解碼器,明天可以編輯配置文件把同一個(gè) FPGA 配置成一個(gè)音頻編解碼器,這個(gè)特性可以極大地提高數(shù)據(jù)中心彈性服務(wù)能力。所以說(shuō)在 FPGA 可以快速實(shí)現(xiàn)為深度學(xué)習(xí)算法開(kāi)發(fā)的芯片架構(gòu),而且成本比設(shè)計(jì)的專用芯片(ASIC)要便宜,當(dāng)然性能也沒(méi)有專用芯片(ASIC)強(qiáng)。ASIC 是一錘子買賣,設(shè)計(jì)出來(lái)要是發(fā)現(xiàn)哪里不對(duì)基本就沒(méi)機(jī)會(huì)改了,但是 FPGA 可以通過(guò)重新配置來(lái)不停地試錯(cuò)知道獲得最佳方案,所以用 FPGA 開(kāi)發(fā)的風(fēng)險(xiǎn)也遠(yuǎn)遠(yuǎn)小于 ASIC。
騰訊云FPGA的行業(yè)價(jià)值
騰訊云帶來(lái)的革命性進(jìn)展是:將 FPGA 部署時(shí)間從數(shù)月縮短到數(shù)分鐘,企業(yè)可按需付費(fèi)使用 FPGA,極大降低 FPGA 的使用成本,實(shí)現(xiàn)高性能 FPGA 硬件加速處理。企業(yè)可以通過(guò) FPGA 云服務(wù)器進(jìn)行 FPGA 硬件編程,可將性能提升至通用 CPU 服務(wù)器的?30 倍?以上。同時(shí)騰訊云率先在國(guó)內(nèi)提供第三方 FPGA 知識(shí)產(chǎn)權(quán)市場(chǎng),通過(guò)騰訊云服務(wù)市場(chǎng),F(xiàn)PGA 開(kāi)發(fā)者和使用者可以更高效地交易。
長(zhǎng)期以來(lái),F(xiàn)PGA 行業(yè)內(nèi)的提供者和使用者一直缺乏交易平臺(tái)和信用保證,導(dǎo)致交易環(huán)節(jié)冗長(zhǎng),很難達(dá)成交易。騰訊云服務(wù)市場(chǎng)搭建一個(gè)簡(jiǎn)單可靠的 FPGA 知識(shí)產(chǎn)權(quán)交易市場(chǎng)。
對(duì)于 FPGA 使用者而言,可以在騰訊云服務(wù)市場(chǎng)購(gòu)買已開(kāi)發(fā)并驗(yàn)證好的 FPGA 知識(shí)產(chǎn)權(quán)功能,可節(jié)約長(zhǎng)達(dá)數(shù)月的 FPGA 研發(fā)周期,同時(shí)采用按需使用付費(fèi)的模式,能最大化地節(jié)省硬件投入成本。
而 FPGA 開(kāi)發(fā)者可以通過(guò)使用騰訊云 FPGA 的開(kāi)發(fā)框架,顯著提升研發(fā)效率,更專注于核心功能開(kāi)發(fā),將圖像處理功能、深度學(xué)習(xí)功能等已有的成熟 FPGA 知識(shí)產(chǎn)權(quán)通過(guò)簡(jiǎn)單封裝適配,集成并投放到騰訊云服務(wù)市場(chǎng),開(kāi)放給 FPGA 使用者使用,分?jǐn)?FPGA 知識(shí)產(chǎn)權(quán)的研發(fā)成本。
FPGA 應(yīng)用案例
FPGA 應(yīng)用案例一
項(xiàng)目背景:
隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,基于用戶社交平臺(tái)的騰訊每天用戶上傳的圖片越來(lái)越龐大,公司目前用于圖片轉(zhuǎn)碼的業(yè)務(wù)主要有 QQ 相冊(cè)、微信及其他業(yè)務(wù)。圖片格式中有 JPEG 格式、WEBP 格式等,WEBP 圖片格式比 JPEG 圖片格式存儲(chǔ)空間小 30%。如果落地存儲(chǔ)采用 WEBP 格式替代 JPEG 格式,可以減少三分之一存儲(chǔ)空間;而傳輸分發(fā)用 WEBP 格式,還可以降低傳輸流量,從而提升用戶的圖片下載體驗(yàn)。而采用 WEBP 的問(wèn)題在于 WEBP 壓縮計(jì)算復(fù)雜度是 JPEG 壓縮的 10 倍以上,采用 CPU 進(jìn)行 WEBP 轉(zhuǎn)碼成本很高,導(dǎo)致很難在業(yè)務(wù)中全面推廣。為了增強(qiáng)圖片轉(zhuǎn)碼能力,我們使用 FPGA 對(duì)圖片轉(zhuǎn)碼進(jìn)行加速。
項(xiàng)目結(jié)果:
完成 JPEG 格式圖片轉(zhuǎn)成 WEBP 格式圖片,測(cè)試圖片大小為 853×640,F(xiàn)PGA 處理延時(shí)相比 CPU 降低 20 倍 ,F(xiàn)PGA處理性能是CPU機(jī)器的 6 倍 ,F(xiàn)PGA機(jī)型單位成本是 CPU 機(jī)型的 1/3。
表1. FPGA 和 CPU 的計(jì)算性能對(duì)比
FPGA 應(yīng)用案例二
項(xiàng)目背景:
傳統(tǒng)上,Google、百度等搜索引擎公司以 Logistic Regression(LR)作為預(yù)估模型。早在 2012 年開(kāi)始,百度開(kāi)始嘗試將 DNN 算法作用于搜索廣告,并在2013 年 5 月就開(kāi)始服務(wù)于百度搜索廣告系統(tǒng)。近年來(lái)異軍突起的今日頭條在技術(shù)上也使用了 DNN 算法,提高新聞的點(diǎn)擊率。但是 DNN 算法對(duì)系統(tǒng)的計(jì)算量明顯增大,如果還是用 CPU 進(jìn)行計(jì)算,無(wú)法滿足系統(tǒng)的延時(shí)和吞吐率要求。
DNN 算法模型為 17*200*20*1 的 4 層模型,要求 4000 個(gè)樣本的 DNN 計(jì)算時(shí)延要小于 5ms。如果用 CPU 計(jì)算,B6(CPU E5-2620 X 2) 機(jī)器的計(jì)算時(shí)延為 120.55ms*,無(wú)法滿足要求(計(jì)算時(shí)間見(jiàn)表2)。因此,我們用 FPGA 對(duì) DNN 計(jì)算進(jìn)行加速,使 4000 個(gè)樣本的 DNN 計(jì)算時(shí)延小于 5ms。
項(xiàng)目結(jié)果:
我們?cè)谑褂?50% 的 FPGA 資源的情況下,將 4000 個(gè)樣本的 DNN 計(jì)算時(shí)延減小為 1.2ms,吞吐率達(dá)到 6000 集合/s(4000 個(gè)樣本為 1 個(gè)集合),不僅達(dá)到了系統(tǒng)對(duì)低延時(shí)的要求,而且極大地提高了系統(tǒng)的吞吐能力,處理延時(shí)降低 100 倍,處理吞吐率提高 5 倍,成本是 CPU 機(jī)型的 1/5。說(shuō)明 FPGA 在 DNN 計(jì)算加速上有較明顯的優(yōu)勢(shì)。
表2. FPGA 和 CPU 的計(jì)算性能對(duì)比
FPGA 應(yīng)用案例三
項(xiàng)目背景:
深度學(xué)習(xí)(DL)近年來(lái)在語(yǔ)音識(shí)別、圖片分類和識(shí)別、推薦算法等領(lǐng)域發(fā)揮了越來(lái)越大的作用。深度學(xué)習(xí)基于深度神經(jīng)網(wǎng)絡(luò)理論,用在圖片分類的神經(jīng)網(wǎng)絡(luò)是其中的一個(gè)分支:卷積神經(jīng)網(wǎng)絡(luò)(CNN)。隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,基于用戶社交平臺(tái)的騰訊每天用戶上傳的圖片越來(lái)越龐大,并且增長(zhǎng)速度很快。為了增強(qiáng)圖片檢測(cè)的處理能力,降低圖片檢測(cè)成本,我們使用 FPGA 對(duì) CNN 計(jì)算進(jìn)行加速。
項(xiàng)目結(jié)果:
FPGA 完成 CNN 算法的 Alexnet 模型,F(xiàn)PGA 處理性能是 CPU 機(jī)器的 4 倍,F(xiàn)PGA 機(jī)型單位成本是 CPU 機(jī)型的 1/3。
小結(jié)
當(dāng)前 AI 火爆,得益于 FPGA 的高密度計(jì)算能力以及低功耗的特性,F(xiàn)PGA 率先在深度學(xué)習(xí)在線預(yù)測(cè)方向(廣告推薦、圖片識(shí)別、語(yǔ)音識(shí)別等)得到了較大規(guī)模的部署。
用戶也常常將 FPGA 與 GPU 進(jìn)行對(duì)比,GPU 的易編程性、高吞吐與 FPGA 的低功耗、易部署等特性也各有千秋。相較于 GPU 以及 ASIC,F(xiàn)PGA 的低延時(shí)以及可編程性也是其核心競(jìng)爭(zhēng)能力。
使用騰訊云 FPGA 云服務(wù),你只需單擊幾下即可在幾分鐘內(nèi)輕松獲取并部署你的 FPGA 計(jì)算實(shí)例。你可以在 FPGA 實(shí)例上編程,為你的應(yīng)用程序創(chuàng)建自定義硬件加速。我們?yōu)槟闾峁┛芍鼐幊痰沫h(huán)境,可以在 FPGA 實(shí)例上多次編程,而無(wú)需重新設(shè)計(jì)硬件,讓你能更加專注于業(yè)務(wù)發(fā)展。