level 13
还是那个小新💯
楼主
adreno家族尤其是5xx之前的系列,向来有着报表的理论浮点性能,却又对应着不相称的图形性能。
比如我手头现在的810的430,首先用炮神的烤机确定其一共包含256个alu,用高通的profiler查看,alu利用率92%,折算后和理论值基本吻合,也就是说理论峰值性能为322.56gflops,实际300不到点。这么高的浮点性能,原则上来就算架构落后,转换成图形性能也绝对不弱,不过最近和660对比后发现游戏性能还不如660,而660只有75gflops的理论性能,当然这里还有cpu或者其他方面的较大差距。
首先看下660的512,用炮神的烤机反测是64个alu,alu利用率也是92%,折算后和理论值基本吻合。然而到了游戏中alu利用率还远没有这么高。如下测试:分别是辐射城,农药,2k18





辐射城最高画质(hd分辨率,1.0像素刻元)50%多,频率可以稳定在最高的650mhz,折算浮点42左右
农药最高画质高帧率,有70%多,频率也可以稳定在650mhz,折算浮点62左右
2k18最高画质(开球衣模拟),但是频率只有300多mhz,折算浮点只有20左右,并且帧率还有30左右(图上测试有损失),2k18真是有点吃惊,可能是cpu负载情况太好的原因,大核全程在线,全程满频,全程高负载,负载情况比开了vulkan的模拟器还好(后面说)
再看看同样游戏的430的情况,图就不上了,没保存好,口述了
辐射城:
平均alu利用率在25-30%(基本在25左右),频率基本在390-450mhz(也就冬天能稳在这频率),折算浮点57左右
农药:
高帧率稳不了,系统自动关了。50-55左右,频率打死180,折算浮点46左右
2k18:
平均alu利用率只有15-20%(大部分15%,所以按15算),频率浮动较大,基本在305-450之间,折算浮点35左右
可以看出,430浮点性能的优势根本发挥不出来,即使是跑gfxbench的alu利用率也只有30%多,alu测试可以跑到75%,也就这个能跑这么高。由此看来并不是系统设了阈值,具体原因的话就不清楚了,可能是api或者draw call压力太大,造成驱动压力太大?也可能是硬件端设了阈值?有个情况是当频率越高时alu利用率越低,内部有类似功耗墙的限制?具体原因就不得而知了,有知道的大神请务必科普一下。
针对驱动压力的问题,我也留意了一下,2k18里,当常规视角时api call达到了1w+,draw call也突破了一千,但是当特写视角的时候api call降低到3000多,draw call也降低到200以内,这时alu利用率提升到50-60左右,帧率也大幅提升,同样的问题在辐射城室内也有,但我还是不太确定。
总而言之,当时高通公布430比420gpgpu性能提升100%,而图形性能只提升30%的时候就觉得很奇怪,那现在推测420利用率也高不了。
那为什么高通要堆到256个alu呢,又发挥不出来,钱多烧的慌吗,这个倒还是有原因。
adreno主要有三个api的context,分别是opengl,opencl还有ui,opencl一直被高通看重,比如用来加速摄像,所以在摄像的时候alu利用率可以达到80%以上,同样的ui加速的时候也能达到80以上,这么看来游戏反倒没多少收益。opencl会有驱动开销影响浮点性能的问题,所以我才猜测是不是opengl也有影响。
再说回660,5xx的驱动开销相比4xx有大幅提升,同时5xx还支持UBWC和Draw order independent depth rejection这两个4xx没有的特性,所以5xx的效率也有着不小的提升,不过看来5xx同样不能最大化浮点性能,会不会api本身也有影响呢?
所以又拿ppsspp的opengl模式和vulkan模式测试了一下,游戏是斯巴达之魂,设置一样。



opengl下alu利用率是70多,频率只有300不到,shader busy也接近80(shader是指整个shader processor后面说)
而vulkan模式下,alu利用率平均可以到90左右浮动,频率也可以基本全程650mhz,shader busy也降低到60以下
看来如果vulkan能普及的话,adreno也是可以战未来的![[滑稽]](/static/emoticons/u6ed1u7a3d.png)
除此之外,或许shader busy也是5xx被制约的原因之一,以后测试了530再说
最后划重点,adreno的理论浮点性能和游戏中的实际浮点性能相去甚远,所以带来了高通浮点虚高的感觉,一般像主机乃至pc上,gpu的浮点性能都能比较高效的转换成图形性能,一个主要原因是主机普遍用底层api甚至直接开发模式,所以原因可能是驱动开销,vulkan?
最后的最后再复习一波adreno的架构
高通官方把shader核心(相当于mali的shader core,pvr的shader cluster)叫做shader(或者streaming) processor,简称sp,在opencl中高通把他叫做computer unit
高端目前为止是都用4组cu(从3xx开始),低端1组,中端2组,好像还没3组的
一个sp或cu中包含有alu,efu,l/s单元,control flow单元,寄存器文件等,还是要吐槽一下浓浓的amd既视感(感觉就像amd的老架构+一些高通的新技术特性,瞎说的,肯定没这么简单)
mali的工具也准备好了,等以后有了mali的设备,看看能不能测试mali的情况。
2018年01月01日 05点01分
1
比如我手头现在的810的430,首先用炮神的烤机确定其一共包含256个alu,用高通的profiler查看,alu利用率92%,折算后和理论值基本吻合,也就是说理论峰值性能为322.56gflops,实际300不到点。这么高的浮点性能,原则上来就算架构落后,转换成图形性能也绝对不弱,不过最近和660对比后发现游戏性能还不如660,而660只有75gflops的理论性能,当然这里还有cpu或者其他方面的较大差距。
首先看下660的512,用炮神的烤机反测是64个alu,alu利用率也是92%,折算后和理论值基本吻合。然而到了游戏中alu利用率还远没有这么高。如下测试:分别是辐射城,农药,2k18





