2011-04-06 39 views
0

我有一個應用程序在Tesla X2050適配器上使用CUDA進行一些處理。 在我的系統中,我也有一個Qudaro4000,爲此目的不被應用程序使用。另外我還有另一個用來顯示圖案的Geforce2xx圖形卡。 顯示圖案的部分只是在GeForce2xx適配器上創建全屏DX9設備的代碼,並在每個顯示框中顯示不同的圖案。爲此目的,它需要顯示它VSynched,它不應該跳過或錯過任何模式。 我遇到的問題是,當我打開VSync時,所有CUDA處理變得極其緩慢。如果我禁用VSynch,那麼我會撕裂不想要的圖案。 如何結合CUDA處理和模式顯示? 出於上下文的考慮,這是針對結構化照明系統完成的,其中一個適配器連接到投影模式的投影儀。特斯拉適配器上的CUDA和另一個NVIDIA適配器上的全屏DX窗口

編輯10.4.2011: 我發現了爲什麼序列在一臺計算機上完美投影,以及爲什麼圖像在更強大的計算機中不時失速。 不同之處在於其中一個具有板載英特爾GPU,另一個具有3個NVIDIA GPU。那麼,對於這個特定的任務,板載英特爾GPU比任何NVIDIA GPU都做得更好。 這可能是因爲不同的驅動程序,我在尋找是否有任何種類的選項\參數組合在NVIDIA驅動程序中設置爲具有與intel GPU相同的完美性能。

謝謝。

Ofer。

回答

0

一個解決方案是緩衝創建的圖像並按順序顯示它們。

您如何使用DX9上下文?你是否將2050的結果複製到DX9上下文? 您是否在計算端使用AsyncCalls?

+0

DX9比賽與特斯拉完成的比賽完全分離。我不會複製任何方向。 DX9上下文的目的是在結構化燈光下在投影機上顯示圖案。我到現在爲止所做的是使用一臺單獨的計算機來運行DX9部件。它的工作完美。問題是當我嘗試在同一臺計算機上進行計算和模式投影時。這應該是理論上可行的,但似乎我擁有3個GPU的i7不能很好地處理這種多任務處理。我投影機失速,因此一切都不同步。 – Ofer 2011-04-10 10:35:31

1

前段時間我已經解決了這個問題。

這個問題發生的原因是因爲VSync也停止了CUDA計算,所以它會停止整個GPU。所以有兩種解決方案:

  1. 如果你有一個特斯拉,那麼你可以設置特斯拉到TCC模式,這是一個獨佔模式。這意味着顯示GPU(Geforce或Quadro)中的VSync不會使特斯拉和CUDA計算失速。

  2. 嘗試儘可能晚地調用VSync拖延操作,或者嘗試調用VSync拖延操作,而不是暫停vsync,執行測試命令。

在DX9當前命令具有兩種模式,要麼塊(GPU),並等待垂直同步或測試如果存在的話是成功的,如果不是,它不熄火。

結合使用睡眠,測量最後一幀的時間或者測試Present是否成功,可以使GPU從VSync儘可能少地停頓。 我可以在同一塊GPU(GeForce 320M)上以這種方式運行CUDA結構光解碼+ DX9 + 3D模式投影。