背景
qGPU是騰訊云推出的GPU共享技術(shù),支持在多個(gè)容器間共享GPU卡,并提供容器間顯存、算力強(qiáng)隔離的能力,從而在更小粒度的使用GPU卡的基礎(chǔ)上,保證業(yè)務(wù)安全,達(dá)到提高GPU使用率、降低客戶成本的目的。
qGPU on TKE依托騰訊云TKE對(duì)外開(kāi)源的Nano GPU調(diào)度框架[1],可實(shí)現(xiàn)對(duì)GPU算力與顯存的細(xì)粒度調(diào)度,并支持多容器共享GPU與多容器跨GPU資源分配。同時(shí)依賴底層強(qiáng)大的qGPU隔離技術(shù),可做到GPU顯存和算力的強(qiáng)隔離,在通過(guò)共享使用GPU的同時(shí),盡最大可能保證業(yè)務(wù)性能與資源不受干擾。
功能優(yōu)勢(shì)
qGPU方案通過(guò)對(duì)NVIDIA GPU卡上任務(wù)更有效的調(diào)度,達(dá)到給多個(gè)容器共享使用的目的,支持的功能如下:
靈活性:用戶可以自由配置GPU的顯存大小和算力占比
云原生:支持標(biāo)準(zhǔn)的Kubernetes,兼容NVIDIA Docker方案
兼容性:鏡像不修改/CUDA庫(kù)不替換/業(yè)務(wù)不重編,易部署,業(yè)務(wù)無(wú)感知
高性能:在底層對(duì)GPU設(shè)備進(jìn)行操作,高效收斂,吞吐接近0損耗
強(qiáng)隔離:支持顯存和算力的嚴(yán)格隔離,業(yè)務(wù)共享不受影響
技術(shù)架構(gòu)
qGPU on TKE使用Nano GPU調(diào)度框架,通過(guò)Kubernetes擴(kuò)展調(diào)度機(jī)制,同時(shí)支持GPU算力與顯存資源調(diào)度。并且依賴Nano GPU的容器定位機(jī)制,支持精細(xì)化GPU卡調(diào)度,同時(shí)支持多容器GPU卡共享分配與多容器GPU跨卡分配。
qGPU直接采用英偉達(dá)GPU底層硬件特性進(jìn)行調(diào)度,實(shí)現(xiàn)細(xì)粒度算力隔離,打破傳統(tǒng)上CUDA API劫持方案的只能以CUDA Kernel為粒度進(jìn)行算力隔離的限制,提供更好的QoS保證。
客戶收益
1.多任務(wù)靈活共享GPU,提升利用率
2.GPU資源強(qiáng)隔離,業(yè)務(wù)共享不受影響
3.完全面向Kubernetes,業(yè)務(wù)使用零成本
未來(lái)規(guī)劃
1.支持細(xì)粒度資源監(jiān)控:qGPU on TKE將支持對(duì)Pod和容器級(jí)的GPU使用率采集,實(shí)現(xiàn)更細(xì)粒度的資源監(jiān)控和與GPU彈性能力的整合
2.支持在離線混部:qGPU on TKE將支持在線業(yè)務(wù)和離線業(yè)務(wù)的高低優(yōu)先級(jí)混部,最大限度地提升GPU利用率
3.支持qGPU算力池化:基于qGPU的GPU算力池化,實(shí)現(xiàn)CPU、內(nèi)存資源與異構(gòu)計(jì)算資源解耦
參考資料
[1]Nano GPU調(diào)度框架:【https://github.com/nano-gpu】