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

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

dmi 執行 eric org 裸機 產生 學習 png playbook

隨著機器學習和機器視覺的快速發展,用戶對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( 虛擬圖形處理單元 )的功能,這對於圖形密集型工作負載以及許多科學性的、人工智能和機器學習的工作負載來說是一項重要的能力。

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