我所知的有hyper-v, vmware, virtualBox, docker,還有win10商店裡面的linux子系統,這些中間該選哪個呢?或者還有更好的選擇嗎?


2020-6-2更新

woc ms好像真的良心發現了,wsl貌似要支持gpu了

GPU in Windows Subsystem for Linux (WSL)?

developer.nvidia.com圖標https://news.developer.nvidia.com/microsoft-and-nvidia-announce-june-preview-for-gpu-acceleration-support-for-wsl/?

news.developer.nvidia.com

下面是原回答

------------------------------------------------------------------

今晚剛好在嘗試顯卡直通,查完資料順便來回答一下

結論:目前無法將gpu直通進hyper-v內的虛擬機

  1. 如果是windows server 2016以上的系統,hyper-v支持DDA,但是需要主板支持(官方的說法好像是現在的大多數的電腦主板都支持?)
  2. 如果在windows 10上的hyper-v,是無法進行pcie直通的,如果非要嘗試只會得到如下報錯:

無法啟動虛擬機

3. 但是reddit上好像有人直接問了hyper-v的開發人員,得到的答覆是如果是amd的卡如果在windows server能直通的話,在win10也能直通(沒A卡沒試過),目前答主也沒搜到有人在windows 10上直通成功的案例....

4. windows server上好像是可以直通gtx 1070這種顯卡的,不一定需要企業版gpu,有人直通成功了...,不過nvidia會檢測當前顯卡是否工作在vm環境,如果在則會拒絕載入驅動。解決方案也有:https://forums.unraid.net/topic/69670-guide-fix-nvidia-code-43-issue-on-nvidia-gpu/

5. 同時有人做了對比,在同一台機器上同時安裝windows server 2016和windows 10,windows server 能通進去的顯卡,在win10下就是不行,估計是ms在代碼上做了屏蔽....

說不定哪天ms良心發現win10就可以用DDA了(x

或者wsl突然支持gpu?

由於答主本身電腦是win10,並沒有安裝windows server,所以沒法測試上面搜集到的資料的真實性....

參考資料:

  1. https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/deploy/deploying-graphics-devices-using-dda

2. https://www.videogames.ai/2019/02/07/Ubuntu-Hyper-V-GPU.html


Windows 10上的虛擬機都跑不了GPU版本的TensorFlow和pyTouch...建議直接使用Windows的版本。

Windows上支持虛擬機里使用Cuda的應該只有Hyper-V,但是條件苛刻:

1- 需要使用Windows Server 2016;

2- CPU需要支持SLAT,還有VT-D或者I/OMMU;

3- 企業版GPU,GeForce不行。

這明顯不是提供給個人的方案了...


消費卡的話,需要做一點 hack。

比如把 RTX 2070 Super 虛擬成 T4:


如果要在win10上用gpu版本的tensorflow,和pytorch,只能用windows版本的。虛擬機要虛擬化gpu支持cuda也不是不行,但是要求很苛刻,

1.cpu和主板支持vt-d

2.VMware ESXi這個就悲劇了,這個是裝在裸機上的,所以就是沒法在win10上裝

3.Quadro系列專業卡,gtx系列的遊戲卡是肯定不行的。

win10的linux子系統是肯定不行的,沒有驅動。

所以還是要不老實用windows版本的tf和pytorch要不就裝linux。虛擬機是不可能的


linux好一些


正常人會安裝vSphere,在裡面跑Windows。而不是反過來。

https://docs.nvidia.com/grid/5.0/grid-vgpu-release-notes-vmware-vsphere/index.html


建議直接放棄, Windows 上 99% 的虛擬機 GPU 都是 API 虛擬化.


直接windows版拉倒吧,最簡單了。而且只有hyperv可以用物理gpu,


虛擬機GPU性能較好的就vmware或hyper-v

docker是Linux專用


GPU版本需要用到CUDA加速,虛擬機環境不支持CUDA,慎用


推薦閱讀:
相关文章