1. 程式人生 > >技術分享:人工智慧時代Cyborg元件提供vGPU加速

技術分享:人工智慧時代Cyborg元件提供vGPU加速

隨著機器學習和機器視覺的快速發展,使用者對GPU的需求也日益劇增。截止目前,大多數使用者仍會選擇帶有GPU的裸機伺服器。然而,這同時意味著使用者需要承擔由配置此類裝置所帶來的管理性成本。如今,使用者將能夠使用vGPU驅動的虛擬機器,並利用這部分資源執行人工智慧相關的Workload。

隨著OpenStack社群對AI和邊緣計算的佈局,而加速計算在邊緣比在資料中心更為普遍,所以這又會加強OpenStack的地位,因此OpenStack在第17個版本迎來了Cyborg專案。

Cyborg專案起源於NFV acceleration management以及ETSI NFV-IFA 004 document,和OPNFV DPACC專案。Cyborg(以前稱為Nomad)是用於管理硬體和軟體加速資源(如 GPU、FPGA、CryptoCards和DPDK / SPDK)的框架,在Queens釋出中首次亮相。特別是對於有 NFV workload的運營商,計算加速已經成為雲虛擬機器的必備功能。通過Cyborg,運維者可以列出、識別和發現加速器,連線和分離加速器例項,安裝和解除安裝驅動。它也可以單獨使用或與Nova或Ironic結合使用。Cyborg可以通過Nova計算控制器或Ironic裸機控制器來配置和取消配置這些裝置。

在加速器方面,Nova計算控制器現在可以將Workload部署到Nvidia和Intel的虛擬化GPU(AMD GPU正在開發)。加速器可用於圖形處理的場景(如虛擬桌面和工作站),還可以應用於叢集上的通過虛擬化GPU以執行HPC或AI Workload的場景。

Cyborg元件架構

Cyborg API---應該支援有關加速器的基本操作,API支援以下介面:

- attach:連線現有的物理加速器或建立新的虛擬加速器,然後分配給虛擬機器

- detach:分離現有物理加速器或釋放虛擬機器的虛擬加速器

- list:列出所有附加的加速器

- update:修改加速器(狀態或裝置本身)

- admin:CRUD操作無關的某些配置

Cyborg Agent---Cyborg agent將存在於計算主機以及可能使用加速器的其他主機上,agent具體的作用:

- 檢查硬體以找到加速器

- 管理安裝驅動程式,依賴關係和解除安裝驅動

- 將例項連線到加速器

- 向Cyborg伺服器報告有關可用加速器,狀態和利用率的資料

- 硬體發現:每隔數秒就會掃描例項的加速器和現有加速器的使用級別,並將這些資訊通過心跳訊息報告給Cyborg伺服器,以幫助管理排程加速器

- 硬體管理:Ansible將用於管理每個加速器的配置檔案和加速器的Driver。install和uninstall特定的ansible playbook適配Cyborg所支援的硬體。在管理的硬體上進行的配置更改將通過執行不同配置的playbook作為底層實現。

- 例項連線:一旦產生一個例項需要連線到主機上的特定加速器,Cyborg伺服器將向Cyborg agent傳送訊息。由於不同加速器之間的連線方法不同,因此agent需要不同的driver提供連線功能。

Cyborg-Conductor---Cyborg-db的資料庫查詢更新操作都需要通過向Cyborg-conductor服務傳送RPC請求來實現,conductor負責資料庫的訪問許可權控制,避免直接訪問資料庫。

openstack-Cyborg-generic-driver功能:

- 識別和發現附加的加速器後端

- 列出在後端執行的服務

- 將加速器附加到通用後端

- 從通用後端分離加速器。

- 列出附加到通用後端的加速器。

- 修改附加到通用後端的加速器。

Quata---cyborg resource quota,Cyborg的配額管理用於在構建虛擬機器時管理使用者或專案對加速器的訪問。目前,專案或使用者可能擁有無限數量的加速資源,應該有一個限制,限制是可配置的。

Cyborg呼叫加速器過程

1.ronic監控網路並發現新資源

2.新的主機通過pXE啟動並用Hypervisor初始化

3.Agent更新Nova和Neutron DB

4.Ironic agent根據儲存在swift / glance / glare中的位元流載入靜態區域

5.Nova agent被通知存在新的PCIe裝置(來自SR-IOV的VF)並更新Nova DB

6.Nova根據使用者指令需要孵化一臺虛擬機器並配備PR(vFPGA)

7.Nova過濾器找到可用資源並執行虛擬機器建立/配置

8.VM cloud_init使用本地檔案或Swift中的位元流載入PR---VM請求Cyborg從Glare載入PR

9.VF註冊並分配給虛擬機器

10.VM應用程式訪問VF

總體來說,Cyborg的出現,在雲主機中支援 vGPU( 虛擬圖形處理單元 )的功能,這對於圖形密集型工作負載以及許多科學性的、人工智慧和機器學習的工作負載來說是一項重要的能力。