欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于Intel眾核架構(gòu)對(duì)等模式的光線追蹤加速方法

文檔序號(hào):6623992閱讀:270來源:國(guó)知局
基于Intel眾核架構(gòu)對(duì)等模式的光線追蹤加速方法
【專利摘要】本發(fā)明公開了一種基于Intel眾核架構(gòu)對(duì)等模式的光線追蹤加速方法,包括:估計(jì)CPU和MIC計(jì)算能力的比例關(guān)系;對(duì)CPU和MIC各自的任務(wù)量進(jìn)行劃分,設(shè)定CPU端和各個(gè)MIC端的渲染流程的任務(wù);采用對(duì)等模式對(duì)分配到的屏幕分塊區(qū)域進(jìn)行渲染;并開啟多線程處理屏幕分塊區(qū)域的渲染;渲染任務(wù)結(jié)束后MIC將渲染結(jié)果傳給CPU,由CPU負(fù)責(zé)合成最終圖像。本發(fā)明有益效果:本發(fā)明具有并行粒度大,魯棒性高,可重現(xiàn)性高,與具體的光線追蹤實(shí)現(xiàn)細(xì)節(jié)方法無關(guān);可以利用的MIC和CPU節(jié)點(diǎn)理論上有無限多,并且各個(gè)節(jié)點(diǎn)沒有計(jì)算資源的浪費(fèi),加速效果明顯。
【專利說明】基于Intel眾核架構(gòu)對(duì)等模式的光線追蹤加速方法

【技術(shù)領(lǐng)域】
[0001]本發(fā)明專利涉及并行真實(shí)感渲染領(lǐng)域,具體涉及一種基于Intel眾核架構(gòu)上使用對(duì)等模式加速光線追蹤的方法。

