level 15
ioncannon
楼主
前期知识请翻精华区
本次探讨的问题:为什么Adreno 305的单元比Adreno 225少,但表现却不比225差太多
唉,本来想写长点的 不过一些东西自己都还不太清楚
大概是这样:
大部分移动GPU的ALU都是vec4的SIMD,有些再带上个scalar单元
比如PowerVR SGX5XT的USSE2, 就是vec4
Adreno系列呢,跟AMD的R600系列差不多,VLIW的,但是不同于桌面的R600,Adreno 2xx的VLIW是把一个vec4的指令和一个scalar的指令打包起来,变成一个96bit的指令
相当于还是vec4+1
而桌面的R600,是VLIW5,可以把任意的指令打包起来,比如5个scalar (1+1+1+1+1)
或者2+1+1, 2+1+2等, 所以明显效率要高的(当然比NV的纯标量和后来的GCN要差)
Adreno 3xx,改成scalar shader,就变成类似于R600的,不再是限制死的vec4+1,可以像R600那样把scalar打包起来去跑,效率自然就高了
同样,新出的PowerVR 6, 也会是scalar的shader架构
而Mali-T6xx,实测下来,也跟Adreno 320的表现类似
当然,T6xx把Load/Store, 纹理拾取 和 ALU计算管线分开,每个都有独立的指令发射端
而传统的VLIW(Adreno)这些指令的发射是共享的,所以足够多的线程跑在核心上时,T6xx的计算、纹理拾取就可以同时执行,而传统的VLIW就不行了
从这个角度讲,相同GFLOPS下效率最高的应该是T6xx。不过这个没啥意义,最重要的还是面积和功耗吧。
T2/T3老掉牙的就不讨论了,T4的白皮书写的是VLIW,也可以把各种指令打包组合,但不知道具体情况
以上说的都是纯FP32 shader指令
如果是FP16的话,Adreno 3xx, Mali-T6xx这些能力还能翻倍的。



2013年06月28日 16点06分
1
本次探讨的问题:为什么Adreno 305的单元比Adreno 225少,但表现却不比225差太多
唉,本来想写长点的 不过一些东西自己都还不太清楚
大概是这样:
大部分移动GPU的ALU都是vec4的SIMD,有些再带上个scalar单元
比如PowerVR SGX5XT的USSE2, 就是vec4
Adreno系列呢,跟AMD的R600系列差不多,VLIW的,但是不同于桌面的R600,Adreno 2xx的VLIW是把一个vec4的指令和一个scalar的指令打包起来,变成一个96bit的指令
相当于还是vec4+1
而桌面的R600,是VLIW5,可以把任意的指令打包起来,比如5个scalar (1+1+1+1+1)
或者2+1+1, 2+1+2等, 所以明显效率要高的(当然比NV的纯标量和后来的GCN要差)
Adreno 3xx,改成scalar shader,就变成类似于R600的,不再是限制死的vec4+1,可以像R600那样把scalar打包起来去跑,效率自然就高了
同样,新出的PowerVR 6, 也会是scalar的shader架构
而Mali-T6xx,实测下来,也跟Adreno 320的表现类似
当然,T6xx把Load/Store, 纹理拾取 和 ALU计算管线分开,每个都有独立的指令发射端
而传统的VLIW(Adreno)这些指令的发射是共享的,所以足够多的线程跑在核心上时,T6xx的计算、纹理拾取就可以同时执行,而传统的VLIW就不行了
从这个角度讲,相同GFLOPS下效率最高的应该是T6xx。不过这个没啥意义,最重要的还是面积和功耗吧。
T2/T3老掉牙的就不讨论了,T4的白皮书写的是VLIW,也可以把各种指令打包组合,但不知道具体情况
以上说的都是纯FP32 shader指令
如果是FP16的话,Adreno 3xx, Mali-T6xx这些能力还能翻倍的。


