快手聯(lián)手英偉達部署業(yè)界最先進GPU計算基礎(chǔ)架構(gòu)
日活超過2億的快手,庫存短視頻超過130億條,仍以每日超過1500萬條短視頻上傳的速度新增,擁有海量超大數(shù)據(jù)應(yīng)用場景。快手基礎(chǔ)設(shè)施的規(guī)模已經(jīng)處于國內(nèi)互聯(lián)網(wǎng)公司頭部行列。目前快手服務(wù)器規(guī)模已經(jīng)超過十萬臺,數(shù)據(jù)總量達到EB級別,每天新增數(shù)據(jù)超過5PB。
為保障千億級別數(shù)據(jù)量的處理和基礎(chǔ)設(shè)施穩(wěn)定、高效運行,快手服務(wù)器選型和業(yè)務(wù)優(yōu)化團隊(以下簡稱“快手SAT團隊”)選用合作伙伴英偉達新一代圖靈架構(gòu)的TESLA T4/V100,在業(yè)內(nèi)率先完成計算架構(gòu)的全新升級。
據(jù)了解,快手SAT團隊的成員經(jīng)驗豐富,人均工作經(jīng)驗在10年左右,專注于硬件方面的成員大多來自于海內(nèi)外大型服務(wù)器或者硬件廠商,專注于軟件方面的成員大多數(shù)來自國內(nèi)頭部互聯(lián)網(wǎng)企業(yè)。正是這樣的一個軟硬結(jié)合的團隊,給快手超過2億 的日活量級提供了堅實的保障。
據(jù)快手SAT團隊研發(fā)人員介紹,快手大數(shù)據(jù)應(yīng)用場景如視頻推薦平臺、音視頻理解、風控、商業(yè)化廣告、強化學習等都是公司的核心業(yè)務(wù),多個業(yè)務(wù)場景數(shù)據(jù)處理需求量大,英偉達推出新的特斯拉架構(gòu)產(chǎn)品之后,SAT團隊將TESLA T4/V100 GPU的引入列為首要任務(wù),使用新一代的GPU,搭配現(xiàn)有的計算平臺(CPU、FPGA等),將TESLA T4引入到新的套餐上,同時以最快速度適配給公司內(nèi)的核心業(yè)務(wù),保障硬件基礎(chǔ)架構(gòu)走在業(yè)界前列。
GPU架構(gòu)優(yōu)化性能提升2倍成本節(jié)省30%
針對快手快速增長的業(yè)務(wù)需求,既需要盡可能的滿足業(yè)務(wù)靈活多變的需求,又不能使得套餐數(shù)量過于發(fā)散,同時要兼顧成本優(yōu)化目標,所面臨的問題十分復(fù)雜。為平衡需求和復(fù)雜性,快手SAT團隊最終決定引入了2個GPU套餐,搭配虛擬化容器,滿足不同業(yè)務(wù)場景下的不同需求。
GPU服務(wù)器特別是多卡GPU服務(wù)器在實際計算中,普遍會面臨CPU性能成為瓶頸的問題。為了解決CPU性能瓶頸、GPU利用率不高的問題,快手SAT團隊聯(lián)合算法團隊,通過在Resnet50/SSD上將Resize、Augment等從CPU端遷移至GPU端的方法,將CPU的loading逐步遷移到GPU上,進一步利用了GPU強大的計算能力,解放了CPU,達到了CPU和GPU之間的均衡計算效果。
GPU之間的性能均衡是另一個問題。部分業(yè)務(wù)場景的模型體積非常巨大,單GPU顯存往往沒有辦法存下整個模型,這時候通常會將模型存在內(nèi)存中,由CPU來進行相對應(yīng)的運算操作,快手SAT團隊通過優(yōu)化CPU親和性,避免了負載不均和查找路徑較遠的問題。
快手的訓練模型要求精度較高,之前普遍使用FP32,模型較大,目前正在慢慢使用混合精度來替代原來方案,性能得到明顯提升。 在實際使用中,快手SAT團隊也發(fā)現(xiàn)AMP(自動混合精度)雖然使用起來簡單,但并不能適配所有業(yè)務(wù)。所以需要快手SAT團隊和業(yè)務(wù)團隊一起嘗試不同方法,結(jié)合FP32、AMP以及手動混合精度等手段為業(yè)務(wù)方的訓練提供計算性能。
推理模型相對于訓練模型,普遍存在batchsize較小的問題,需要對內(nèi)存進行頻繁的讀寫訪問,同時推理相較于訓練,要求的精度沒有那么高。為解決這些問題,同時為更好的利用新架構(gòu)中的Tensor Core的性能,快手SAT團隊引入了TensorRT,幫助業(yè)務(wù)快速使用在GPU上,使得運行速度大大提升,編譯后的代碼所占內(nèi)存的大小大大縮減。
解碼H264:T4 / P4 = 2.6 倍左右; 解碼Hevc:T4/P4 = 4倍左右。在Hevc下的高性能,得益于T4的2個nvdec引擎,解碼Hevc時比H264投入的計算單元更多
T4的Fast Preset 與 P4的Slow preset在質(zhì)量和并發(fā)數(shù)量上大致相當
使用TensorRT-Inference-Server,對比text-classification,性能提升2倍左右
從以上對比圖中可以看出,通過現(xiàn)階段GPU計算架構(gòu)的優(yōu)化,業(yè)務(wù)的性能平均增長了2倍,成本較之前節(jié)省了30%以上。
軟硬結(jié)合,優(yōu)化落地
為了讓新產(chǎn)品的特性更好的助力快手的業(yè)務(wù),快手SAT團隊提供了一整套的流程方案。了解業(yè)務(wù)使用需求后,通過分析目前的瓶頸點和高頻使用資源,合理選擇硬件產(chǎn)品,將這些產(chǎn)品快速集成在套餐之中。新硬件往往伴隨著一些新的框架和指令集的支持,例如TESLA T4對于FP16的支持,使得T4的性能大幅提升。參考這些新特性,業(yè)務(wù)部門將代碼優(yōu)化后部署上線。通過Vtune/Nsight等工具對代碼進行分析,優(yōu)化低效的部分,最終呈現(xiàn)效果后上線灰度,追求高效迅捷,使得快手一直走在技術(shù)的前沿。
(圖示:快手選型上線流程)
(圖示:快手新硬件/新技術(shù)引入平臺模塊)
自定義監(jiān)控,防范故障于未然
如果說使用是第一步的話,那么運維就是第二步。快手SAT團隊針對GPU的監(jiān)控,一共做了三件事,一是自主開發(fā)的GPU使用率監(jiān)控,二是自定義的GPU故障監(jiān)控,三是GPU的故障預(yù)判。
監(jiān)控GPU的使用率,可以使得業(yè)務(wù)更加了解自己的負載情況,也可以驗證前面選型配置的合理性。通常來說業(yè)內(nèi)大多使用smi中的GPU-Util參數(shù)來判斷GPU的使用情況,但快手在實際使用中發(fā)現(xiàn),判斷GPU的使用率是一個較為復(fù)雜的問題,GPU-Util反應(yīng)的只是單位時間內(nèi)GPU的整體使用情況,并不能清晰地反應(yīng)GPU的負載情況。針對這種情況,快手SAT團隊手動開發(fā)了一套使用率監(jiān)控腳本,從SM單元、編解碼單元采樣值、帶寬負載、讀寫時間比等多個維度進行分析,最終得出GPU的綜合使用率。
故障的監(jiān)控,是一個比較老生常談的問題,在任何硬件產(chǎn)品上都會遇到,GPU因為其較高的功耗和溫度,以及業(yè)務(wù)對其的強依賴性,最初快手SAT團隊設(shè)置了非常多的監(jiān)控指標,這些監(jiān)控指標都是通過GPU設(shè)備的API提煉抽取出來的,但是隨著監(jiān)控實例的增加,告警的數(shù)量也隨之大幅提高。這些告警里包括持續(xù)告警、波動告警、關(guān)聯(lián)告警,當然這些告警的出現(xiàn),使得快手發(fā)現(xiàn)了問題,但是也給快手的運維人員造成了極大的困擾。為了解決告警泛濫的問題,快手SAT團隊對監(jiān)控參數(shù)進行分析整合,針對不同業(yè)務(wù)使用GPU時的不同需求,制定業(yè)務(wù)生死標準:影響業(yè)務(wù)生存的標準優(yōu)先報,在單位時間內(nèi)發(fā)生的告警只報一個。
故障的預(yù)判,是為了避免有可能發(fā)生的故障對業(yè)務(wù)帶來損失,這個預(yù)判的準確性是關(guān)鍵。故障的預(yù)判在很多情況下都是一個導(dǎo)火索,是一個隨著時間的推移慢慢變成現(xiàn)象級的過程。快手SAT團隊在故障的預(yù)判方面針對GPU設(shè)定了十余個監(jiān)控參數(shù),通過對這些積累下來的數(shù)據(jù)進行訓練,得到一個閾值,再使用這個閾值進行故障預(yù)判。通過這個訓練預(yù)測不斷循環(huán)的過程,使得故障的預(yù)判越來越精準。
后續(xù)規(guī)劃
隨著快手日活量不斷增加,用戶數(shù)據(jù)不斷豐富,模型的數(shù)量越來越多,越來越復(fù)雜,在空間的占用上呈幾何級數(shù)增長。目前快手SAT團隊正在做幾件事:引入大容量低成本NVM與GPU組成異構(gòu)計算+異構(gòu)存儲服務(wù)器;搭配100G/200G/400G RDMA,做CPU offload的架構(gòu),提高分布式計算的效率;將存儲資源和計算資源解耦分離。
快手選型上線流程和英偉達企業(yè)級技術(shù)支持團隊已經(jīng)有了一年多的合作經(jīng)驗,以TESLA GPU引入為契機,快手SAT團隊整理規(guī)范了GPU服務(wù)器引入和應(yīng)用優(yōu)化一整套的科學體系,并在實踐中獲得了較好的業(yè)務(wù)收益,為公司節(jié)省了大量的時間成本,同時計算力更加出色的GPU計算架構(gòu)也為未來快手關(guān)鍵業(yè)務(wù)線上線更加復(fù)雜的模型打下了堅實的基礎(chǔ)。快手系統(tǒng)運營部硬件研發(fā)團隊誠聘新技術(shù)硬件研發(fā)工程師,歡迎每一個對技術(shù)有追求的技術(shù)人。