【背景技術(shù)】
[0002]光線追蹤是一種用于三維計(jì)算機(jī)圖形學(xué)中的特殊渲染算法,跟蹤與真實(shí)世界傳播方向相反的光線(即從眼睛出發(fā)到光源),將三維計(jì)算機(jī)圖形場(chǎng)景呈現(xiàn)為二維的平面圖像。光線追蹤能夠很好的實(shí)現(xiàn)反射、折射、散射、陰影等一系列真實(shí)感渲染結(jié)果,并且可以模擬全局光照效果、視覺效果好。
[0003]光線追蹤算法需要發(fā)射大量的光線進(jìn)行計(jì)算,除了需要計(jì)算光源對(duì)場(chǎng)景中物體的影響,還需要計(jì)算被場(chǎng)景中物體反射、折射或者散射的光線對(duì)物體的影響。無偏全局光照算法通過大量采樣可以得到精確解,但是需要消耗大量時(shí)間,這使得光線追蹤方法在電影特效制作中的廣泛應(yīng)用受到了很大限制。利用光線追蹤算法進(jìn)行真實(shí)感渲染的流程主要包括了:劃分屏幕空間,按照屏幕空間的分塊進(jìn)行發(fā)射光線,并在場(chǎng)景空間中跟蹤光線。渲染光線與物體的交點(diǎn),返回顏色,主光線將顏色返回給屏幕空間形成圖像。光線在與物體碰撞中,可根據(jù)物體表面屬性,發(fā)生反射,折射,或散射和吸收等行為;根據(jù)物體表面屬性,繼續(xù)追蹤光線。
[0004]在CPU的急速發(fā)展遇到了單個(gè)核心性能提升的瓶頸,單顆CPU的計(jì)算能力難以獲得大幅度提升的情況下,多核成為了最理想的計(jì)算速度提升方案。多核架構(gòu)下的并行方法成為目前光線追蹤加速的主要方法。MPI (Message Passing Interface,消息傳遞接口)是一個(gè)并行計(jì)算的應(yīng)用程序接口。MPI提供了一個(gè)簡(jiǎn)易的可移植接口,能夠供程序員進(jìn)行高性能的消息傳遞操作。
[0005]中國(guó)專利(申請(qǐng)?zhí)?CN201310017768,專利名稱:基于GPU集群的實(shí)時(shí)光線跟蹤渲染方法)中提出了一種基于GPU眾核架構(gòu)的實(shí)時(shí)光線跟蹤渲染方法,通過GPU高并行地來進(jìn)行光線跟蹤計(jì)算,并在光線跟蹤方法中使用極坐標(biāo)表示方式進(jìn)行求交運(yùn)算,在得到真實(shí)感渲染效果畫面的同時(shí),得到了較好的渲染性能。但是受顯存等條件制約,該方法通過簡(jiǎn)化計(jì)算達(dá)到實(shí)時(shí)渲染的目的,難以對(duì)復(fù)雜場(chǎng)景進(jìn)行高度真實(shí)感渲染。
[0006]2012年底,intel公司推出了基于集成眾核架構(gòu)的至強(qiáng)融核協(xié)處理器--1ntel
Many Integrated Core (MIC) Architecture Xeon Phi Coprocessor。以下簡(jiǎn)稱 intel 集成眾核架構(gòu)為MIC,稱Intel基于集成眾核架構(gòu)的至強(qiáng)融核協(xié)處理為MIC協(xié)處理器。這個(gè)產(chǎn)品具有超過50個(gè)核以上的基于x86架構(gòu)的核心。它能夠用于解決高度并行計(jì)算問題,支持OpenMP、pThread、MPI等多種業(yè)內(nèi)熟悉的并行編程模型。CPU+MIC異構(gòu)協(xié)同計(jì)算是基于x86架構(gòu)的異構(gòu)計(jì)算,MIC的基本指令集與CPU —樣。與GPGPU所不同的地方還在于MIC協(xié)處理器擁有自己的虛擬IP地址和操作系統(tǒng)。故MIC相對(duì)于GPU架構(gòu)更為靈活,適合于處理光線追蹤復(fù)雜流程并行計(jì)算。MIC應(yīng)用模式可以簡(jiǎn)單的分為CPU原生模式、CPU為主MIC為輔模式、CPU與MIC對(duì)等模式、MIC為主CPU為輔模式和MIC原生模式(參考:王恩東,張清,沈鉬.MIC高性能計(jì)算編程指南[M].中國(guó)水利水電出版社,2012:11.)。其中,
[0007]CPU原生模式指程序僅在CPU端運(yùn)行的模式。
[0008]MIC原生模式是指將可執(zhí)行程序(包括所有用的庫(kù)文件)直接在MIC協(xié)處理器上運(yùn)行的模式。這是因?yàn)镸IC協(xié)處理器擁有自己的操作系統(tǒng),能夠以自己的指令集進(jìn)行資源調(diào)度和計(jì)算。
[0009]CPU和MIC對(duì)等模式(簡(jiǎn)稱對(duì)等模式),是指將MIC協(xié)處理器看作與CPU無異的計(jì)算節(jié)點(diǎn),MIC協(xié)處理器和CPU分配相同的任務(wù)類型,運(yùn)行不同的任務(wù)對(duì)象。對(duì)等模式實(shí)質(zhì)上屬于分布式計(jì)算模式。
[0010]Intel MIC架構(gòu)的協(xié)處理器的發(fā)布,使得光線追蹤的加速又找到了新的方向。Carsten Benthin 等人在文章[Combining Single and Packet Ray Tracing forArbitrary Ray Distribut1ns on the Intel MIC Architecture]中提出一種使用MIC協(xié)處理器加速光線追蹤的方法,該方法利用intel編譯器提供的offload模式(卸載模式),將光線追蹤需要高度并行的光線和場(chǎng)景樹求交的操作轉(zhuǎn)到MIC上工作,利用MIC的眾核優(yōu)勢(shì)實(shí)現(xiàn)計(jì)算的加速。這種使用CPU-MIC的offload模式有以下兩個(gè)主要缺陷:
[0011]1.由于MIC協(xié)處理器通過PC1-E和Intel的Xeon處理器相連,它必須要依附于宿主(host)才能工作,也即MIC不能充當(dāng)主機(jī)計(jì)算核心的角色。受到主板插槽和電源功率的限制,每臺(tái)主機(jī)能裝載的MIC協(xié)處理器通常為I?3個(gè),CPU單純地使用offload模式的MIC對(duì)象有限。這對(duì)于非特制計(jì)算機(jī)想滿足大規(guī)模的渲染工作是一個(gè)極大的限制。
[0012]2.使用offload模式,CPU的工作是由MIC協(xié)處理器接手,通常CPU在MIC協(xié)處理器的計(jì)算結(jié)果返回前只能等待,如果沒有完善的一套技術(shù)和算法,這種模式將造成了大量的計(jì)算資源浪費(fèi)。


