《2019年大規模GPU虛擬化技術在訊飛AI業務中的應用.pdf》由會員分享,可在線閱讀,更多相關《2019年大規模GPU虛擬化技術在訊飛AI業務中的應用.pdf(28頁珍藏版)》請在三個皮匠報告上搜索。
1、大規模GPU虛擬化在訊飛AI業務上的實踐虛擬化團隊負責人目錄 訊飛AI業務的發展 GPU虛擬化技術 異構資源管理 業務落地方案與實踐訊飛AI業務的發展語音識別語音合成人臉識別語義理解場景識別物體識別個性化2018年6月12日識別準確率提高至98%2018年07月14日Blizzard Challenge 十三連冠識別率高達99.4%自然語言各項指標名列前列全球領先的通用物體檢測算法,有效檢測圖像中2萬多種生活常見物體精準識別自然環境下數十種場景個性化定制場景高到171項訊飛AI業務整體架構AI云平臺用戶管理任務接入任務編排個性化管理AI引擎平臺集群管控資源管控個性化系統形成標準協議向下傳遞 業
2、務突增,擁有開發者90W+平均日服務量,達40億人次隨之帶來的 資產規模擴大,管理混亂 資源分配不均勻 資源利用率較低 成本倍增(尤其是cpu切換為gpu設備后)訊飛AI業務發展痛點2015年 GPU全天平均利用率48.6%目錄 訊飛AI業務的發展 GPU虛擬化技術 異構資源管理 業務落地方案與實踐GPU虛擬化技術-協議傳遞VM/ContaineropenGL/Direct3D RedirectorGuestRPC EndpointopenGL/Direct3DGPU DriverGPU HardwareHosthardware前置api接口內嵌虛擬機/容器Rpc調用傳到命令和參數到內核庫內存
3、庫調用驅動,最終調用硬件設備處理請求GPU虛擬化技術-協議傳遞缺點 資源隔離差 多次中斷切換,效率差 高性能計算下,性能損耗驗證優點 無需定制 無硬件要求 簡單方便 小規模壓力下,性能表現較好 業務無感知可任意遷移GPU虛擬化技術-設備透傳VM/ContainerGPU DriverPass-through GPUHypervisorGPU HardwareVT-DGuestHostHardwareDMAMMIOIROPCIVt-d技術通過IOMMU實現DMA,使設備地址映射到內存中,供用戶態程序訪問通過MMIO設備實現設備內存空間的直接讀寫設備終端直接傳遞至虛擬機內,實現PCI透傳GPU虛擬
4、化技術-設備透傳缺點 獨占資源 不宜遷移 需要硬件進行支持優點 隔離性好 性能損耗低于10%Nvidia vGPUVMGPU DriverPass-through VGPUHypervisorGPU HardwareGuestHostHardwareNvidia gpu managerinterfaceschedulervGPUdecodeencodeDMA通過VFIO獲取PCI設備操作權限虛擬化層內嵌GPU管理程序完成資源分配和設備管理硬件層完成GPU的虛擬化,設備按顯存規格切分成不同大小的虛擬設備Nvidia vGPU缺點 資源隔離不完全 需要硬件進行支持優點 一虛多,資源合理利用 高性能
5、計算下,性能損耗低于15%可用于各個業務場景,兼容性好GPU虛擬化-模擬設備VMGPU DriverDevice EmulationHypervisorGPU HardwareGuestHostHardwareMdevVFIOVFIO-Mdev FrameworkDriver Interface實現1、基于4.10內核添加GPU驅動程序2、基于VFIO-Mdev生成中間的mediated device3、mediated device提供用戶態的接口,操作Mdev Bus3、通過Mdev注冊管理Pdev和Mdev4、VFIO通過IOMMU管控控制設備IO5、虛擬設備透傳入虛擬機或者容器中GPU
6、虛擬化-模擬設備缺點 資源隔離不完全 對內核版本要求較高 維護難度高,需要進行驅動和內核定制開發 性能相較VGPU方案,損失較大優點 一虛多,資源合理利用 高性能計算下,性能損耗25%可用于各個業務場景 兼容性好 基于VFIO,可統一設備驅動接口總結協議透傳設備透傳VGPU模擬設備透傳GPU利用率由48.6%提升至72%GPU利用率由72%提升至96%目錄 訊飛AI業務的發展 GPU虛擬化技術 異構資源管理 業務落地方案與實踐異構資源管理GPU節點AgentGPU HardwareRPCcontrol分布式消息中間件APIschedulerDatasetDriver異構資源管理系統IAAS計算
7、系統存儲系統網絡系統PAAS數據系統Web 展示頁面運維系統用戶系統中間件數據庫日志服務異構資源管理ABB任務強烈依賴A任務處理后的數據ACBXABBACBX1、cache任務中綁定同一機器資源3、優先為B任務預留資源2、cache任務中綁定同一機器資源失敗AC B異構資源管理ABAB任務無強烈依賴,但會搶走磁盤或者gpu算力需要分離XAB1、cache中A任務綁定一機器資源2、cache中剔除之前機器列表123423、B從剩于隊列中選擇機器,采用資源均衡模式1345B目錄 訊飛AI業務的發展 GPU虛擬化技術 異構資源管理 業務落地方案與實踐業務落地方案于實踐問題斷點任務批任務調度斷點任務離
8、線任務特點資源大任務集中處理時間長不需要太高的計算能力對資源管控和調度的挑戰存儲壓力大資源占用時間長不易多類型集群調度解決方案分布式存儲分布式任務調度斷點任務離線任務1234任務切分,錄入隊列scheduler分布式存儲blk1blk2blk3blk4blk5blk6GPU(1)GPU(2)GPU(3/d)GPU(4)GPUGPUGPU(3)GPU 深度學習中經常會出現多機多卡的任務,也就是同時會起多個實例,多個實例屬于同一個任務 默認調度器是一個一個進行調度的,只會檢查單個實例資源夠不夠,這樣前99個都能成功,最后一個pod調度失敗。這樣就會造成任務跑不了前99個占著GPU不釋放,新的任務無
9、法調度嚴重時整個集群死鎖批任務調度批任務調度-延遲綁定suggesthostIs a batch task?cacheYbind-queuebind-workbindNmutex如果是普通的pod,找到節點后assume就直接bind如果是批處理任務,直接扔到批處理緩存中返回有個協程一直檢查批緩存中是否有成功的task(pod都齊了)成功的task扔進binding隊列,worker取成功的task進行批量綁定綁定時與普通pod互斥Batch-schedule執行流程schedulerschedulerbatchbatchtaskcachetaskcachequeuequeueSuccess
10、assume a podSuccess assume a podRun()RunBind()ListReadyTask()Push()Pop task()原生調度器在預選優選結束后交給Batch-scheduler處理原生調度器中增加集群GPU資源檢查FilterTaskcache中的批任務pod都到齊了扔進Batch隊列Batch隊列取批任務pod進行綁定總結訊飛在資源調度中解決的問題實現6000多張物理,虛擬設備的混合管理和互調實現了在線集群和離線集群的資源動態互調實現了針對離線任務和在線任務的個性化調度需求面臨的挑戰 模擬設備的性能優化 針對實時計算的調度能力 多異構資源的納管,比如FPGA 個性化業務場景對調度和資源管控層面的需求