PowerVR SDK&Tools 2017 R2版本已經(jīng)發(fā)布,現(xiàn)在是時(shí)候來(lái)看一下新版本所包含的新內(nèi)容了。在這篇文章中,我們將仔細(xì)分析《PowerVR Low-Level GLSL Optimisation》這篇文檔,它能夠讓我們充分了解PowerVR Rogue體系結(jié)構(gòu)的每一項(xiàng)性能。
GLSL是OpenGL Shading Language的縮寫,可以翻譯為OpenGL著色語(yǔ)言,該語(yǔ)言是一種高級(jí)語(yǔ)言,通常與“上層”(高級(jí))操作相關(guān)聯(lián),但它也可以進(jìn)行一些底層的優(yōu)化,很多時(shí)候這會(huì)被開發(fā)人員所忽略。
在PowerVR Rogue架構(gòu)中,著色器的性能通常取決于執(zhí)行一次著色所需的周期數(shù)。該架構(gòu)提供了多種選項(xiàng),用于配置如何通過(guò)流水線的方式在單個(gè)周期內(nèi)執(zhí)行USC ALU的多條指令,當(dāng)然這還要取決于其硬件配置。例如,在一個(gè)周期內(nèi)可以執(zhí)行兩條F16 SOP指令,也可以執(zhí)行F32到F16的轉(zhuǎn)換或者move / output / pack等指令。
或者,你可以在一個(gè)周期內(nèi)執(zhí)行FP32 Multiply-Add(MAD)指令以及FP32 / INT32 MAD / UNPACK指令,一個(gè)test(條件句)指令以及move/output/pack指令。為了更好利用USC核,數(shù)學(xué)表達(dá)式應(yīng)該以MAD格式書寫。
優(yōu)化PowerVR Rogue體系結(jié)構(gòu)的另一個(gè)技巧就是利用修飾符,在某些特定的情況下,像abs(),neg()和clamp(...,0.0,1.0)這樣的修飾符是閑置的。當(dāng)用于操作的輸入時(shí),編譯器會(huì)將abs()和neg()轉(zhuǎn)換為閑置修飾符。另一方面,當(dāng)用于操作的輸出時(shí),clamp(…, 0.0, 1.0)將會(huì)被轉(zhuǎn)換成閑置修飾符。
得益于這些優(yōu)化,您的應(yīng)用程序不僅可以使用較少的功耗來(lái)運(yùn)行,而且可以降低對(duì)硬件的要求。想了解更多的方法來(lái)優(yōu)化您的應(yīng)用程序嗎?請(qǐng)下載PowerVR Low Level GLSL Optimisation(PowerVR 底層GLSL優(yōu)化手冊(cè)),并找到更多的方法來(lái)利用PowerVR Rogue體系結(jié)構(gòu)!
-
powervr
+關(guān)注
關(guān)注
0文章
99瀏覽量
31519
發(fā)布評(píng)論請(qǐng)先 登錄
如何單獨(dú)限制某函數(shù)的優(yōu)化級(jí)別?
Atmel Studio 7.0編譯優(yōu)化級(jí)別在哪里設(shè)置?
編譯器優(yōu)化級(jí)別
PowerVR Furian架構(gòu)有什么功能?
PowerVR SDK 2020 Release 2怎么樣?
Imagination PowerVR GPU 率先通過(guò) Khronos 的 OpenVX 1.1一致性測(cè)試
新PowerVR框架概覽
PowerVR SDK框架5.0
PowerVR GPU架構(gòu)的性能優(yōu)化建議
PowerVR工具的功能與應(yīng)用范圍介紹
ncnn 運(yùn)行時(shí)生成 spirv
PowerVR的底層級(jí)別GLSL優(yōu)化
評(píng)論