【發(fā)明內(nèi)容】

[0013]本發(fā)明針對(duì)現(xiàn)有光線追蹤方法計(jì)算速度慢的問題,提出了一種基于CPU和MIC對(duì)等模式的光線追蹤加速方法。該方法根據(jù)CPU和MIC協(xié)處理器的相對(duì)計(jì)算能力,采用自適應(yīng)的渲染任務(wù)劃分方法,將屏幕不同區(qū)域位置發(fā)出的一級(jí)光線分配給CPU和MIC協(xié)處理器進(jìn)行并行處理,加速效果明顯。
[0014]為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
[0015]一種基于Intel眾核架構(gòu)對(duì)等模式的光線追蹤加速方法,包括如下步驟:
[0016]步驟1:將CPU原生模式和MIC原生模式,分別用最大線程數(shù)渲染同一場(chǎng)景,測(cè)試屏幕發(fā)射所有光線的追蹤渲染時(shí)間,并依據(jù)兩者運(yùn)行時(shí)間的比值,得出CPU和MIC協(xié)處理器渲染計(jì)算能力的比例關(guān)系;
[0017]步驟2:根據(jù)CPU和MIC協(xié)處理器渲染計(jì)算能力的比例關(guān)系,對(duì)CPU和MIC協(xié)處理器各自的任務(wù)量進(jìn)行劃分,設(shè)定CPU端和各個(gè)MIC端的渲染任務(wù);
[0018]步驟3 =CPU和MIC根據(jù)設(shè)定的任務(wù),采用對(duì)等模式對(duì)分配到的屏幕分塊區(qū)域進(jìn)行渲染;并開啟多線程處理屏幕分塊區(qū)域的渲染;
[0019]步驟4:渲染任務(wù)結(jié)束后MIC將渲染結(jié)果傳給CPU,由CPU負(fù)責(zé)合成最終圖像。
[0020]所述步驟I中CPU和MIC計(jì)算能力的比例關(guān)系滿足:
[0021]假設(shè)CPU和每個(gè)MIC協(xié)處理器的任務(wù)劃分關(guān)系為C:Μ,η是MIC協(xié)處理器的個(gè)數(shù),


]Μ[ < η
屏幕分塊數(shù)目的大小為N,則^ " -N = O-M-MIC最大線程數(shù);

C+M
[0022]其中,屏幕分塊的大小符合一定規(guī)模,界于8*8到64*64之間;α是每一個(gè)MIC協(xié)處理器的一個(gè)線程所分配到的任務(wù)數(shù)量,且滿足5〈 α〈25。
[0023]所述步驟3中采用對(duì)等模式對(duì)分配到的屏幕分塊區(qū)域進(jìn)行渲染包括如下步驟:
[0024]步驟(3.1):在光線追蹤渲染流程中加入MPI通訊接口,使CPU在運(yùn)行時(shí),能夠接收來自MIC端的數(shù)據(jù)消息;
[0025]步驟(3.2):在MIC端的渲染流程中加入MPI通訊接口,使MIC在運(yùn)行時(shí),能夠發(fā)送數(shù)據(jù)消息給CPU ;
[0026]對(duì)光線追蹤渲染流程指令進(jìn)行編譯,得到能夠在MIC下運(yùn)行的渲染流程,利用MIC協(xié)處理器擁有的虛擬IP地址,將能夠在MIC下運(yùn)行的渲染流程上傳到MIC協(xié)處理器;如果有多個(gè)MIC協(xié)處理器,則用上述同樣的方法將所述MIC渲染流程部署到每個(gè)MIC端;
[0027]步驟(3.3):CPU啟動(dòng)MPI通訊,并發(fā)送消息給指定地址的MPI接收進(jìn)程,接收進(jìn)程在它所駐的MIC啟動(dòng)渲染進(jìn)程。
[0028]所述步驟3中CPU和MIC開啟多線程處理屏幕分塊區(qū)域的渲染具體為:
[0029]CPU和MIC協(xié)處理器的每個(gè)線程分別選取一個(gè)指派給自己的未被渲染的Bucket,作為當(dāng)前渲染任務(wù),進(jìn)入渲染流程;
[0030]每個(gè)線程結(jié)束當(dāng)前渲染任務(wù)后繼續(xù)選取下一個(gè)未渲染的Bucket,直到完成指派給自己所在端的所有渲染任務(wù);其中,MIC端的渲染流程完成一個(gè)Bucket渲染工作后將渲染結(jié)果保存到緩沖區(qū)里,再繼續(xù)下一個(gè)Bucket的渲染工作。
[0031 ] 所述步驟4包括如下步驟:
[0032]步驟(4.1):將MIC協(xié)處理器存儲(chǔ)在緩沖區(qū)內(nèi)的渲染結(jié)果一次性傳回CPU端,MIC端結(jié)束自己的渲染任務(wù);
[0033]步驟(4.2) =CPU端在等待自己的渲染任務(wù)全部結(jié)束后,接收MIC協(xié)處理器傳來的數(shù)據(jù),并將接收到的數(shù)據(jù)視為自己的渲染結(jié)果,按照接收數(shù)據(jù)中附帶有的屏幕分塊信息,將所有的數(shù)據(jù)整合在一起,生成最終的圖像,結(jié)束本次渲染任務(wù)。
[0034]如果CPU端比MIC端先結(jié)束渲染任務(wù),則CPU等待所有的MIC端數(shù)據(jù),并成功生成圖像后才能結(jié)束此次渲染任務(wù)。
[0035]本發(fā)明的有益效果是:
[0036]MIC擁有虛擬IP和獨(dú)立的操作系統(tǒng),利用MPI可以實(shí)現(xiàn)CPU進(jìn)程和MIC進(jìn)程之間的通信。由于不同分塊任務(wù)之間的計(jì)算無關(guān),給CPU和MIC分配不同屏幕分塊,易實(shí)現(xiàn)CPU-MIC對(duì)等模式的并行計(jì)算。
[0037]本發(fā)明具有并行粒度大,魯棒性高,可重現(xiàn)性高,與具體的光線追蹤實(shí)現(xiàn)細(xì)節(jié)方法無關(guān);可以利用的MIC和CPU節(jié)點(diǎn)理論上有無限多,并且各個(gè)節(jié)點(diǎn)沒有計(jì)算資源的浪費(fèi),加速效果明顯。

【專利附圖】

【附圖說明】
[0038]圖1為本發(fā)明按照屏幕像素區(qū)域劃分比例進(jìn)行劃分示意圖;
[0039]圖2為CPU和MIC使用對(duì)等模式的光線追蹤流程示意圖;
[0040]圖3為3個(gè)實(shí)例場(chǎng)景使用本發(fā)明方法后的加速效果。

【具體實(shí)施方式】
:
[0041]下面結(jié)合附圖與實(shí)施例對(duì)本發(fā)明做進(jìn)一步說明:
[0042]由于在光線追蹤方法中,光線數(shù)目巨大,并且一條從屏幕像素發(fā)射的光線計(jì)算和另外一條光線無關(guān),故可以進(jìn)行光線間的并行。本發(fā)明根據(jù)CPU和MIC協(xié)處理器的相對(duì)計(jì)算能力,采用自適應(yīng)的渲染任務(wù)劃分方法,將屏幕不同區(qū)域位置發(fā)出的一級(jí)光線分配給CPU和MIC協(xié)處理器進(jìn)行并行處理。CPU和MIC協(xié)處理器采用對(duì)等模式,獲取光線后執(zhí)行同樣的渲染流程進(jìn)行光線追蹤和渲染。CPU和MIC協(xié)處理器獲取渲染任務(wù)后,均將屏幕區(qū)域分成多個(gè)Bucket塊,各自只需負(fù)責(zé)所指定的屏幕分塊渲染,每個(gè)Bucket塊渲染由一個(gè)線程負(fù)責(zé),采用多線程處理模式實(shí)現(xiàn)塊間渲染并行。
[0043]本發(fā)明實(shí)驗(yàn)所用硬件具體為:
[0044]CPU:1ntel Xeon E5-2609 (2.4GHz/8core);
[0045]MIC:Intel Xeon Phi MIC SC7110P(1.lGHz/61core)。
[0046]—種基于Intel眾核架構(gòu)對(duì)等模式的光線追蹤方法,具體技術(shù)方案如下:
[0047]一、評(píng)估CPU和MIC協(xié)處理器的計(jì)算能力。由于不同的算法并行力度不同,故難以單純通過CPU和MIC協(xié)處理器的計(jì)算能力作為任務(wù)劃分的依據(jù)。本發(fā)明針對(duì)渲染結(jié)果覆蓋全屏幕,且場(chǎng)景物體分布均衡的大量特殊實(shí)例,依靠專業(yè)的性能分析工具(例如intelVTune),采用CPU原生模式和MIC原生模式分別開啟最大線程數(shù)測(cè)試屏幕發(fā)射所有光線的追蹤渲染時(shí)間,并以依據(jù)兩者運(yùn)行時(shí)間的比例,估計(jì)出CPU和MIC協(xié)處理器渲染計(jì)算能力的比例關(guān)系,從而用來確定CPU和MIC各自任務(wù)量的劃分關(guān)系。
[0048]例如,采用本發(fā)明實(shí)驗(yàn)所用硬件環(huán)境評(píng)估出的CPU和MIC的任務(wù)劃分比例為17:13,圖1顯示了一個(gè)按照該屏幕像素區(qū)域劃分比例進(jìn)行劃分的例子。
[0049]二、依據(jù)CPU和MIC協(xié)處理器計(jì)算能力評(píng)估結(jié)果,針對(duì)具體渲染實(shí)例進(jìn)行任務(wù)劃分后采用CPU和MIC采用對(duì)等模式對(duì)不同的屏幕區(qū)域進(jìn)行渲染,渲染任務(wù)結(jié)束后MIC將渲染結(jié)果傳給CPU,由CPU負(fù)責(zé)合成最終圖像。圖2展示了一個(gè)典型的光線追蹤實(shí)例任務(wù)劃分和最終渲染過程。具體渲染步驟如下:
[0050]步驟一:自適應(yīng)屏幕任務(wù)劃分。光線追蹤算法從屏幕空間發(fā)射光線,并在場(chǎng)景空間中跟蹤光線,故可以通過按照屏幕空間分塊(這里的塊通常被叫作Bucket)的方式,以屏幕空間上的塊為任務(wù)單位分給不同的線程進(jìn)行渲染從而實(shí)現(xiàn)并行的目的。由于不同的硬件架構(gòu),CPU和MIC可處理的最大線程數(shù)不同,本發(fā)明結(jié)合屏幕分辨率、最大CPU和MIC硬件線程數(shù)、以及CPU&MIC的任務(wù)劃分比例,采用自適應(yīng)的Bucket劃分方法,保證CPU和MIC線程滿載狀態(tài),同時(shí)減少線程任務(wù)的頻繁調(diào)度,保證每個(gè)線程的任務(wù)量。由于MIC的硬件線程數(shù)遠(yuǎn)大于CPU的硬件線程數(shù),故主要考慮MIC的滿載需求即可。
[0051]例如CPU和MIC的任務(wù)劃分關(guān)系為C:M,Bucket數(shù)目的大小為N,MIC協(xié)處理器的個(gè)數(shù)為η則需滿足如下條件:
M.η
[0052]/ 'JV = Of LIC最大線程數(shù)
C 十 M ■ η
[0053]其中,Bucket的大小符合一定規(guī)模,α是每一個(gè)MIC協(xié)處理器的一線程所分配到的任務(wù)數(shù)量,需滿足5〈α〈25。例如1440*900分辨率的屏幕渲染任務(wù),最佳測(cè)試數(shù)據(jù)為每個(gè)Bucket大小設(shè)置為16*16像素,共5130個(gè)Bucket,按照C:M = 17:13的任務(wù)劃分比,分給MIC處理的Bucket數(shù)目為2223,MIC硬件最大線程數(shù)按照240計(jì)算,則α =9.3,滿足上述條件。
[0054]步驟二:CPU和MIC采用對(duì)等模式進(jìn)行渲染。根據(jù)上述的按照屏幕空間的任務(wù)劃分、MPI在進(jìn)程之間的通信,渲染任務(wù)能夠按Bucket進(jìn)行分配,CPU和MIC協(xié)處理器按照預(yù)估的計(jì)算能力獲取相對(duì)應(yīng)的任務(wù)量。CPU和MIC指定了各自需要渲染的Bucket后,每個(gè)Bucket作為一個(gè)渲染任務(wù)單元。CPU和MIC將開啟多線程處理Bucket的渲染,從Bucket所在的屏幕空間發(fā)射光線,在場(chǎng)景空間中跟蹤這些光線,每個(gè)線程渲染Bucket的流程均相同。
[0055]CPU和MIC協(xié)處理器的每個(gè)線程選取一個(gè)指派給自己的未被渲染的Bucket,作為當(dāng)前渲染任務(wù),進(jìn)入渲染流程。每個(gè)線程結(jié)束當(dāng)前渲染任務(wù)后繼續(xù)選取下一個(gè)未渲染的Bucket,直到完成指派給自己所在端的渲染任務(wù)。其中,MIC端的渲染流程完成一個(gè)Bucket渲染工作后將渲染結(jié)果保存到緩沖區(qū)里,再繼續(xù)下一個(gè)Bucket的渲染工作。
[0056]具體工作過程如下:
[0057](I) CPU啟動(dòng)MPI通訊接口,發(fā)送消息給指定地址的MPI接收進(jìn)程,該進(jìn)程在它所駐的MIC協(xié)處理器啟動(dòng)渲染進(jìn)程。
[0058]1.DMPI的配置。通過在渲染流程中加入MPI通訊接口,使之能夠在CPU運(yùn)行時(shí),收到來自MIC端的數(shù)據(jù)消息。
[0059]1.2)渲染流程的部署。向MIC端的渲染流程加入MPI通訊函數(shù),使之能夠在MIC運(yùn)行時(shí),發(fā)送數(shù)據(jù)消息給CPU。將光線追蹤算法流程指令使用Intel編譯器加入-mmic指令進(jìn)行編譯,得到能夠在MIC下運(yùn)行的渲染流程指令(即MIC版的渲染流程),利用MIC協(xié)處理器擁有的虛擬IP地址,將MIC版的渲染流程上傳到MIC協(xié)處理器;如果有多個(gè)MIC協(xié)處理器,則可以用上述同樣的方法將MIC版的渲染流程部署到每個(gè)MIC端。
[0060]1.3)渲染任務(wù)的指定。設(shè)定CPU端和各個(gè)MIC端的渲染流程的任務(wù)。CPU和MIC的任務(wù)劃分,要按照CPU和MIC協(xié)處理器在所用的渲染流程及其計(jì)算能力為依據(jù)。
[0061]1.4)渲染任務(wù)的啟動(dòng)。使用MPI的通訊接口啟動(dòng)CPU端和各個(gè)MIC端渲染進(jìn)程。
[0062](2)CPU和MIC協(xié)處理器根據(jù)設(shè)定的任務(wù)量,各自只渲染所分配到的屏幕分塊(Bucket);
[0063]步驟三:將MIC存儲(chǔ)在緩沖區(qū)內(nèi)的渲染結(jié)果(像素值)一次性傳回在CPU端的渲染流程(因?yàn)轭l繁的調(diào)用MPI傳輸函數(shù)將導(dǎo)致大量的開銷,將結(jié)果存于緩沖區(qū)能夠有效減少傳輸數(shù)據(jù)帶來的時(shí)間損耗),形成最終的圖像。
[0064]各個(gè)MIC端渲染流程的渲染結(jié)果利用MPI提供的方法,將數(shù)據(jù)(像素顏色值)傳回CPU端的渲染流程,MIC端的渲染流程結(jié)束自己的渲染任務(wù)。CPU端渲染流程在等待自己的渲染任務(wù)全部結(jié)束后,接收MIC傳來的數(shù)據(jù)。CPU端的渲染流程將接收到的數(shù)據(jù)視為自己的渲染結(jié)果,按照接收數(shù)據(jù)中附帶有的屏幕分塊信息,將所有的數(shù)據(jù)整合在一起,生成最終的圖像,結(jié)束本次渲染任務(wù)。
[0065]如果CPU端比MIC端先結(jié)束渲染任務(wù),則CPU必須等待所有的MIC端數(shù)據(jù),并成功生成圖像后才能結(jié)束此次渲染任務(wù)。
[0066]圖3所示的實(shí)驗(yàn)結(jié)果表明,采用本發(fā)明CPU和MIC對(duì)等模式和采用CPU原生模式相比,可加速1.7-1.8倍左右。
[0067]上述雖然結(jié)合附圖對(duì)本發(fā)明的【具體實(shí)施方式】進(jìn)行了描述,但并非對(duì)本發(fā)明保護(hù)范圍的限制,所屬領(lǐng)域技術(shù)人員應(yīng)該明白,在本發(fā)明的技術(shù)方案的基礎(chǔ)上,本領(lǐng)域技術(shù)人員不需要付出創(chuàng)造性勞動(dòng)即可做出的各種修改或變形仍在本發(fā)明的保護(hù)范圍以內(nèi)。
【權(quán)利要求】
1.一種基于intel眾核架構(gòu)對(duì)等模式的光線追蹤加速方法,其特征是,包括如下步驟: 步驟1:將CPU原生模式和MIC原生模式,分別用最大線程數(shù)渲染同一場(chǎng)景,測(cè)試屏幕發(fā)射所有光線的追蹤渲染時(shí)間,并依據(jù)兩者運(yùn)行時(shí)間的比值,得出CPU和MIC協(xié)處理器渲染計(jì)算能力的比例關(guān)系; 步驟2:根據(jù)CPU和MIC協(xié)處理器渲染計(jì)算能力的比例關(guān)系,對(duì)CPU和MIC協(xié)處理器各自的任務(wù)量進(jìn)行劃分,設(shè)定CPU端和各個(gè)MIC端的渲染任務(wù); 步驟3:CPU和MIC根據(jù)設(shè)定的任務(wù),采用對(duì)等模式對(duì)分配到的屏幕分塊區(qū)域進(jìn)行渲染;并開啟多線程處理屏幕分塊區(qū)域的渲染; 步驟4:渲染任務(wù)結(jié)束后MIC將渲染結(jié)果傳給CPU,由CPU負(fù)責(zé)合成最終圖像。
2.如權(quán)利要求1所述的一種基于intel眾核架構(gòu)對(duì)等模式的光線追蹤加速方法,其特征是,所述步驟I中CPU和MIC計(jì)算能力的比例關(guān)系滿足: 假設(shè)CPU和每個(gè)MIC協(xié)處理器的任務(wù)劃分關(guān)系為C:M,η是MIC協(xié)處理器的個(gè)數(shù),屏幕