辐射城最高画质(hd分辨率,1.0像素刻元)50%多,频率可以稳定在最高的650mhz,折算浮点42左右农药最高画质高帧率,有70%多,频率也可以稳定在650mhz,折算浮点62左右
2k18最高画质(开球衣模拟),但是频率只有300多mhz,折算浮点只有20左右,并且帧率还有30左右(图上测试有损失),2k18真是有点吃惊,可能是cpu负载情况太好的原因,大核全程在线,全程满频,全程高负载,负载情况比开了vulkan的模拟器还好(后面说)
再看看同样游戏的430的情况,图就不上了,没保存好,口述了
辐射城:
平均alu利用率在25-30%(基本在25左右),频率基本在390-450mhz(也就冬天能稳在这频率),折算浮点57左右
农药:
高帧率稳不了,系统自动关了。50-55左右,频率打死180,折算浮点46左右
2k18:
平均alu利用率只有15-20%(大部分15%,所以按15算),频率浮动较大,基本在305-450之间,折算浮点35左右
可以看出,430浮点性能的优势根本发挥不出来,即使是跑gfxbench的alu利用率也只有30%多,alu测试可以跑到75%,也就这个能跑这么高。由此看来并不是系统设了阈值,具体原因的话就不清楚了,可能是api或者draw call压力太大,造成驱动压力太大?也可能是硬件端设了阈值?有个情况是当频率越高时alu利用率越低,内部有类似功耗墙的限制?具体原因就不得而知了,有知道的大神请务必科普一下。
针对驱动压力的问题,我也留意了一下,2k18里,当常规视角时api call达到了1w+,draw call也突破了一千,但是当特写视角的时候api call降低到3000多,draw call也降低到200以内,这时alu利用率提升到50-60左右,帧率也大幅提升,同样的问题在辐射城室内也有,但我还是不太确定。
总而言之,当时高通公布430比420gpgpu性能提升100%,而图形性能只提升30%的时候就觉得很奇怪,那现在推测420利用率也高不了。
那为什么高通要堆到256个alu呢,又发挥不出来,钱多烧的慌吗,这个倒还是有原因。
adreno主要有三个api的context,分别是opengl,opencl还有ui,opencl一直被高通看重,比如用来加速摄像,所以在摄像的时候alu利用率可以达到80%以上,同样的ui加速的时候也能达到80以上,这么看来游戏反倒没多少收益。opencl会有驱动开销影响浮点性能的问题,所以我才猜测是不是opengl也有影响。
再说回660,5xx的驱动开销相比4xx有大幅提升,同时5xx还支持UBWC和Draw order independent depth rejection这两个4xx没有的特性,所以5xx的效率也有着不小的提升,不过看来5xx同样不能最大化浮点性能,会不会api本身也有影响呢?
所以又拿ppsspp的opengl模式和vulkan模式测试了一下,游戏是斯巴达之魂,设置一样。



opengl下alu利用率是70多,频率只有300不到,shader busy也接近80(shader是指整个shader processor后面说)而vulkan模式下,alu利用率平均可以到90左右浮动,频率也可以基本全程650mhz,shader busy也降低到60以下
看来如果vulkan能普及的话,adreno也是可以战未来的
除此之外,或许shader busy也是5xx被制约的原因之一,以后测试了530再说
最后划重点,adreno的理论浮点性能和游戏中的实际浮点性能相去甚远,所以带来了高通浮点虚高的感觉,一般像主机乃至pc上,gpu的浮点性能都能比较高效的转换成图形性能,一个主要原因是主机普遍用底层api甚至直接开发模式,所以原因可能是驱动开销,vulkan?
最后的最后再复习一波adreno的架构
高通官方把shader核心(相当于mali的shader core,pvr的shader cluster)叫做shader(或者streaming) processor,简称sp,在opencl中高通把他叫做computer unit
高端目前为止是都用4组cu(从3xx开始),低端1组,中端2组,好像还没3组的
一个sp或cu中包含有alu,efu,l/s单元,control flow单元,寄存器文件等,还是要吐槽一下浓浓的amd既视感(感觉就像amd的老架构+一些高通的新技术特性,瞎说的,肯定没这么简单)
mali的工具也准备好了,等以后有了mali的设备,看看能不能测试mali的情况。








