tft每日頭條

 > 圖文

 > fpga如何實現gpu的功能

fpga如何實現gpu的功能

圖文 更新时间:2024-09-27 12:00:43
GPU虛拟化

GPU是計算機的一個重要組成部分,但GPU這類重要資源虛拟化的性能、擴展性和可用性相對于CPU等處于滞後的階段。例如,英特爾的GPU虛拟化解決方案gVirt中,單個物理GPU僅支持7個虛拟GPU(VGPU),而Xen支持512個虛拟CPU。2013年,亞馬遜首次推出了商業化的GPU實例。2017年2月,來自于英特爾第一個GPU全虛拟化方案KVMGT才正式加入Linux内核4.10。

傳統GPU虛拟化通過API轉發的方式,将GPU操作由虛拟機發送到虛拟機監控器代理執行,該方法被大量主流虛拟化産品采用并支持圖形處理,但并非真正意義上的完整硬件虛拟化技術,其性能和可擴展性均無法滿足通用GPU(GPGPU)計算等應用(如機器學習和高性能計算)的需要。

GPU虛拟化的軟件模拟方法直接将設備分配給指定的虛拟機,采用類似于CPU虛拟化中的二進制轉換方法進行模拟。但相對于CPU,GPU的特性複雜,不同的設備提供商之間的GPU規格區别很大,GPU的資源很難被拆分,模拟的效率低。因此,典型的QEMU軟件僅模拟了視頻圖形陣列(VGA)設備的基本功能,它通過一個半虛拟化的圖像緩沖區來加速特定的2D圖像訪問,不符合高效、共享的虛拟化要求。

GPU虛拟化的設備直通方法将物理GPU指定給虛拟機獨占訪問。與API轉發提供了良好的GPU共享能力相比,設備直通方法通過獨占使用,提供了優異的性能。例如,基于英特爾的VT-d/GVT-d技術,通過翻譯DMA訪問的内存地址的方法,讓GPU分配給一個虛拟機使用,能夠達到與原生物理GPU相近的性能,但犧牲了共享特性。英偉達(NVIDIA)的Tesla GPU也提供了類似的虛拟化方案Grid,虛拟機可以通過直通的方式直接訪問物理GPU。

GPU虛拟化的直通共享方法允許虛拟機直接訪問對性能敏感的資源(如GPU訪問顯存),可基本解決直通和共享的矛盾,采用類似于SR-IOV的硬件輔助虛拟化技術,通過影子頁表隔離每個虛拟GPU的訪問空間,使得大多數的命令執行不受虛拟機監控器的幹預,因此虛拟GPU就可以獲得接近非虛拟化的性能。由于GPU結構複雜,技術限制多,直到2014年才提出了兩種針對主流GPU平台做硬件輔助的全虛拟化方案,即基于英偉達GPU的GPUVM和基于英特爾GPU的gVirt。GPUvm支持全虛拟化,也支持半虛拟化。在全虛拟化模式下運行開銷比較高。在優化過的半虛拟化模式下,性能比原生系統要慢2~3倍。gVirt是第一個針對英特爾平台的GPU全虛拟化開源方案,為每個虛拟機都提供了一個虛拟的GPU,并且不需要更改虛拟機的原生驅動。


fpga如何實現gpu的功能(硬件虛拟化之GPU虛拟化和FPGA虛拟化方法)1


FPGA虛拟化

FPGA作為一種可重新配置的計算資源,與現有的虛拟化框架并不兼容。與GPU和CPU不同,FPGA的使用情景趨向于獨占。一方面,不同租戶可能使用不同的訪問接口,難以使用統一的指令集;另一方面,即使使用統一的接口規範,在租戶切換時都需要進行耗時的重新燒寫和複雜的狀态保存,導緻了系統大量的時間和空間開銷。目前FPGA器件與各自的開發生态(工具鍊、庫等)具有緊密的耦合關系,特定器件型号的FPGA需要特定的軟件支持才能生成可供燒寫的二進制文件,還沒有統一的二進制接口規範。

為了将FPGA集成到雲平台中,從2014年起,陸續展開了FPGA虛拟化的研究。多倫多大學的斯圖爾特·拜瑪(Stuart Byma)等通過OpenStack在多個FPGA之間提供了部分可重構區域作為雲計算資源,允許用戶像啟動虛拟機一樣啟動用戶設計的或者預先定義的通過網絡連接的硬件加速器。IBM中國研究院的陳非(Fei Chen,音譯)等提出了将FPGA集成到數據中心的一般性框架的,并基于OpenStack、LinuxKVM、XilinxFPGA完成了原型系統,實現了多虛拟機(VM)中多進程的隔離、精确量化的加速器資源分配和基于優先級的任務調度。微軟提出了一種新的雲架構,FPGA不僅與CPU通過PCIe連接,也通過數據中心以太網相連,這樣不僅可以完成對網絡功能的加速,也能用于其他普通應用。安卡·伊奧達科(Anca Iordache)等提出了FPGA group,即一塊或者多塊有相同電路配置的FPGA集合,可被多個希望使用相同電路的用戶共享。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved