日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

如何利用多核CPU提高虚拟现实性能?

發(fā)布時(shí)間:2024/8/26 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何利用多核CPU提高虚拟现实性能? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

虛擬現(xiàn)實(shí)引領(lǐng)新時(shí)代令人驚喜的新體驗(yàn),但也帶來(lái)了各種新的挑戰(zhàn)。其中之一就是虛擬現(xiàn)實(shí)應(yīng)用“耗能”問(wèn)題。
?


虛擬現(xiàn)實(shí)挑戰(zhàn)了圖形和仿真技術(shù),以至于創(chuàng)造優(yōu)秀虛擬現(xiàn)實(shí)體驗(yàn)的硬件需求成為日前熱點(diǎn)。這些高要求給虛擬現(xiàn)實(shí)體驗(yàn)背后的軟件帶來(lái)了巨大的壓力。這些軟件該如何充分利用現(xiàn)有的硬件,包括如何更好利用多核CPU。

多核的崛起

在提升計(jì)算機(jī)工作速度的道路上,晶體管數(shù)量成倍增加,CPU時(shí)鐘頻率也穩(wěn)步提高。不幸的是,隨著晶體管數(shù)量增多、時(shí)鐘頻率的提升,處理器就需要消耗更多的能源,產(chǎn)生的熱量也隨之增加。過(guò)熱會(huì)損壞CPU元件。你也許留意到,使用手機(jī)玩游戲時(shí),手機(jī)會(huì)發(fā)燙。因此CPU制造商需要在速度和熱量之間尋求平衡,確保所產(chǎn)生的熱量對(duì)設(shè)備無(wú)害,也就是通常提到的散熱層。

處理這個(gè)問(wèn)題的趨勢(shì)是把多核CPU執(zhí)行核置于時(shí)鐘頻率較低的物理芯片上。雙核CPU執(zhí)行任務(wù)的速度是單核的雙倍。但是,它耗能少,產(chǎn)熱少。

單核CPU幾乎退出了市場(chǎng)。iPhone 6帶有雙核處理器。高端安卓手機(jī)通常是八核。主流PC電腦制造商也在推出八核芯片。甚至PlayStation 4也配備八核處理器。但是目前為止,開(kāi)發(fā)商只使用了八核中的六核。

充分利用多核,就需要高效的多線程軟件系統(tǒng)。

多核編程

常言道:“天下無(wú)免費(fèi)的午餐。”多線程編程或引擎使用多核CPU需要深思。頭號(hào)麻煩就是數(shù)據(jù)沖突。多核CPU執(zhí)行路徑需要訪問(wèn)相同的數(shù)據(jù)。

這有一個(gè)相對(duì)簡(jiǎn)單的例子。一個(gè)CPU將數(shù)值寫(xiě)入內(nèi)存,手機(jī)游戲交易同時(shí)另一個(gè)CPU試圖讀取同一個(gè)數(shù)值。第二個(gè)CPU可能只讀到部分?jǐn)?shù)據(jù),因此這個(gè)數(shù)據(jù)是無(wú)用的。這會(huì)導(dǎo)致程序奔潰或意料之外的結(jié)果。

為保護(hù)被CPU同步訪問(wèn)的數(shù)據(jù),程序員使用了同步對(duì)象。但進(jìn)行同步時(shí),CPU需要等待同步完成,就會(huì)出現(xiàn)性能不平衡和耗費(fèi)時(shí)間。從架構(gòu)設(shè)計(jì)最大限度地減少同步數(shù)據(jù)量是最優(yōu)的方案,但這也使得充分發(fā)揮多核的作用變得困難起來(lái)。如果程序員錯(cuò)誤地設(shè)計(jì)和執(zhí)行程序,有可能會(huì)讓多核的執(zhí)行速度變得更慢。

游戲引擎的性能就是有關(guān)收集信息、模擬和渲染。引擎運(yùn)行得更快更穩(wěn),幀率就更快、用戶體驗(yàn)也更好。要做到每秒90幀,就需要在11毫秒內(nèi)完成信息收集、模擬和渲染。

而虛擬現(xiàn)實(shí)需要渲染兩次,每只眼睛一次。11毫秒的時(shí)間非常短,所以游戲開(kāi)發(fā)者為了保持每秒90幀的速度,通常會(huì)降低內(nèi)容的質(zhì)量。當(dāng)然,體驗(yàn)感就變得較差。

許多引擎需要進(jìn)行設(shè)計(jì)上的改進(jìn)以支持多核。這可以提高一些核的性能,但數(shù)據(jù)沖突又會(huì)抵消一些。這不再是幾個(gè)CPU核心的問(wèn)題了。

