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