隨著Windows10操作系統(tǒng)的發(fā)布,DX12這一全新的API也進(jìn)入了我們的眼球。與以往的任何一代DX API都不同,從DX12開始,應(yīng)用、游戲的開發(fā)者們可以接觸到CPU或GPU的底層,并進(jìn)行有效率的優(yōu)化調(diào)用,充分地發(fā)揮硬件的效率。
生意似乎不太好的AMD,與微軟進(jìn)行了一次深層次的合作,針對(duì)DX12的環(huán)境下,對(duì)自家的CPU和GPU作出了三大優(yōu)化,這是否能成為AMD在DX12時(shí)代力挽狂瀾的籌碼呢?
一、增強(qiáng)多核心CPU工作效率
眾所周知,核心數(shù)量一直是A家CPU最大的特點(diǎn),相比Intel保守地增加核心,通過改進(jìn)架構(gòu)和設(shè)計(jì)來提高單個(gè)核心性能、從而提高整體核心性能的思路不同;AMD靠多核心的堆砌來獲得性能的加成。在之前的DX版本中,CPU在游戲中所起到的作用是什么呢?舉個(gè)例子,就是由CPU書寫“算式”(GPU準(zhǔn)備命令列表),然后將其放到GPU計(jì)算的書堆里(存儲(chǔ)到緩存區(qū)域),接著由GPU進(jìn)行計(jì)算。
由于曾經(jīng)的DX版本中,開發(fā)者們接觸不到這一過程,也就導(dǎo)致了開發(fā)者難以對(duì)其進(jìn)行多核心線程的優(yōu)化。所以也就是現(xiàn)在很多吧友們所說的游戲“吃單核”的現(xiàn)象。在DX12中,由于底層能夠更加透明地被開放給開發(fā)者,使得開發(fā)者可以簡(jiǎn)單地對(duì)這一過程實(shí)行優(yōu)化,就能夠有效地提升多核心的工作效率。根據(jù)AMD的說法,在八核心的AMD推土機(jī)處理器下,八個(gè)核心中的六個(gè)都可以得到充分利用。盡管目前這都還是PPT,沒有實(shí)踐證明它的效率到底如何,不過從原理上來看,這一說法似乎也并不是完全不靠譜的。
二、多卡互聯(lián)下的工作效率提高
AMD現(xiàn)有的Cross Fire交火技術(shù),是AMD花了不少精力開發(fā)并優(yōu)化的,相比NVIDIA的SLI技術(shù),它可以不需要橋接器(最新一代R9 300系顯卡已經(jīng)可以脫離橋接器),并且不需要授權(quán)費(fèi),可以降低組建成本。
在以往的DX版本中,如果不是開發(fā)者的特別優(yōu)化,部分游戲甚至都不支持多卡并聯(lián)或雙芯顯卡,這對(duì)多路GPU的顯卡造成了性能浪費(fèi)。最令人詬病的是顯存問題,顯存由于采用復(fù)制機(jī)制,所有并行工作的顯卡中,只能使用顯存最小的那張顯卡作為整個(gè)系統(tǒng)的顯存,對(duì)大顯存、多路玩家來說,就大大地造成了顯存浪費(fèi)的情況。
在DX12中,API開始原生地支持了多路顯卡,游戲、驅(qū)動(dòng)開發(fā)者可以對(duì)多GPU做出優(yōu)化,將計(jì)算任務(wù)分配到各個(gè)GPU上。甚至是核芯顯卡(因?yàn)槲恼轮黧w是AMD所以這里特指APU的核顯),都可以與獨(dú)立顯卡的GPU共同工作,即便這兩者性能差距比較懸殊,不過在這種核顯+獨(dú)顯的雙顯卡平臺(tái)并且臺(tái)式機(jī)上沒有方便自由地切換兩者的技術(shù)的情況下,核顯也不會(huì)被浪費(fèi),對(duì)消費(fèi)者來說也算是一件好事。另外,顯存的使用機(jī)制由復(fù)制變成了疊加,這也就是說可以讓多路顯卡的顯存疊加起來。以往,4張4GB獨(dú)立顯卡并聯(lián)工作,顯存也只有4GB,在4K游戲的潮流下已經(jīng)顯得有些捉襟見肘;而現(xiàn)在,4張4GB獨(dú)立顯卡并聯(lián)工作時(shí),顯存便可以達(dá)到16GB,這就解決了顯存浪費(fèi)的問題。
三、著色器異步計(jì)算引擎
在AMD上,這是一項(xiàng)硬件層面上的優(yōu)化。
什么叫做“著色器”。在早期的GPU上,“著色器”正如其名,是為頂點(diǎn)著色器計(jì)算出的三角形進(jìn)行著色計(jì)算的。不過現(xiàn)在,它的功能就更加多樣化了,可以支持各種通用計(jì)算。不過這里也就提一下,這其中涉及到GPU工作原理和發(fā)展歷史上,由于比較復(fù)雜,武林網(wǎng)小編能力有限,如果有興趣的吧友可以查閱更多資料了解。
在近代的GPU工作中,GPU運(yùn)用著色器進(jìn)行計(jì)算的時(shí)候,往往將指令進(jìn)行“排隊(duì)”式的工作。指令往往在緩存區(qū)中,等待上一組計(jì)算完成后,下一組才開始進(jìn)行計(jì)算。并且剛剛提到著色器的功能多樣化之后,功能之間、計(jì)算指令“隊(duì)伍”之間的切換、等待。在GPU的世界中就造成了較大的延遲。盡管后來通過軟件、硬件的結(jié)合優(yōu)化,廠商們?yōu)檫@個(gè)“排隊(duì)”式的工作方式進(jìn)行了改進(jìn),使得它擁有了優(yōu)先,暫停,繼續(xù)等稍微智能化一些的做法。提高了一定的工作效率,但這還不夠。
所以,AMD為使用GCN架構(gòu)的GPU設(shè)計(jì)了一個(gè)名為Asynchronous Compute Engine(異步計(jì)算引擎,簡(jiǎn)稱ACE)的東西,它可以智能協(xié)調(diào)GPU上著色器的計(jì)算。“排隊(duì)”式的工作邏輯被打破,ACE為指令進(jìn)行有計(jì)劃的、有規(guī)律的排序。還是提到剛剛的所說的著色器功能多樣化問題,這里舉個(gè)例子,假如指令中包含復(fù)制、圖形計(jì)算、通用計(jì)算三種不同的功能。有了ACE后,這些不同的功能會(huì)被ACE排好序,同時(shí)進(jìn)入GPU,進(jìn)行統(tǒng)一計(jì)算,并且它還擁有平衡功能,可以靈活地關(guān)閉、開啟計(jì)算用的單元。減少了以往切換、等待的延遲后,GPU的計(jì)算效率自然就提高了。這一點(diǎn)創(chuàng)新武林網(wǎng)小編認(rèn)為是不錯(cuò)的。
在部分DX12游戲的Benchmark測(cè)試中,AMD顯卡的工作效率的確都得到了顯著提升。而NVIDIA方面,在許多Benchmark測(cè)試中表現(xiàn)不佳,不過據(jù)NVIDIA所說,這是因?yàn)閷?duì)應(yīng)的驅(qū)動(dòng)和程序尚未到位,將來會(huì)解決這個(gè)問題。
在DX12時(shí)代,以往影響工作效率的問題得到了不小的改善,這一全新的API相信可以成為一座里程碑。至于AMD是否能真正在DX12憑借這三大優(yōu)化“逆襲”,還需要時(shí)間的驗(yàn)證。讓我們拭目以待。