2010-02-14 801 views
20

我寫了一個cuda程序,我在Ubuntu上測試它作爲虛擬機。原因是我有Windows 7,我不想安裝Ubuntu作爲輔助操作系統,我需要使用Linux操作系統進行測試。 我的問題是:虛擬機會限制gpu資源嗎?那麼,如果我在我的主操作系統下運行它,而不是在虛擬機上運行它,我的cuda代碼會更快嗎?在VMware上的cuda程序

+1

我覺得如果它在虛擬機下工作,你會很幸運。您可以在Windows 7上進行CUDA開發。如果出於某種原因,如果您使用開發工具而不是生產環境,爲什麼不使用仿真功能? – dangerstat 2010-02-14 11:44:08

+0

我需要我的cuda算法的準確速度結果。它已經在VM下工作,但我不確定我是否使用完整的gpu資源(由於VM)。 – scatman 2010-02-14 14:42:24

+0

在VM中,它應該以仿真模式運行,運行deviceQuery(來自SDK)或調用cudaGetDeviceProperties進行檢查。 – Tom 2010-02-16 06:52:48

回答

19

不幸的是,虛擬機模擬一個圖形設備,因此你將無法訪問真正的GPU。這是因爲虛擬化處理多個虛擬機訪問同一設備的方式 - 它提供了一個共享真實設備的層。

有可能獲得對硬件的真正訪問權限,但只有當軟件和硬件組合正確時,請參閱SLI Multi-OS site瞭解詳細信息。

那麼你很可能出於運氣與虛擬化路線 - 如果你真的不能在Windows中運行你的應用程序,然後你只限於以下內容:

  1. 不現實的:安裝Linux,而不是
  2. 不切實際的:旁邊(不是一個選項)
  3. 開機進入現場CD安裝Linux,你可以準備與CUDA一個磁盤映像,每次
  4. 安裝程序安裝圖像(或乞討/借)用Linux的一個單獨的盒子和遠程訪問它
2

隨着CUDA 3.1的它的虛擬化能力不生動,所以唯一可用的方法是直接在目標上運行CUDA程序HW + SW

10

我只是聽說在NVIDIA的GPU技術大會上發言由研究員命名爲崔曉輝(橡樹嶺國家實驗室)。除此之外,他還描述了使用稱爲gVirtuS的東西從虛擬機訪問GPU。他沒有創建gVirtuS,而是將其描述爲開源的「虛擬cuda」驅動程序。請參閱以下鏈接: http://osl.uniparthenope.it/projects/gvirtus/

我還沒有嘗試gVirtuS,但聽起來像它可能會做你想做的。

17

我曾經遇到類似的任務。我最終做的是在啓用持久模式的8GB拇指驅動器上安裝Ubuntu。

這給了我4GB安裝CUDA和我需要的一切。

有一個可引導的USB棒可以是非常有用的。我建議閱讀this

此外,this link有一些非常有趣的材料,如果你正在尋找其他發行。

2

使用rCUDA向虛擬機添加虛擬GPU。

+2

截至2012年11月30日當前穩定版本(v3.2)以及測試版發佈新的rCUDA 4 Windows和Linux發行版不可互操作。另外,32位和64位版本還不能互操作。這意味着在Windows主機上運行的Linux VM不能使用rCUDA。 – SmileAndNod 2013-01-17 19:13:57

+0

rCUDA似乎不是開源的(該網站有一個軟件請求表單),似乎並不支持所有的linux,比如arch linux。 – simonzack 2015-11-20 09:49:38