--文末贈書--
Nvidia(輝達) 作為GPU領域的Top供應商,從2010年起就推出了GPU虛擬化的方案,其大致的發展路線圖如圖8-1所示。
在圖8-1中, GPU虛擬化的發展路線分為三個階段 :以vCUDA為代表的APIRemoting階段、以GRID vGPU為代表的Driver Virtualization(驅動虛擬化)階段,以及以MIG為代表的Hardware Virtualization(硬體虛擬化)階段。
API Remoting與vCUDA
vCUDA技術出現於2010年前後,其實作思路是:在虛擬機器中提供一個物理GPU的邏輯映像——虛擬GPU,在使用者態攔截CUDA API,在虛擬GPU中重新導向到真正的物理GPU上執行計算。同時,在宿主機上基於原生的CUDA執行時庫和GPU驅動,執行vCUDA伺服端,接管虛擬GPU攔截的CUDA API,同時進行計算任務的排程。
vCUDA的工作原理如圖8-2所示。
從圖8-2可以看出,虛擬機器的CUDA執行時庫被替換為vCUDA,其作用就是攔截來自CUDA App的所有CUDA API呼叫。vCUDA執行時庫會在內核中呼叫vGPU驅動(或稱之為「客戶端驅動」),vGPU驅動實際的作用就是透過虛擬機器到宿主機的VMRPC(Virtual Machine Remote Procedure Call)通道,將CUDA呼叫發送到宿主機。宿主機的vCUDA Stub(管理端)接收到CUDA呼叫後,呼叫宿主機上真正的CUDA執行時庫和物理GPU驅動,完成GPU運算。
在客戶端驅動處理API之前,還需要向管理端申請GPU資 源。每一 個獨立的呼叫過程都必須向宿主機的管理端申請GPU資源,從而實作GPU資源和任務的即時排程。
顯然,vCUDA是一種時間片排程的虛擬化技術,也就是「分時多工」。此種實作對於使用者的套用而言是透明的,無須針對虛擬GPU做任何修改,而且也可以實作非常靈活的排程,單GPU能服務的虛擬機器數量不受限制。但缺點也是顯而易見的:CUDA API只是GPU運算使用的API中的一種,業界還有DirectX/OpenGL等其他API標準,而且同一套API又有多個不同的版本(如DirectX 9和DirectX 11等),相容性非常復雜。
本文節選自【大模型時代的基礎架構:大模型算力中心建設指南】 一書
書中不但講解了 大模型相關的基礎技術 ,比如AI基本概念、GPU硬體、軟體、虛擬化等,還講解了 大模型基礎設施的核心內容 ,包括GPU集群儲存、網路、I/O、算力排程、網路虛擬化、管理和營運等,並結合實際案例,講解了如何進行機器學習套用開發與執行平台設計,在此過程中把本書中的重點內容「串聯」起來進行了講解,以期讀者建立整體的認知。
限時五折優惠,快快搶購吧!
敲黑板!
本次
民工哥技術之路
公眾號聯合
博文視點
為大家帶來贈書福利,拼手氣的時候到了,看看誰才是錦鯉?
點選下方公眾號名片回復關鍵字 大模型架構 參與抽獎!
規則:
1、民工哥公眾號讀者專屬(同一使用者近期多次中獎無效,非IT技術讀者請勿參與,發現作弊行為永久拉黑!請把機會留給其他人)。
2、中獎需於 12 小時內主動聯系小編發送收貨資訊,逾期則視為自動放棄。