聊聊GPU虛擬化應用
提起NVIDIA,你多半會想起顯卡,像我一般年紀的人,對顯卡的理解就是游戲加速。上大學時玩實況足球,有個GeForce顯卡是一件很幸福的事情,比起主板上集成的顯卡,它的存在能夠讓我們游戲中的草皮更加翠綠,腳下足球更加的行云流水,那時候的實況足球可以實現(xiàn)足球經(jīng)理人的任何夢想,鈔票能買到任何想要的球員。門將圣卡西,后衛(wèi)由左至右分別是馬爾蒂尼、內斯塔、特里、薩內蒂;中場維埃拉、法布雷加斯、小羅;前鋒則是梅西、亨利、羅納爾多;陣容夠炫吧!
隨著人工智能的火爆發(fā)展,顯卡不再是游戲的代名詞了,而被冠上了“機器學習心臟”這個高大上的名字。而nvida公司則憑借視覺計算領域的絕對王者地位,3年時間市值***翻了6倍之多。我剛入職人工智能領域時,不理解為什么顯卡會成為“深度學習”的依賴,相信很多人也跟我有一樣的困惑;簡單來說,GPU主要側重于計算能力,它由數(shù)千個更小、但更高效的Cores組成,通過并行計算的方式,處理多重且復雜的任務。
CPU我們知道,它的全稱是中央處理器,是一臺計算機的控制核心和計算核心。它的主要功能在于邏輯控制和任務調度。因此GPU較之于CPU,CPU更像是一個公司的CEO,掌管的整個公司的運營和戰(zhàn)略,統(tǒng)籌整個公司的工作。而GPU則是某個部門的得力干將,能力強,迅速并超額完成公司交于的任務。
深度學習是模擬人腦的神經(jīng)系統(tǒng)組成,通過設定一些規(guī)則和數(shù)學網(wǎng)絡模型而發(fā)展起來的一門學科,目的是為了讓計算機能夠像人腦一樣去思考,去認識和理解這個世界。由于計算機本身沒有思維能力,因此需要大量的數(shù)據(jù)去訓練它,因此,它對電腦處理器的要求就必須具備高效的并行計算能力,這一點對于以串行為主、核心數(shù)基本在2位數(shù)的CPU而言是不具備的。因此,GPU憑借其千級核心,高效運算的特點,成為了深度學習、模型訓練的最理想選擇。
我所在公司也在涉及人工智能領域,GPU顯卡的數(shù)目也有了一定規(guī)模,如Tesla的M40、P40、P100等顯卡都有所應用,當前這些顯卡主要用于算法與Demo的訓練。我們通過Docker虛擬化形式實現(xiàn)對GPU資源的分發(fā)利用。
首先在搭載有GPU的宿主機上安裝CUDA架構環(huán)境,進入CUDA Tookit Download官網(wǎng),現(xiàn)在對應的版本。安裝完成后,還需要安裝 出DNN,這個是專門對深度學習框架設計的一套GPU加速方案,支持Caffe和TensorFlow等框架。
基礎環(huán)境安裝完畢后,即可以利用nvidia提供的nvidia-docker進行GPU的Docker虛擬化了。官方提供了這些包的安裝源列表,安裝起來還是比較簡單的,安裝完畢后,可以通過
docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
查看docker GPU容器的運行情況。
***可以通過 learningtensorflow.com 官方提供的基于TensorFlow的基準測試腳本,進行GPU與CPU的對比測試,可以發(fā)現(xiàn),GPU在并行運算上,性能要由于CPU很多的。
如上圖所示,以上基于Docker虛擬化GPU的方案,從本質上說,GPU資源被打包在一個workspace(即Container)中,workspace運行在宿主機上。這種虛擬化方案雖然能夠解決獨立訓練的問題,但同時也存在一些單點和依賴性問題。首先Workspace的運行依賴于宿主機的運行情況,宿主機從本質上講是一個孤島;其次,Docker Container的正常運行,也決定了Workspace的生存情況;第三,由于Container是根據(jù)Docker命令生成的,在彈性擴容上,存在一定的限制。
面對以上問題,我們考慮,是否能夠采用另外一種虛擬化方案,讓GPU也向云端靠攏?云計算的發(fā)展,使得應用場景發(fā)展至異構計算體系架構,隨著機器學習、深度學習的發(fā)展,對GPU、FPGA等專業(yè)計算芯片也提出了虛擬化的需求。最早可以追溯到2013年,NVIDA發(fā)布了GRID K1產(chǎn)品,標志著GPU虛擬化的成熟運用。“A Full GPU Virtualization Solution with Mediated Pass-Through”,及分片虛擬化的vGPU技術,Nvidia對于分片虛擬化社區(qū)的推動起了至關重要的角色,并在自己的GRID一系列產(chǎn)品線中,不斷地發(fā)展和更新著vGPU技術。
虛擬化技術的最終目標,就是努力提供與工作人員在物理機上使用時一樣的體驗。 NVIDIA GRID®VirtualPC(GRID vPC)和GRID®
虛擬應用程序(GRID vApp)可為每個用戶改進虛擬桌面和應用程序,并在NVIDIA®Tesla®GPU上構建經(jīng)過驗證的性能,實現(xiàn)卓越的生產(chǎn)力,安全性和IT可管理性。 虛擬化軟件劃分了Tesla GPU資源,因此GPU可以在運行任何應用程序的多個虛擬機之間共享。目前GRID各release版本對GPU的虛擬化支持如下:
基本上能夠支持市場上主流的Tesla GPU型號。
以下分享一個本田集團利用GRID對GPU的應用案例
通過GRID管理平臺,Honda IT部門通過調度物理GPU M60,根據(jù)用戶需要并提供適當數(shù)量的vGPU,并能夠通過單個Dashboard管理vGPU,從而確保每個用戶都有足夠的運算性能完成所處理的任務,如此做到了更高級別的彈性擴容。如同云存儲、云計算資源類似,GPU也實現(xiàn)了按需分配。
人工智能是第四次工業(yè)革命的***技術,大數(shù)據(jù)和基于GPU的深度訓練是人工智能發(fā)展的關鍵所在,無論之于國家還是企業(yè),都應該通過技術創(chuàng)新,在這一次全世界范圍內的浪潮中開啟屬于自己的一片天地。
https://v.youku.com/v_show/id_XNjY3MTY4NjAw.html
一個很經(jīng)典的視頻,對比了GPU和CPU在圖形運算處理上的差別。