Maxwell不支持異步計算?是驅動的問題
2023-06-29 20:06:17 1
首款DX12遊戲《奇點灰燼》讓AMD、NVIDIA兩家又一次吵翻了天,不同的是這次AMD佔了上風,R9 290X顯卡在DX12中都可以逆襲GTX 980顯卡了,而NVIDIA顯卡有些神傷,DX12並沒有帶來什麼優勢,不復當年DX11之勇了。遊戲開發者指出NVIDIA處於劣勢的原因是他們並不支持DX12的異步運算(Async Compute),但現在情況有所變化,NVIDIA的Maxwell顯卡硬體上是支持異步運算的,問題出在驅動上,他們正在跟遊戲開發商合作解決這個問題。
我們簡單回顧下問題的來源:Oxide開發的《奇點灰燼》是首款正式支持DX12的遊戲,在這個測試中AMD的GCN架構顯卡表現很猛,DX12下性能大幅提升,R9 290X顯卡都可以逆襲NVIDIA的GTX 980顯卡,但NVIDIA自己的顯卡從DX12受益不多,性能提升並不大。對此,NVIDIA表示《奇點灰燼》只是個例,並不能代表DX12遊戲。
考慮到開發商Oxide多年來一直都是AMD的合作夥伴,從Mantle問世時就在合作了,所以有些不明真相的群眾也在懷疑這種情況是否是AMD出錢負優化友商(一如之前NVIDIA在Gameworks遊戲中被人懷疑的那樣),所以開發商Oxide也不得不作出公開回應,並指出了NVIDIA顯卡在遊戲中不行是因為不支持異步運算,所以他們不得不關閉在N卡上關閉這個功能。
隨著雙方的進一步溝通,Oxide公司開發者日前表示「對於異步運算,我們跟NVIDIA做了進一步的溝通,雖然現在的驅動還沒有完全應用這個技術,但它看起來是支持的。我們正在跟NVIDIA合作以期實現完整的異步運算支持,有更多消息時我們會儘快通知大家。」
問題的根源實際上AMD、NVIDIA兩家在異步運算上使用了不同的實現方式,NVIDIA的解決方案是軟體、硬體一體的,並不單單是硬體功能。另一名開發者也在Overclock論壇上解釋了兩家的不同,裡面涉及很多遊戲技術名詞,來看下:
NVIDIA的硬體架構中,AWS(Asynchronous Warp Scheduler,異步彎曲調度器)是硬體功能單元,每個SMM單元(類似AMD GCN架構中的Shader Engine渲染引擎)有4個AWS單元。與GCN架構不同,Maxwell 2架構中這個調度器是軟體控制的。但在AMD的GCN架構中,驅動程序只是負責把隊列發送到ACE(Asynchronous Compute Engine,異步運算引擎)或者GCP(Graphic Command Processor,圖形命名處理器,也可以處理計算任務)、DMA引擎(複製)中,然後都是ACE引擎負責處理、分配的。
簡單來說就是,NVIDIA的Maxwell架構中隊列、分配等任務都是驅動程序負責的,AWS、DMA引擎、CUDA核心都是硬體實現的。而在GCN架構中,隊列/任務分配/ACE等都是硬體實現的,複製(DMA引擎)也是硬體的,CU單元也是硬體的。
說了這麼多,其實簡單一句話就是NVIDIA的Maxwell 2架構也是支持異步運算的,但實現這個功能需要軟體及硬體兩方面的參與,而NVIDIA現在出問題的地方就是驅動程序還沒做好支持。與之不同的是,AMD的GCN架構中異步運算基本上都是硬體單元實現的,簡化了開發,也不依賴驅動程序。■