技术分享:人工智能时代Cyborg组件提供vGPU加速
隨著機(jī)器學(xué)習(xí)和機(jī)器視覺的快速發(fā)展,用戶對(duì)GPU的需求也日益劇增。截止目前,大多數(shù)用戶仍會(huì)選擇帶有GPU的裸機(jī)服務(wù)器。然而,這同時(shí)意味著用戶需要承擔(dān)由配置此類設(shè)備所帶來的管理性成本。如今,用戶將能夠使用vGPU驅(qū)動(dòng)的虛擬機(jī),并利用這部分資源運(yùn)行人工智能相關(guān)的Workload。
隨著OpenStack社區(qū)對(duì)AI和邊緣計(jì)算的布局,而加速計(jì)算在邊緣比在數(shù)據(jù)中心更為普遍,所以這又會(huì)加強(qiáng)OpenStack的地位,因此OpenStack在第17個(gè)版本迎來了Cyborg項(xiàng)目。
Cyborg項(xiàng)目起源于NFV acceleration management以及ETSI NFV-IFA 004 document,和OPNFV DPACC項(xiàng)目。Cyborg(以前稱為Nomad)是用于管理硬件和軟件加速資源(如 GPU、FPGA、CryptoCards和DPDK / SPDK)的框架,在Queens發(fā)布中首次亮相。特別是對(duì)于有 NFV workload的運(yùn)營(yíng)商,計(jì)算加速已經(jīng)成為云虛擬機(jī)的必備功能。通過Cyborg,運(yùn)維者可以列出、識(shí)別和發(fā)現(xiàn)加速器,連接和分離加速器實(shí)例,安裝和卸載驅(qū)動(dòng)。它也可以單獨(dú)使用或與Nova或Ironic結(jié)合使用。Cyborg可以通過Nova計(jì)算控制器或Ironic裸機(jī)控制器來配置和取消配置這些設(shè)備。
在加速器方面,Nova計(jì)算控制器現(xiàn)在可以將Workload部署到Nvidia和Intel的虛擬化GPU(AMD GPU正在開發(fā))。加速器可用于圖形處理的場(chǎng)景(如虛擬桌面和工作站),還可以應(yīng)用于集群上的通過虛擬化GPU以運(yùn)行HPC或AI Workload的場(chǎng)景。
Cyborg組件架構(gòu)
Cyborg API---應(yīng)該支持有關(guān)加速器的基本操作,API支持以下接口:
- attach:連接現(xiàn)有的物理加速器或創(chuàng)建新的虛擬加速器,然后分配給虛擬機(jī)
- detach:分離現(xiàn)有物理加速器或釋放虛擬機(jī)的虛擬加速器
- list:列出所有附加的加速器
- update:修改加速器(狀態(tài)或設(shè)備本身)
- admin:CRUD操作無關(guān)的某些配置
Cyborg Agent---Cyborg agent將存在于計(jì)算主機(jī)以及可能使用加速器的其他主機(jī)上,agent具體的作用:
- 檢查硬件以找到加速器
- 管理安裝驅(qū)動(dòng)程序,依賴關(guān)系和卸載驅(qū)動(dòng)
- 將實(shí)例連接到加速器
- 向Cyborg服務(wù)器報(bào)告有關(guān)可用加速器,狀態(tài)和利用率的數(shù)據(jù)
-
硬件發(fā)現(xiàn):每隔數(shù)秒就會(huì)掃描實(shí)例的加速器和現(xiàn)有加速器的使用級(jí)別,并將這些信息通過心跳消息報(bào)告給Cyborg服務(wù)器,以幫助管理調(diào)度加速器
-
硬件管理:Ansible將用于管理每個(gè)加速器的配置文件和加速器的Driver。install和uninstall特定的ansible playbook適配Cyborg所支持的硬件。在管理的硬件上進(jìn)行的配置更改將通過運(yùn)行不同配置的playbook作為底層實(shí)現(xiàn)。
- 實(shí)例連接:一旦產(chǎn)生一個(gè)實(shí)例需要連接到主機(jī)上的特定加速器,Cyborg服務(wù)器將向Cyborg agent發(fā)送消息。由于不同加速器之間的連接方法不同,因此agent需要不同的driver提供連接功能。
Cyborg-Conductor---Cyborg-db的數(shù)據(jù)庫(kù)查詢更新操作都需要通過向Cyborg-conductor服務(wù)發(fā)送RPC請(qǐng)求來實(shí)現(xiàn),conductor負(fù)責(zé)數(shù)據(jù)庫(kù)的訪問權(quán)限控制,避免直接訪問數(shù)據(jù)庫(kù)。
openstack-Cyborg-generic-driver功能:
- 識(shí)別和發(fā)現(xiàn)附加的加速器后端
- 列出在后端運(yùn)行的服務(wù)
- 將加速器附加到通用后端
- 從通用后端分離加速器。
- 列出附加到通用后端的加速器。
- 修改附加到通用后端的加速器。
Quata---cyborg resource quota,Cyborg的配額管理用于在構(gòu)建虛擬機(jī)時(shí)管理用戶或項(xiàng)目對(duì)加速器的訪問。目前,項(xiàng)目或用戶可能擁有無限數(shù)量的加速資源,應(yīng)該有一個(gè)限制,限制是可配置的。
Cyborg調(diào)用加速器過程
1.ronic監(jiān)控網(wǎng)絡(luò)并發(fā)現(xiàn)新資源
2.新的主機(jī)通過pXE啟動(dòng)并用Hypervisor初始化
3.Agent更新Nova和Neutron DB
4.Ironic agent根據(jù)存儲(chǔ)在swift / glance / glare中的比特流加載靜態(tài)區(qū)域
5.Nova agent被通知存在新的PCIe設(shè)備(來自SR-IOV的VF)并更新Nova DB
6.Nova根據(jù)用戶指令需要孵化一臺(tái)虛擬機(jī)并配備PR(vFPGA)
7.Nova過濾器找到可用資源并執(zhí)行虛擬機(jī)創(chuàng)建/配置
8.VM cloud_init使用本地文件或Swift中的比特流加載PR---VM請(qǐng)求Cyborg從Glare加載PR
9.VF注冊(cè)并分配給虛擬機(jī)
10.VM應(yīng)用程序訪問VF
總體來說,Cyborg的出現(xiàn),在云主機(jī)中支持 vGPU( 虛擬圖形處理單元 )的功能,這對(duì)于圖形密集型工作負(fù)載以及許多科學(xué)性的、人工智能和機(jī)器學(xué)習(xí)的工作負(fù)載來說是一項(xiàng)重要的能力。
轉(zhuǎn)載于:https://blog.51cto.com/99cloud/2287031
總結(jié)
以上是生活随笔為你收集整理的技术分享:人工智能时代Cyborg组件提供vGPU加速的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 减速器的参数优化 毕业设计 matlab
- 下一篇: 移动硬盘数据误删除怎样恢复?图文教学