三年架構(gòu)大革命!R520脫胎換骨全測(cè)試
當(dāng)3D模型的數(shù)據(jù)按照用戶(hù)的視角轉(zhuǎn)換成為了屏幕上的像素的信息之后,現(xiàn)在就需要進(jìn)行最重要的操作了,這也是圖形處理中最關(guān)鍵,性能消耗更大的部分。
這個(gè)時(shí)候的像素信息,是不完全的像素信息,只知道這個(gè)像素是屬于哪個(gè)三角形的,還有很多方面是沒(méi)有確定的:
這個(gè)三角形上貼的圖是什么?這個(gè)三角形收到那些光源的照射?這個(gè)頂點(diǎn)是否在三角形的邊緣,會(huì)不會(huì)在抗鋸齒操作中被處理?等等
所以整個(gè)像素渲染引擎是整個(gè)3D圖形生成過(guò)程中最麻煩的一個(gè)操作過(guò)程,也是對(duì)性能要求最大的一個(gè)部分。
ATI在這次R520上特別增加了一個(gè)被稱(chēng)之為“Ultra—Thearding Dispatch Processor”的部件,這個(gè)單元負(fù)責(zé)將線(xiàn)程分派給下面的像素渲染管線(xiàn)。
我們知道,對(duì)于一個(gè)畫(huà)面,是有很多數(shù)據(jù)需要處理的,而這些數(shù)據(jù)幾乎都是平等的,像素之間,或者頂點(diǎn)之間。于是我們的每個(gè)圖形芯片都需要能夠同時(shí)執(zhí)行這些操作,也就是并行運(yùn)算。
但是現(xiàn)在出現(xiàn)了一個(gè)矛盾:一方面為了要求并行計(jì)算,很多像素要求同時(shí)進(jìn)行操作,將畫(huà)面分成一個(gè)個(gè)小塊來(lái)處理將能夠很明顯的提高效率,但是如果一個(gè)塊中的像素需要進(jìn)行不同的操作,那么將適得其反。
另一方面,如果將每個(gè)像素作為最小的單位進(jìn)行處理,那么出現(xiàn)問(wèn)題的可能就沒(méi)有了,但是這樣效率將會(huì)很低,因?yàn)椴煌南袼氐奶幚硪笫遣煌模?jiǎn)單的處理的快,復(fù)雜的處理的慢。
ATI的Ultra—Thearding Dispatch Processor便是用來(lái)解決這個(gè)問(wèn)題的,首先,我們可以將每一個(gè)像素的處理過(guò)程理解成為一個(gè)“線(xiàn)程”,那么這個(gè)Ultra—Thearding Dispatch Processor的功能就是分配這些線(xiàn)程的執(zhí)行。它可以動(dòng)態(tài)檢測(cè)到每個(gè)像素渲染單元的工作情況,避免了空閑的情況存在。
借助于這個(gè)單元,R520可以同時(shí)處理多達(dá)512個(gè)線(xiàn)程,這樣就可以大大的提高效率,這也是R520只有16個(gè)像素渲染管線(xiàn)同樣能夠表現(xiàn)得如此好的原因了。
如果要理解這個(gè)概念,我們就必須先理解“粒度”這個(gè)概念,粒度就像是砂子的顆粒的大小,過(guò)小會(huì)數(shù)目增多而影響速度,過(guò)大而會(huì)導(dǎo)致沖突增多浪費(fèi)資源。
R520同時(shí)處理的像素塊的大小是16像素,也就是4*4像素的一個(gè)方塊,這個(gè)數(shù)據(jù)相對(duì)于G70來(lái)講要小一些。
我們來(lái)看一個(gè)例子:

我們看到,我們現(xiàn)在要進(jìn)行的是一個(gè)陰影處理的情況,一共分為三種可能,一種是在陰影中,一種是不在陰影中,還有一種就是處在陰影的邊緣。




我們看到,由于分支處理的操作能夠和線(xiàn)程的操作并行進(jìn)行,所以節(jié)省了操作需要進(jìn)行的時(shí)間。原來(lái)需要20個(gè)流程周期完成的任務(wù)只需要14個(gè)就可以完成了。
關(guān)注我們


