ioncannon ioncannon
关注数: 14 粉丝数: 4,595 发帖数: 16,540 关注贴吧数: 2
GPU GFLOPS的浮点数的bug GPU GFLOPS的浮点一直很迷——一些网友又喜欢通过这个数来推测SoC的GPU的架构/频率。 有贴吧网友发现不管是Mali还是Adreno,乘法的浮点数总比理论值高1/3Mali的MADD也比理论值要高。以至于一些网友说,Mali GPU里面还有隐藏的EE,ARM没告诉大家偷偷加料了这个显然是不太可能的—— 我今天研究了下,发现是GPU GFLOPS的一个bug 我们先回顾下Mali Bifrost的ALU架构,包含1个4x32bit的FMA和1个4x32bit的ADD首先我们分析下为什么Adreno/Mali跑乘法的GFLOPS都会比理论值多1/3:图6:上半部分是Vec4乘法的shader code,大量的计算其实都在循环内。下半部分是shader用离线编译器编译后,再反编译的结果。可以看到,每增加2个vec4的乘法运算,只多出6个32bit的FMA指令——理论上应该是8个才对:原因就在上面shader代码开头u_vColor1.a=1.0这一句——因为乘以1.0等于没乘,这部分乘法被编译器给优化掉了,在反编译的结果中也可以看到,只有乘0.7的FMA运算。所以看似是4个FLOPS,实际只做了3个FLOPS。这就是乘法FLOPS凭空多出1/3的原因。。。图7:把u_vColor1.a=1.0改成u_vColor1.a=1.1,可以看到每增加2个vec4的乘法运算,多出8个32bit的FMA指令,而且常数1.1也参与了FMA运算,这样就是正确的了。 接下来看MADD:图8:现在有bug的MADD的版本。u_vColor1.a=1.0,本来1条vec4 MADD计算应该是4个32bit的FMA,还是因为乘以1等于没乘的缘故,Mali的编译器把这部分优化掉了,变成了3个FMA+1个ADD指令(图下半部分),考虑Bifrost的ALU架构,ADD由ADD ALU做了,决速步从4个FMA变成3个FMA,就导致了Mali的MADD多出1/3。而Adreno没有额外的ADD ALU,就不会凭空多出FLOPS。图9:修复buf的MADD版本。可以看到,编译出的代码中只有FMA,没有ADD ALU的指令了。 至于Mali的FP16乘法不受bug影响不增加,Adreno会增加,这个自己思考下。。。 @zhu3536 所以什么隐藏的EE/ALU应该是不存在的,只是bug而已啦
NVIDIA在Maxwell架构上使用了移动GPU常用的TBR渲染方式 转Anandtech: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.anandtech.com%2Fshow%2F10536%2Fnvidia-maxwell-tile-rasterization-analysis&urlrefer=6b2e44905598bd47499b4a30ea632d76 渣翻译: 对于俺这种靠分析GPU来混饭吃的人来说,老黄的Maxwell架构是让我比较恼火的一个东西。28nm的Maxwell架构通过不多的核心面积增加,却获得了巨大的能耗比提升,使得老黄在工艺没有升级的情况下获得了一整代的性能提升。虽然以前也有过工艺不升级架构升级的情况,但从来没像Maxwell这次这么暴力过。 让我烦恼的是,NV对外分享了一些Maxwell架构相比Kepler架构效能提升的细节,但他们从来没把最重要的部分公开出来。我们知道,Maxwell的的SM结构进行了改变,使得峰值性能更容易达到,还有什么分区技术可以在内部互联上少费点电,L2缓存也增加了,底层(晶体管层面)也优化了——但是老黄还是隐藏了一些信息—— 然后不少人开始怀疑,老黄整了些移动端的高效能技术到Maxwell上去——然后Anandtech的好朋友,David Kanter of Real WorldTech 终于研究透了Maxwell和Pascal,今早发了个视/文章,简述他发现了一个重要的证据,老黄在Maxwell上实现了Tile-based Rendering简单说,通过折腾一些DirectX的代码来看三角形的光栅化操作,他确信从Kepler开始,NV处理三角形的方式发生了巨大的改变,然后现在的处理方式的Tile-Based Rendering Tile-Based Rendering在移动GPU上用的很多,Imagination PowerVR和ARM Mali都用这个。它的特点是把画面打碎成块块后,每个块块都可以被GPU整块做光栅化处理掉,相比之下,传统的Immediate mode rendering对整幅画面做光栅化需要消耗更大的内存(和电力)。对于PC这边来说,因为PC传统上一直是immediatemode rendering,所以老黄在Maxwell上用Tile-BasedRendering应该是克服了一些方法上的弱点和潜在的兼容性问题。 (懒得翻译了)NV现在应该是唯一一个在桌面GPU领用用TBR的厂家,同时这也可能可以解释老黄的GPU架构领先于农企和牙膏厂的原因,让我们看看他们将来会干些啥
Kirin 950 功耗测试,A72 2.3G单核1.25W 机器 Mate 8 拷机使用 Neon做FP32的MADD运算,每次4个FP32, 128bit 分别跑1-8线程 机器在核心超过60度的时候就会throttling, A72开始降频 单核满载下,妥妥保持2.3GHz,A72核心在55度左右 双核满载,基本在60度左右,大部分时间稳定2.3GHz,偶尔去一下2GHz 见下图3线程和4线程 3线程能保持十几秒到20秒的2.3GHz, 之后核心超过60度,在2.3和2.0来回跳 1分钟内会到三核心2.0GHz并且稳定 4线程,满血只能几秒,之后变成4×1.8GHz并且稳定 核心基本都在60度5线程,比较乱,基本是来回切的节奏 6线程和7线程,此时A72基本稳定在1.2-1.5GHz,A53则保持1.8GHz 估计是海思做了限制,在这个情况下核心温度和电流都比3线程要低 比如6线程和7线程,核心只有55度 8线程时,A72核心在0.8-1.2GHz,此时温度更低,核心50度出头,很明显是人为限制1到8线程测试场景功耗:换算得到的核心功耗: 细节:测试时使用性能模式,北京暖气。 电池未充满,电压4.15V左右,而测试时根据功耗不同,电压下降到4.05-4.13V不等 因此取4.1V作为电压。 Neon SIMD FP拷机功耗会比普通的整数/浮点运算满载功耗大 (参考x86 windows AIDA 64的稳定性测试,FPU拷机功耗大于CPU) 所以,跟Anandtech的一些测试比较需要注意,因为不知道Anandtech用的什么测试,所以无法直接比较 (话说Anandtech测x86的功耗用的idle to AVX。。。理论上测极限功耗就应该用浮点SIMD。。。流水线长能烧烤更多的晶体管) 最后,950的核心功耗 A72 2.3GHz Neon FP满载大概1.25W/核心 2.0GHz下降到800 mW16FF+的A53其实挺感人,1.8GHz不到200mW 看来T16比T28/T20功耗下降一半,真的不是白吹的。。。
关于950沟通会的一些补充 我得想想,有些能说的说,有些我觉得不能说的就不说了。。。 其实就几个细节: 1.Q&A阶段,有华为Fellow(海思方面),终端方面,和台积电方面。 提问到台积电方面,台积电的人貌似没有直接回答问题,先自顾自的说了一段高通的。大意是: 大家大概会问高通最新芯片的情况啊,因为高通以前都是我们代工啊(这次820是三星) 这次的情况,高通也是有自己的考虑啊~我们16nm很好很先进啦~总之代工这个事情很复杂,世界是很动态的啦~ 2. 台积电说16nm已经有几十个客户上百个片子,良率也上升向着20nm看齐 16nm生命周期会挺长?类似之前的28nm。 3.950存储是eMMC 5.1(支持command queue),还不支持UFS2.0 4. 950内存控制器是LPDDR3/LPDDR4 Combo。会有产品用LPDDR3——一方面低分辨率的设备用不到LPDDR4的带宽,另一方面说LPDDR4的能效其实不好,得等将来的LPDDR4e 单位带宽的功耗根本达不到PPT上说的那么。。5. 950那个“i5”是Cortex-M7,第一款超标量的Cortex-M,性能比起M3/M4之流很暴力。。。 6. S810的die size有157 mm2 。。。大的可怕,而且面积利用不高,有些地方都是空着的浪费的面积,不知道是不是赶工。。 (5433是113 mm2) 7. GPU从T628MP4升级到T880MP4“也是听取了群众的呼声”。。。 但最终还是觉得GPU在日常的使用率不高,带UI都绰绰有余,最终没有堆 16FF+很好,跑900MHz很有信心。。。 8. 根据Anandtech的报道,950那个ISP法国团队造,那个团队是2013年从TI OMAP那里收来的。 9. 将来各个厂商的中端芯片也会挺暴力。。 10. 跑安兔兔的时候,我把手指放在950上,不烫,是可以摸的。但是隔着一个DDR也不好说啥。。。
CPU保持低温还是蛮有必要的 真男人导致高温,静态功耗似乎会迅速加大(漏电导致) 78勇士提供了S600从100度拷机到152度的视频 http://tieba.baidu.com/p/3781517883 其中包括实时的电流变化,大概从50度到150度,静态漏电功耗增加了10W?这个视频里显示的功耗是电池放电,充电器额外提供5.3V 1.07A的输入,经过转换后大概有4.5W+的输入 非CPU核心部分大概不到1W计算上图是4个Krait核心满载的总功耗(静态+动态功耗),随温度的大致变化 其中50度的是我用8064 1.5GHz拷机估计的 可以看到,即使到90度,也会增加不少(估计值)。。。50度时候3.3W增加到90度时候大概5W——额外增加了1.7W的静态功耗 而且Krait 300算是晶体管比较少了的吧。要是大型的A15/A57上来,晶体管大大地,高温下漏电可能会更可怕?而且制程纳米数越小,漏电的影响会更大吧。。。 所以S810这种必须保持低温,高温下静态漏电可能会迅速增加,直接就是个正反馈了。 移动AP的晶体管越来越多,保持凉快还是很重要的。 另外发现老外论坛有人对PC的U做了很详细的测试啊: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fforums.anandtech.com%2Fshowthread.php%3Ft%3D2281195&urlrefer=f954a3ca0212befa45eef4c74bfce518 用的是i7-3770K 和 2600K可见高温下,静态功耗迅速增加 降压后,静态功耗迅速降低。。。所以长续航还是得多降压,多降温—— 体质好,低压低功耗低温,长续航 体质不好,高压高功耗高温,反过来高温导致功耗更大。。。
关于A15/A57功耗问题的补充 吧里人多了现在吐槽的点也越来越奇怪了。。。能不能看原文? 人多了level也要跟着上去啊。。。 首先做个更正: Anandtech并没有hack PMIC每一路的DC-DC buck 他们测的还是SOC的功耗 利用开启1、2、3、4个CPU核心满载,或者1、2、3、4、5、6个GPU核心满载 通过功耗增加的差值来算出CPU/GPU的功耗 所以在CPU功耗是 单纯的核心的功耗, 不包括SCU、L2 Cache等功耗 同样GPU功耗也只是 shader core的功耗, 不包括GPU其他部分(scheduler等)的功耗 而单个CPU/GPU满载的总SOC功耗里,包括2D显示单元、内存控制器等功耗。 1. 这两个测试,测试A7/A53, A15/A57的 最大功耗 应该用了自己的测试程序使得核心满载—— 不代表实际应用的性能/功耗* 5430的A15功耗确实降低很多 What jumps out immediately as out of the norm is the relatively low power consumption the 5430 is able to achieve. In the past we've seen A15 cores consume well north of 1.5W per core, something I've verified in the Exynos 5410 and Kirin 920. The combination of r3 A15 silicon IP and 20nm in the 5430 seems to have dramatically lowered the power consumption of the A15 to levels comparable to Qualcomm's Krait cores. It seems Samsung has gained a lot of experience with the A15 over the years and fed this back into the 5430, resulting in basically twice the power efficiency over past SoCs such as the 5420. 三星在A15上积累了很多经验: 早期他们测试的5410,以及海思Kirin 920, A15功耗基本在1.5W 这次5430大概只有0.75W,工艺进步和三星经验的各种改良 下图是5422对比5430,5422多了0.35W所以基本上可以看出 5410 28nm 1.5W 5420 28nm ?? 5422 28nm 1.1W 5430 20nm 0.75W 与时俱进的啊,别老盯着5410看,同样28nm,设计也在进步的。 当年5250多可怕。 2. 上面测的是“满载功耗”, 至于测试的性能差异,我们并不知道 他也没说跑的什么测试程序 (熟悉PC的肯定知道,Haswell跑某些拷机测试温度/功耗比IVB高很多,因为某些瓶颈消除了里面ALU更容易喂饱,导致拷机功耗飙升。 不能因为这个拷机功耗高,而日常HSW比IVB提升有限,就说HSW完蛋了) 于是下面是 “日常应用”测试日常应用提升有限,但功耗增加也会有限 然后看这个,就发现5433的能效跟5430其实差不多 即完成同一项任务耗电差不多。实际上看XML解析测试,A57能效还比A15高点 但总体上,因为A53能效比A7低不少,合起来能效还是不如A15/A7 但差的也不多 所以不要问: 为什么5433的note4续航不差啊,balabala了 2倍是满载测试功耗的差异 ×T760 这个也更正下 单个shader core在0.55W的样子 500MHz 6个shader core 在3.3W 所以T760功耗应该是3.3W+ 不到3.8W,3.8W是整个SoC以上是T-Rex功耗 T760 Mahattan比T-Rex功耗更高,就算是3.5W吧 20nm Tegra X1: 1.5W 33fps A8X GX6850: 2.67W 33fps Mali-T760MP6: 3.5W 14fps 能效: Tegra X1: 1.78 A8X GX6850: 1 Mai-T760MP6: 0.32 ======== Maxwell 是 Mali-T760的5.6倍能效 当然,T20比S20可能更好?工艺差距。 TX1 和 A8X都是T20。
1 下一页