改造多核

主流游戲大多通過(guò)各種形式的功能性多線程進(jìn)行改造。

一般首要做的就是將渲染劃分到兩個(gè)不同的線程中,然后確定有助于(如物理和AI )平行化的區(qū)域。

較于線性地循環(huán)所有的物理和AI對(duì)象,工作會(huì)被分配到多核CPU運(yùn)行的多線程上。當(dāng)工作完成時(shí),程序就回到線性執(zhí)行。更高級(jí)的系統(tǒng)允許線程空閑的時(shí)候能自己給自己安排工作。事實(shí)上,這種多線程有一定的好處,但CPU需要耗費(fèi)大量的時(shí)間實(shí)現(xiàn)同步,導(dǎo)致一個(gè)或多個(gè)CPU閑置。手動(dòng)調(diào)優(yōu)適用于單個(gè)產(chǎn)品,但它并不能自動(dòng)地負(fù)載均衡。造成的結(jié)果就是CPU使用率不均衡。大的游戲社區(qū)能夠識(shí)別多數(shù)舊游戲引擎,超過(guò)四核的處理器反而無(wú)法顯示其優(yōu)勢(shì)。

主流游戲引擎CPU使用率不均衡


另外一個(gè)辦法是重新設(shè)計(jì)多核引擎

對(duì)比現(xiàn)下的CPU結(jié)構(gòu)和未來(lái)設(shè)備藍(lán)圖時(shí),發(fā)現(xiàn)需要一個(gè)新的系統(tǒng)。這個(gè)新系統(tǒng)能夠承載多核、可測(cè)的負(fù)載平衡、可擴(kuò)展、在N核間保持流暢控制,以及最重要的是最大限度減少數(shù)據(jù)沖突。

其中一個(gè)架構(gòu)叫多級(jí)數(shù)據(jù)并行模擬

這種模擬通過(guò)修改來(lái)延展到CPU各個(gè)內(nèi)核,并保留其中一個(gè)內(nèi)核用于渲染。為了實(shí)現(xiàn)這點(diǎn),模擬會(huì)分解成多任務(wù),以便CPU能以任意順序分開(kāi)處理。

這就意味著任務(wù)將分為多個(gè)階段,如讀取階段、決策階段和編寫(xiě)階段。另外你會(huì)需要一個(gè)廣播階段,方便對(duì)象間的交流。

現(xiàn)階段任務(wù)確保完成后,才能進(jìn)入下一階段。每一階段的執(zhí)行,都需要有效分配,確保負(fù)載平衡。當(dāng)中有內(nèi)核提前完成任務(wù)時(shí),就會(huì)被分配更多的任務(wù),直至現(xiàn)階段任務(wù)全部結(jié)束。

多級(jí)數(shù)據(jù)并行模擬(帶有異步渲染器)
?


這個(gè)設(shè)計(jì)應(yīng)允許大型模擬帶有異步渲染器。為了說(shuō)明潛在的性能提升,我們提供一些采用類(lèi)似結(jié)構(gòu)的MaxPlay 運(yùn)行引擎的測(cè)試數(shù)據(jù)。

多級(jí)數(shù)據(jù)并行模擬能提升CPU利用率
?


以上你能看到六核(帶六個(gè)超線程) CPU運(yùn)行密集群體模擬的性能表現(xiàn)。這個(gè)視頻展示了兩核到四核到六核模擬的性能提升。

較于傳統(tǒng)功能性多線程模式,不同硬件平臺(tái)測(cè)試結(jié)果顯示性能得到了提升。

在許多情況下,我們發(fā)現(xiàn)采用這個(gè)技巧能大幅度提升性能,開(kāi)發(fā)商就可以加入更多的體驗(yàn)內(nèi)容。硬件生產(chǎn)商預(yù)測(cè)核數(shù)量將會(huì)持續(xù)增加,所以考慮十二、十六甚至二十四核的解決對(duì)策相當(dāng)重要。

對(duì)懷疑DirectX12和Vulkan graphic APIs系統(tǒng)的人來(lái)說(shuō),這個(gè)架構(gòu)可以很好傳輸顯示列表,在有需要時(shí),能從任一階段使用返回?cái)?shù)據(jù)進(jìn)行渲染。

所以,如果你打算利用多核處理器來(lái)豐富虛擬現(xiàn)實(shí)體驗(yàn),你應(yīng)該找到一個(gè)解決方案使用多級(jí)數(shù)據(jù)并行模擬。

總結(jié)

以上是生活随笔為你收集整理的如何利用多核CPU提高虚拟现实性能?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。