M.η分塊數(shù)目的大小為N,則一.N = a ■ ?-MIC最大線程數(shù);

C + M η 其中,屏幕分塊的大小符合一定規(guī)模,界于8*8到64*64之間;α是每一個(gè)MIC協(xié)處理器的一個(gè)線程所分配到的任務(wù)數(shù)量,且滿足5〈 α〈25。
3.如權(quán)利要求1所述的一種基于intel眾核架構(gòu)對(duì)等模式的光線追蹤加速方法,其特征是,所述步驟3中采用對(duì)等模式對(duì)分配到的屏幕分塊區(qū)域進(jìn)行渲染包括如下步驟: 步驟(3.1):在光線追蹤渲染流程中加入MPI通訊接口,使CPU在運(yùn)行時(shí),能夠接收來自MIC端的數(shù)據(jù)消息; 步驟(3.2):在MIC端的渲染流程中加入MPI通訊接口,使MIC在運(yùn)行時(shí),能夠發(fā)送數(shù)據(jù)消息給CPU ; 對(duì)光線追蹤渲染流程指令進(jìn)行編譯,得到能夠在MIC下運(yùn)行的渲染流程,利用MIC協(xié)處理器擁有的虛擬IP地址,將所述能夠在MIC下運(yùn)行的渲染流程上傳到MIC協(xié)處理器;如果有多個(gè)MIC協(xié)處理器,則用上述同樣的方法將所述MIC渲染流程部署到每個(gè)MIC端; 步驟(3.3):CPU啟動(dòng)MPI通訊,并發(fā)送消息給指定地址的MPI接收進(jìn)程,所述接收進(jìn)程在它所駐的MIC啟動(dòng)渲染進(jìn)程。
4.如權(quán)利要求1所述的一種基于intel眾核架構(gòu)對(duì)等模式的光線追蹤加速方法,其特征是,所述步驟3中CPU和MIC開啟多線程處理屏幕分塊區(qū)域的渲染具體為: CPU和MIC協(xié)處理器的每個(gè)線程分別選取一個(gè)指派給自己的未被渲染的Bucket,作為當(dāng)前渲染任務(wù),進(jìn)入渲染流程; 每個(gè)線程結(jié)束當(dāng)前渲染任務(wù)后繼續(xù)選取下一個(gè)未渲染的Bucket,直到完成指派給自己所在端的所有渲染任務(wù);其中,MIC端的渲染流程完成一個(gè)Bucket渲染工作后將渲染結(jié)果保存到緩沖區(qū)里,再繼續(xù)下一個(gè)Bucket的渲染工作。
5.如權(quán)利要求1所述的一種基于intel眾核架構(gòu)對(duì)等模式的光線追蹤加速方法,其特征是,所述步驟4包括如下步驟: 步驟(4.1):將MIC協(xié)處理器存儲(chǔ)在緩沖區(qū)內(nèi)的渲染結(jié)果一次性傳回CPU端,MIC端結(jié)束自己的渲染任務(wù); 步驟(4.2):CPU端在等待自己的渲染任務(wù)全部結(jié)束后,接收MIC協(xié)處理器傳來的數(shù)據(jù),并將接收到的數(shù)據(jù)視為自己的渲染結(jié)果,按照接收數(shù)據(jù)中附帶有的屏幕分塊信息,將所有的數(shù)據(jù)整合在一起,生成最終的圖像,結(jié)束本次渲染任務(wù)。
6.如權(quán)利要求5所述的一種基于intel眾核架構(gòu)對(duì)等模式的光線追蹤加速方法,其特征是,如果CPU端比MIC端先結(jié)束渲染任務(wù),則CPU等待所有的MIC端數(shù)據(jù),并成功生成圖像后才能結(jié)束此次渲染任務(wù)。
【文檔編號(hào)】G06T15/06GK104200508SQ201410408789
【公開日】2014年12月10日 申請(qǐng)日期:2014年8月19日 優(yōu)先權(quán)日:2014年8月19日
【發(fā)明者】王佩, 王璐, 屠長(zhǎng)河 申請(qǐng)人:山東大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
清河县| 友谊县| 南乐县| 廊坊市| 洞头县| 南充市| 黎川县| 读书| 宜良县| 新竹市| 百色市| 孙吴县| 逊克县| 科尔| 宁河县| 阿拉善右旗| 洞头县| 阿图什市| 新田县| 丽水市| 错那县| 手游| 定州市| 鄂托克前旗| 汉中市| 天门市| 尖扎县| 绥中县| 阜康市| 中牟县| 金塔县| 洮南市| 宁德市| 黄平县| 新郑市| 宝鸡市| 浦县| 修文县| 定西市| 巴楚县| 洛阳市|