高級(jí)圖形處理器在進(jìn)行推廣時(shí)通常比較多個(gè)低級(jí)別性能指標(biāo)。例如,,Imagination PowerVR GPU比較常用的比較指標(biāo)為GFLOPS (測(cè)量計(jì)算吞吐量) ,,每秒三角形生成數(shù)量(測(cè)量幾何吞吐量),,每秒像素?cái)?shù)填充和每秒紋理數(shù)(測(cè)量填充率) ,。
除了這些較為傳統(tǒng)的指標(biāo),,企業(yè)開(kāi)始按照產(chǎn)品中所包含的內(nèi)核數(shù)量來(lái)說(shuō)明架構(gòu)已經(jīng)較為常見(jiàn),。盡管按照既定狀況來(lái)說(shuō),,內(nèi)核數(shù)量的含義已經(jīng)被GPU市場(chǎng)曲解。也就是說(shuō),,這個(gè)詞語(yǔ)具有延展性,,經(jīng)過(guò)一段時(shí)間這個(gè)詞語(yǔ)在反映常見(jiàn)功能方面已經(jīng)有所更新。我來(lái)說(shuō)明內(nèi)核數(shù)量的常見(jiàn)意義,。
什么是內(nèi)核?
這要依據(jù)實(shí)際情況而定,。內(nèi)核數(shù)量的意義在以前是表示處理器前端的數(shù)量,。內(nèi)核并不復(fù)雜,前端的作用是調(diào)度執(zhí)行線程,。幾乎所有高級(jí)GPU都已經(jīng)簡(jiǎn)化設(shè)計(jì),,在計(jì)算資源前端設(shè)置多個(gè)調(diào)度器和相關(guān)調(diào)度邏輯,,執(zhí)行預(yù)訂的任務(wù)。
每個(gè)調(diào)度器跟蹤數(shù)個(gè)需要執(zhí)行的線程,,在單個(gè)時(shí)鐘周期中運(yùn)行單個(gè)程序的單一指令,。單個(gè)指令指標(biāo)的作用是在一組算資源上運(yùn)行程序,不考慮線程數(shù)量或者計(jì)算資源的共享方式,,這是內(nèi)核的通常定義,。
但是,我們也用這個(gè)內(nèi)核來(lái)說(shuō)明Series5 SGX GPU的整個(gè)狀況,。例如在SGX544MP3中,,共有SGX544MP3的3個(gè)完整例程—可以復(fù)用所有GPU資源,我們稱之為MP3配置,,或者叫3核 GPU,。
多核的誤區(qū)
因此,隨著高級(jí)移動(dòng)系統(tǒng)中CPU內(nèi)核數(shù)量迅速增加,, GPU廠商要表達(dá)的信息是GPU也是多核設(shè)計(jì),,我們的許多競(jìng)爭(zhēng)對(duì)手將獨(dú)立的ALU流水線視作內(nèi)核以強(qiáng)調(diào)其優(yōu)勢(shì)。但這些ALU流水線不能實(shí)現(xiàn)完全獨(dú)立的相互調(diào)度,,這些流水線與SIMD模式中的流水線一樣每個(gè)時(shí)鐘周期運(yùn)行同一指令,。并未出現(xiàn)我們所指的獨(dú)立前端或獨(dú)立指令指針,但盡管如此市場(chǎng)依然稱其為一個(gè)內(nèi)核,。
我們按照同樣的方式從基本的構(gòu)建模塊---統(tǒng)一著色器集群(Unified Shading Cluster,,USC)到獨(dú)立流水線來(lái)說(shuō)明PowerVR Rogue,來(lái)看一下如何計(jì)算內(nèi)核數(shù)量,。
PowerVR Rogue USC
Rogue的架構(gòu)是由多個(gè)模塊構(gòu)建而成,,這些模塊稱為統(tǒng)一著色器集群,簡(jiǎn)稱USC,。我們擴(kuò)展這個(gè)架構(gòu)來(lái)滿足客戶對(duì)GPU的需求,,以支持系統(tǒng)級(jí)芯片及專門(mén)的細(xì)分市場(chǎng),我們將數(shù)個(gè)USC以及其他相關(guān)資源連接在一起后集成在整個(gè)GPU IP上,。
打開(kāi)USC,,您會(huì)發(fā)現(xiàn)用于分析數(shù)據(jù)并得出結(jié)果的是數(shù)個(gè)ALU流水線。我們并行設(shè)置這些流水線,,每個(gè)USC設(shè)置16個(gè)流水線,。這樣設(shè)置的原因是,圖像呈并行處理,,其中多個(gè)相關(guān)的數(shù)據(jù),,通常是矢量或像素同時(shí)運(yùn)行。事實(shí)上,,高級(jí)像素著色的屬性驅(qū)動(dòng)相關(guān)像素是并行的,,因此有必要同時(shí)運(yùn)行這些高級(jí)像素,。
標(biāo)量SIMD執(zhí)行和矢量低效
USC的關(guān)鍵屬性是按照標(biāo)量模式處理數(shù)據(jù)。也就是說(shuō)對(duì)于給定的工作項(xiàng)目,,例如一個(gè)象素,,USC不是在同一時(shí)鐘周期內(nèi)的同一獨(dú)立管道上同時(shí)執(zhí)行紅、綠,、藍(lán)和透明度的矢量,。相反, USC在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行一個(gè)紅色組件,,接下來(lái)執(zhí)行藍(lán)色組件,,以此類推,直到執(zhí)行完所有組件,。為實(shí)現(xiàn)矢量基準(zhǔn)單位的峰值吞吐量,,標(biāo)量SIMD單元并行處理多個(gè)工作項(xiàng)目。例如,,每個(gè)時(shí)鐘周期內(nèi)處理一個(gè)像素的4-wide矢量的峰值吞吐量相當(dāng)于4-wide 標(biāo)量SIMD單元,,可在每個(gè)時(shí)鐘周期內(nèi)處理四個(gè)像素。
表面上看這兩種方法的吞吐量相同,。但是,,高級(jí)GPU負(fù)載通常由使用許多不同數(shù)據(jù)寬度的數(shù)據(jù)組成。例如,,通常顏色數(shù)據(jù)寬度為4 ( ARGB ),,而紋理坐標(biāo)的數(shù)據(jù)寬度通常為2 ( UV),還有許多標(biāo)量實(shí)例( 1個(gè)組件)處理,,如典型的光照計(jì)算一樣,。
在光照計(jì)算中,如果數(shù)據(jù)處理沒(méi)有填滿整個(gè)矢量寬度時(shí),,就會(huì)浪費(fèi)矢量處理器寶貴的計(jì)算資源,。在標(biāo)量架構(gòu)中,正執(zhí)行的運(yùn)算采用一種運(yùn)算類型,,在同一時(shí)間運(yùn)行一個(gè)組件,,并行處理同一任務(wù)。例如著色處理中完全由標(biāo)量處理組成,,在4-wide矢量架構(gòu)中執(zhí)行25%的任務(wù),,而在標(biāo)量SIMD架構(gòu)中本應(yīng)執(zhí)行100%的任務(wù)。
多個(gè)低功耗ALU,!
我們?cè)賮?lái)說(shuō)說(shuō)USC并行任務(wù)中的獨(dú)立流水線,。共有16個(gè)流水線,每個(gè)流水線內(nèi)部實(shí)際上存在數(shù)個(gè)執(zhí)行任務(wù)的ALU,。即2個(gè)FP32 ALU,,2個(gè)FP16 ALU,以及1個(gè)專用函數(shù)ALU ,。
為什么使用專用FP16 ALU,?主要是為了節(jié)省功耗同時(shí)也是為了提高性能。與FP32 ALU相比,,簡(jiǎn)化ALU邏輯復(fù)雜度可以較低功耗執(zhí)行FP16指令組,,同時(shí)可執(zhí)行更多的運(yùn)算,在每個(gè)時(shí)鐘周期實(shí)現(xiàn)更高的吞吐量,。稍后您就會(huì)明白,。
在高級(jí)圖像渲染中以較低精度計(jì)算可能需要耗費(fèi)較多時(shí)間,而APIs Rogue力求在所有通用圖形中支持混合精度運(yùn)算,,其中包括Direct3D 11,,以及更常見(jiàn)的OpenGL ES2和ES3 APIs。在嵌入式圖形運(yùn)算中沒(méi)有構(gòu)建混合精度計(jì)算流水線是個(gè)錯(cuò)誤,,原因是執(zhí)行混合精度工作量會(huì)造成功率放大,。
性能和功能
各個(gè)ALU的功能并不一樣,我們來(lái)看一下每個(gè)ALU的作用,,以便了解其性能:
PowerVR Series6, Series6XT和Series6XE中的FP32 ALU能夠在每個(gè)時(shí)鐘周期執(zhí)行2浮點(diǎn)運(yùn)算,。每個(gè)USC即每個(gè)時(shí)鐘周期的64 FLOP峰值。
PowerVR Series6 GPU內(nèi)共有最多8個(gè)統(tǒng)一著色集群( USC )
PowerVR Series6 GPU中的FP16 ALU能夠在能夠在每個(gè)時(shí)鐘周期執(zhí)行最高3浮點(diǎn)運(yùn)算,,我們?cè)赟eries6XE和Series6XT 改進(jìn)了FP16 ALU可在每個(gè)時(shí)鐘周期執(zhí)行最高4浮點(diǎn)運(yùn)算,。按照不同的產(chǎn)品和系列,每個(gè)USC在每個(gè)時(shí)鐘周期執(zhí)行高達(dá)128浮點(diǎn)運(yùn)算,。升級(jí)型Series6XE和Series6XT更為靈活,,執(zhí)行流水線部分運(yùn)算的編譯器更為容易。
PowerVR Series6XT GPU內(nèi)共有最多8個(gè)Unified Shading Clusters( USC )
最后來(lái)說(shuō)一下具有專用功能的ALU,,ALU可處理更復(fù)雜的算法和三角運(yùn)算,,如正弦、余弦,、對(duì)數(shù),、倒數(shù)和親和數(shù)、標(biāo)量運(yùn)算,。按照這些運(yùn)算的性質(zhì),,設(shè)置了ALU輸出精度和性能。
增強(qiáng)ALU內(nèi)核配置
現(xiàn)在,,我已經(jīng)說(shuō)明從構(gòu)建USC塊到利用16個(gè)并行管道執(zhí)行任務(wù)來(lái)說(shuō)明Rogue計(jì)算架構(gòu),,各個(gè)管道有較大的專用計(jì)算資源,我們按照競(jìng)爭(zhēng)對(duì)手的方式來(lái)說(shuō)明內(nèi)核,。每個(gè)USC包括:32 FP32 ALU內(nèi)核,,高達(dá)64個(gè)FP16 ALU內(nèi)核,、16 個(gè)USC專用函數(shù)ALU內(nèi)核。
按照同樣的方式將Rogue與市場(chǎng)競(jìng)爭(zhēng)產(chǎn)品比對(duì),,ALU內(nèi)核這個(gè)術(shù)語(yǔ)很重要,,我們希望大家盡可能按這條思路來(lái)解釋內(nèi)核。
最后,,請(qǐng)記住,,Imagination根據(jù)不同的產(chǎn)品Series6, Series6XT 和Series6XE設(shè)置1對(duì)多的USC。以下為兩個(gè)實(shí)例:
PowerVR G6230: 兩個(gè)Series6 USC – 64 FP32 ALU內(nèi)核,,每個(gè)時(shí)鐘周期執(zhí)行高達(dá)128 FLOP – 64 FP16 ALU 內(nèi)核,,每個(gè)時(shí)鐘周期執(zhí)行高達(dá)192 FLOP。也就是按照600MHz的頻率執(zhí)行高達(dá)115.2 FP16 GFLOPS及高達(dá)76.8 FP32 GFLOPS,。
PowerVR GX6650: 六個(gè)Series6XT USC – 192 FP32 ALU內(nèi)核,,每個(gè)時(shí)鐘周期執(zhí)行高達(dá)384 FLOP –384FP16 ALU 內(nèi)核,每個(gè)時(shí)鐘周期執(zhí)行高達(dá)786 FLOP,。也就是按照600MHz的頻率執(zhí)行高達(dá)460.8FP16 GFLOPS及高達(dá)230.4 FP32 GFLOPS,。
這才是真正的內(nèi)核比較參數(shù)!
原文鏈接:https://blog.imgtec.com/powervr/graphics-cores-trying-compare-apples-apples
原創(chuàng)文章,,作者:hejie,,如若轉(zhuǎn)載,請(qǐng)注明出處:http://hzkljs.com/doc/106651.htm
登錄后才能評(píng)論