2011-08-04 34 views
4

我可以在我的桌面上安裝兩個混合芯片組/ AMD代gpus;一個6950和4870,並專門爲opencl/gpgpu提供一個gpu(4870),消除了視頻輸出設備或操作系統對顯示驅動的考慮,使4870基本上保持深度睡眠或出現/禁用,直到它流處理器被調用?有沒有辦法在windows 7系統中獨立執行任務並使用異構多重gpus?

與4870相比,6950是opencl計算中的重量級人物;足夠使它能夠緊縮數字,並且仍然允許活動的用戶會話,甚至是網頁瀏覽。但是,只要我導航到帶有嵌入式Flash視頻的網頁,就忘記了我正在運行的內容並打開媒體播放器或媒體中心 - 基本上任何需要6950初始化UVD的gpu加速視頻任務都會導致顯示系統掛起。

我正在尋找一種方法在開放式pcie插槽中插入我的4870,讓它處於休眠狀態,接近0的發熱量和功耗(基本上只保持接口信號,就像以太網卡一樣一個斷電的桌面,維護線路並等待WOL命令),並達到一個D0狀態(我根本不在乎這個喚醒事件的延遲是否在幾秒鐘的範圍內),然後在它自己的計算機上運行opencl計算。我不希望實現非CF異構gpu團隊設置!以UVD掛起的情況爲例,我會看到手動停止6950上的opencl計算,然後在4870上開始這些計算,將多媒體使用/遊戲的6950釋放爲我的願望結果(授予,計算打中率)。更好的是,如果兩個gpus可以在沒有人使用桌面的情況下獨立運行類似的計算。我甚至不介意是否必須啓動4870的電源狀態轉換進入「關閉」狀態(例如,通過桌面上的快捷方式),只要不需要重新啓動系統即可,結束用戶會話並註銷...和4870的手動開/關'開關'是任何熟練的Windows終端用戶可以做的事情 - 就像點擊快捷方式來運行腳本,甚至進入設備管理和切換啓用/禁用。只要4870不會因偶爾單獨使用而閒置。

我想不出一個解決方案,以促進這一功能,除了寫一個新的ini爲4870覆蓋典型的電源管理特性作爲一個典型的圖形卡使用該設備寫入(比如放入/退出無需放棄irq或其他分配的資源以在接口可用性和尋址方面「保持開放」。但這是一項遠遠超出我的能力的努力,我很容易看到需要實現許可的額外參與。

回答

0

Windows 7(也許是Windows 10)沒有定義「選定的設備」。軟件有責任選擇合適的設備。例如,谷歌瀏覽器的附加軟件(用於視頻解碼)將選擇任何gpu作爲其中定義的第一個目標。如果它是爲了選擇第一個索引的設備而編寫的,那麼它需要兩張卡的pci-e重新插入以切換其角色。

該操作系統寫入適合大多數(%99)用戶,而不是針對多GPU用戶(%1?)。它只是選擇一個gpus或軟件對設備進行顯式控制,並簡單地對所有gpus進行基準測試,並選擇最快速度。所以你應該尋找軟件的能力,而不是操作系統。

同樣的事情也適用於遊戲!當我在vulkan api上播放dota-2時,它使用HD7870進行計算(紋理,粒子等),但使用R7-240進行圖形處理!但我更喜歡相反的原因,因爲R7-240不能快速抽取。因爲這個遊戲是爲大多數沒有超過1GPU的人寫的。

錢控制發展我很抱歉。然後,金錢需要市場滲透。 %99市場滲透需要爲公衆編寫代碼,而不是科學家或富人。公衆只有1 gpu,而且價格便宜。

我想這一點:

  • 選擇1個GPU爲:解壓縮文件,wathing視頻,壓縮網絡上傳和緩存文件系統(最高支持2GB)
  • 選擇另一個GPU爲:遊戲,OpenCL應用,礦山,...
  • 選擇所有的GPU爲:遊戲基準測試,通過我的應用程序視爲單個設備,...

,但並不保證要成爲真正的因爲錢還是會談。

如果我是一名驅動程序開發人員,我會添加一個「重命名」選項(並且變得很差),將N個虛擬設備提供給操作系統,因此操作系統和其他軟件只能獲得1/N通過使用這些重命名或主要設備,整個系統的功率或N/N。重命名可以是一個GPU的單個計算單元。當操作系統告訴驅動程序「給我%25共享相同內存的所有內核」時,它會選擇一個設備並給出系統總內核的25%。所以即使用戶也可以爲自己的工作創建重命名。

我甚至向微軟發送了一條消息:「我的第二塊顯卡上的文件系統緩存」,但是他們沒有返回!

相關問題