2012-06-07 48 views
2

我有兩個GPU,兩個相同(nvidia 680s),禁用SLI。如果我使用枚舉0適配器(GPU)創建設備和設備上下文,我的簡單清晰曲面程序以0.05ms /幀運行。但是,如果我使用enum 1適配器(其他GPU)運行它,它會以超過1ms /幀的速度運行。DirectX 11 - 第二塊GPU速度較慢?

我的一個GPU如何比另一個慢得多?根據主板,它們都安裝在正確的PCI 3.0 16x插槽中。

我錯過了什麼嗎?我查看了代碼1000x,並且幾乎排除了編碼中的錯誤 - 我只是在創建設備和交換鏈時使用的適配器之間進行了交換。

+0

我不*投票作爲題外話,因爲「創建設備......排除了編碼錯誤......」。也就是說,減速在某些* code *的效果中被注意到,而不是一個更適合於其他地方的一般系統條件。 (然而,最小代碼測試用例是可取的。) – 2012-06-07 03:00:51

+1

您確定這些PCI插槽是否相同?我有一個主板的某個地方只能全速運行其中一個PCI插槽,即使物理插槽相同...... –

回答

2

您沒有提供足夠的信息來了解您的代碼的功能,特別是在顯示方面。

但我的猜測是,一個GPU控制您的輸出使用的顯示器,而另一個則不然。因此,在第一個GPU上立即顯示渲染,但在另一個情況下需要兩個GPU之間的全幀緩衝副本。

這將不得不通過PCIe。 16x PCIe 3仍然是15.6GB/s,所以這意味着〜10MB的傳輸,這與1920x1200顯示器的大小有關。

您能否提供更多關於您的分辨率和顯示內容的細節?這是全屏嗎?

+0

我認爲這可能是這種情況 - 適配器0連接到屏幕,而適配器1 isn 「T。我沒有意識到轉會會有多大的罰款。 – user1043761

+0

嗯,這是一個固定成本。無論它是「高」還是值得商榷的,但實際上,如果可以的話,您希望使用擁有顯示器的GPU進行繪製。 SLI通過這種方式支付相同類型的成本。這是AFR中2個GPU之間時間差異的來源之一。 – Bahbar