雷丘🌱 op52op
关注数: 142 粉丝数: 863 发帖数: 12,530 关注贴吧数: 17
基于Alder lake的内存子系统与性能杂谈 由于疫情的缘故,被困在魔都已经五十多天了,困着就想摸鱼,再加上物流不通,因此很多测试都未能顺利进行,不过还是趁着被封控的功夫做了一点有意思的测试。 内存子系统,是CPU中的重要组成部分,它的缓内存配置,与CPU的实际性能直接相关。 在很多场景中,单线程性能往往使用Latency Performance(延迟)表示,而多线程性能则习惯性用Throughput Performance(吞吐)表示,这实际上揭示了不同侧重性能对内存子系统不同方向上的要求。 因此合理的配置对其性能的好坏具有极大的影响,在这里,我们将基于Alder lake系统,来阐述Latency/Throughput对性能的影响。 这边我们使用的测试环境如下 CPU: Intel Core 12700K,其中P core固定在5.0 Ghz全核心,以避免由于多线程turbo影响频率,从而在影响多线程的效率计算。类似的,E core被固定在3.8 Ghz全核心。 总线频率被固定在了4000 Mhz,这主要是为了避免由于开关E core导致的ringbus频率变化从而影响测试结果。 DRAM: 这里我们使用的是芝奇的4000CL19的皇家戟,容量为2*16 GB。 具体设置为4000CL16-16-16-32-320-65535,Gear1模式。 OS:Win 11/WSL2/Ubuntu20.04 我们首先对该系统的内缓存的延迟情况进行了相应的Full random latency测试,并标出了对应的一些重要节点。在Alder lake系统中,我们同时对P/E的内缓存延迟进行了相应的测试。 可以看见在E core的cache中,实际上有一些比较重要的延迟变化情况,在比较重要的几个变化点在L2与L3中。 其中影响比较大的系192KB与512 KB位置,前者超过L1 TLB的cover范围,因此从这个点开始latency将有所增加,而后者则是L2从private过度到4C shared的部分,因此这个点之后的latency也会略有变化。接近的情况也出现了L3中,只不过由于L3(LLC)系全核心shared的部分,故不存在由于缓存性质导致延迟变化节点。 E core的内存延迟大约在79ns左右,系256 MB处的测试情况,实际上我们测试过1 GB附近的情况,延迟也大概在80-81ns左右,因此这里我们标注了79-81ns,对应的cycle数大约为300-308左右。 类似的,我们也对P core的情况进行了相应测试,其内存延迟大约在59-62ns,其中59ns在256M处取得,62ns则约在1 GB处取得,对应的cycle数大约为296-309左右,可以看见其与E core的内存延迟在cycle层面实际上是相差无几的。 Latency ns=cycle/frequency。 值得注意的是,从E-core访问L3的速度似乎比从P-core访问来的更快,快大约10 cycle。
双通道的DDR4的确会成为很多浮点应用的瓶颈 对于12C这种情况来说,双通道的bandwidth已经成为了多实例任务中严重瓶颈点。 我同时测试了12C20T,12C12T,以及8C8T的情况多线程SPEC情况,并将其与11800H 3466CL22进行了相应的对比(99%的DDR4 laptop带宽都不可能有我这个多,我相信绝大多数的DDR4桌面平台用户的带宽也应该没我多)。 编译和测试的条件见Pic1的中间部分,编译的条件主要是为了跟某位同学的测试统一。在使用一套binary的情况下,总的结果大概是这样的:12700K的测试平台在4000CL16水平下int比在用的11800H平台要强59.2%,fp则强60.6%.....测试结果的细节还是比较有意思的,超线程在大部分情况下只在多实例整数测试中有一定水平的提升(大约10%),在浮点测试项目中则遭遇了比较严峻的滑铁卢,很多项目实际是不增反减的,以至于总分都下降了一点点。 而这个情况,实际上在8P4E vs 8C0E的时候也有所反应。 其中的一个主要原因是实例太多,对应每个实例能分到的带宽太少,这也是为什么我说bandwidth已经成为多实例任务中严重瓶颈点,这也能解释为什么之前干活用机器做核酸蛋白模拟的时候,关超线程实际跑出来的速度比开着超线程还快,这超线程要你何用(绷不住)。 当然,我们常用的渲染测试项目代表 511.povray_r、526.blender_r以及图片处理导向的538.imagick_r,压片常用的525.x264_r在超线程开启的情况下还是有不错的提升的。 随着桌面端/服务器端核战争的不断演进,内存/缓存子系统的伴随提升也是重要的提升点之一。当DRAM的带宽提升速度跟不上核心数增加速度的时候,片上的缓存子系统设计是否适当,就会成为缓解多线程瓶颈的一个关键举措。(我什么都没有暗示,尤其是没有暗示为什么小核心不大改微架构的情况下L2直接翻倍,你们不要无端Lenovo)
解禁了,来讲讲很多厂家没有(不愿意)告诉你们的ADL-P的小秘密 1.今年的12700H机型是给各位二三线笔电厂商的一次技术力大考,考验的还不仅仅只是技术力,还有成本的衡量。 不会真有厂家以为自己能算的过INTC嘛?不会吧不会吧? 手动调优-P以及I9H的电压频率曲线当然是要你加钱卖你厂家的啦。 低价卖你12700H难道没有坑嘛?不会吧不会吧? 这U跟往年的I7-H经过电压-频率校正总体性能几乎一致可不一样,同样的PL性能最大也能差到15-20%的。 所以客官们需要擦亮眼睛去看看这些厂家哪些是认真堆料了的,哪些靠着穷鬼level的堆料硬撑上12700H的。 (有点台式机U的味道了吧?) 2.DDR5今年在笔电上是个勉强能有感知的升级,和桌面版的情况不太一样。 考虑到很多笔电厂家去年Tiger lake给的是3200Gear 2 mode的情况,从3200CL22G2拉到4800/6400G2实际的latency是降低的。 我们测试的11800H+3200G2实际full random的latency会拉到105+ns在这种情况下同为G2的4800CL40 DDR5延迟跟性能都会好看一些,带宽则是大跃进。 跟MSDT不一样,反而会有比较明显的性能提升的情况出现。 当然,价格是另一个问题,16G的成本估计要比DDR4贵400-500,不过这也是两家新品共同面对的问题。 3.关于本代产品DDR4的情况 今年IMC比去年看起来有进步,3200G1比较轻松,如果是这个mode的话,对比D5 latency会略低一点点,不过带宽吃亏就是了。 4.关于满血的性能 之前不都跟你们说过了要三位数才能跑满嘛。 12700H 满血大概在7300 R20左右,12900H大概接近7800(至少叔叔我是没有跑到8000的,我都不行了我就觉得不可能上了,除非我跑分都没有含金量了),R23自己按照比例算,不要麻烦我。 GB满血 12900HK在1*****,12700H没测,硅渣有什么好测的,除非牙膏给我送测。 今年限制的东西还是不少的,以避免以下犯上的情况出现。 5.还有其他的什么我不记得了,你们自己问吧。
冒个泡,顺便答疑~ 妹被抓进去,憋担心,害活着~ 别问什么RPL,MTL,ARL,最近忙的要死没空找舅舅吃饭问消息。 问就是不知道。 Ps:最近其实是在忙几件事,一方面是年底了要赶点进度。 另一方面是其实我在做自己的一套标准相关CPU单线程性能天梯,主要会以SPEC2017为基准,目前已经测试了包括Golden Cove,Zen 3, Cypress Cove,Willow Cove(Gear 2 mode),Zen2,Gracemont在内的一系列微架构。 一月底的时候会继续将Skylake以及Willow Cove Gear1 mode一起测完,届时会根据微架构测试的情况,以及不同CPU的标称睿频情况,去构建一个单线程int/FP性能的一个天梯。 附已经测试完成的微架构数据:PS,其实FP部分的521,527两个子项也已经解决了编译上的问题,不过因为前期测试的时候没有引入这两个子项,后续数据也将不再包含。 所有的测试均在3200CL22-22下进入,定频在3.6Ghz,Windows10/11-WSL2+GCC10.3.0 编译flag:-O3 match=native 虽然匹配不同的match跟编译器版能够得到在不同处理器下更好的成绩,但实际上程序别说是正常应用哪怕是benchmark也不会因为不同微架构而专门编译不同的binary,因此为了更符合开箱即用的情况,我们选择的是O3作为编译flag,match=native。 上述成绩均为跑了多组后选择的最好组别成绩,后台为仅有windows安全中心,其他非驱动/系统后台全部清理干净(最难跑的一组uarch跑了八组之多,把人都跑吐了)。 int部分与Anandtech的Server的GCC部分测评做过对照,Zen3的IPC成绩几乎完全一致,分别为5.91/3.5Ghz(Anandtech),6.02/3.6Ghz(Raichu),至于浮点部分,穷鬼双通道是不配与八通道相比较的,在这里我们还是有一定程度上的自觉的XD。 ------------------------------------------------------------------分割线-------------------------------------------------------------- 另外与其他人成绩例如Chen大,会有一些不同的地方,这里主要体验在几个项目上,我也会一一解释缘由。 1.523.xalancbmk_r,这个子项非常吃内存调度,我之前跟Andrei聊过关于M1 A14 A15的分数问题,其中有一个很大的变化就是因为系统升级后,malloc调度有一定的调整变化所致。 Chen使用了第三方的jemalloc会导致523,521(浮点,不包含在本测试内)有非常大幅度的提升(40-60%),但不同微架构提升幅度是不同的,所以会引发不同测试数据显著不同的问题。 2.match选项,GCC在不同版本中有不同uarch的特定flag,这样会在不同微架构上对成绩有一定的提升,同理后续的GCC12会引入alder lake的flag,也会进一步提升对应性能,但是很遗憾,我们依旧不会使用。 3.-O3与-Ofast的区别,虽然很多同学信誓旦旦的说-Ofast跟-O3几乎是一致的,几乎没有成绩上的区别,仅仅只是gfortran上有几个优化flag的区别而已。 但在我们实测对比测试的过程中,我们发现有两个子项跟-O3/-Ofast的选择是密切相关的。 第一个子项是557.xz_R,由于编译器对应新架构支持的问题,-Ofast下的557成绩大约比-O3下低10%。另一个子项是544.nab_r,在这个子项中,-Ofast则比O3要快大约10%,实际在O3下你会发现GLC甚至打不过CPC跟LWC。 以上就是我们对应测试中与其他测试组别产生的一些数据的差异,仅供参考。 ------------------------------------------------------------------分割线-------------------------------------------------------------- 后续,我们还会完成表格中Skylake部分以及Gear1下Willow Cove的测试,至此我们会根据测试IPC结果以及对应产品睿频去标定的不同CPU的整数与浮点性能情况,并尽可能的制成对应的天梯图。 如果有可能可以借到相应测试平台的话,我们还会测试CZN,RMB,以及Renoir 的情况。 最后,初版的天梯不咕的话,大概会在二月初完成,最迟我想应该也不会超过二月底才对。
关于12 Gen Core DDR4 OC的一些简单流程(非小白向) 首先要明确的点还是不少的,本代产品由于几个电压的变化,工艺的改进,IMC的调整,所导致的问题还是比较多的。 从目前看,即便是散片,I5的能开机的稳定情形大体应该在3800G1甚至更高附近,I7能开机的情形应该在4000G1附近,I9没摸过,但估计会在4133+(时序先不考虑),目前见过的4000G1在电压调整后都不开机的I7 12700K仅一例。 这里讲一下以MSI板子为例的一些需要调整的情形,平台就是MSI Z690 pro A DDR4本代唯一指定旗舰。 本代产品跟Rocket lake类似,开启Gear1 mode下会出现IMC/DRAM分别产生瓶颈的情况,因此需要分不同情况进行分析与操作。 警告:超坏了不管! 警告:超坏了不管! 警告:超坏了不管! 警告:超坏了不管! 警告:超坏了不管! 1. 首先是点亮见到bios 厂家LOGO。 注意:这里一般使用的是特挑B-die,所以RCD跟RP跟CL是一个数字,如果是海力士镁光什么的自己看着办。 以4000Mhz G1为例,首先我们先以能点亮为目的,最好一开始的时候把时序设置成CL19-19-19-39甚至更松(我私以为22-22-22-42更好,反正先看能不能开机),tfc给到550甚至以上,此时DRAM的电压设置为1.45V左右最好,不要加的太高到什么1.65V啊之类的,过高的内存电压容易使内存温度较高,如果没有加风扇吹的,反而会很容易引起稳定性的问题。 SA电压也手动指定到1.40V左右(我一般会1.45v,不建议学),不要使用MSI的memory try。 频率设置这里有133*30 or 100*40,可以分别试一下,有些CPU的100*40比133*30容易稳定,有的则相反。 然后开机进windows界面,W11的稳定性要求比W10高,以往Win10下能跑AIDA64 内存带宽测试的情形可能在Win11连桌面就见不到就没了。 如果logo都见不到,请优先将内存调整到Gear2模式,看一下能不能开机,如果可以就证明IMC不太顶。 将内存模式调回G1之后,再加一点点SA电压到1.45v,1.05V电压也可以稍微调整一下,但不建议超过1.3V。 如果通过以上操作都不能开机的,请直接放弃本内存频率,下调一个内存频率挡位进行测试(大雷!)。 2.进入系统后运行内存稳定性测试 这里我们以TM5 anta777 extreme过测为基本标准,P95 small fft为进阶标准测试。 通常内存测试extreme中,有四波难度高峰,一般出现在3-4 7-9 11-14 2x分钟的情况,如果这几个节点都没什么问题一般测试还是比较容易通过的。 如果报错就请参考anta777的报错表。 如果一点开extreme就开始error,那不用看铁定是内存小参太死或者内存温度高了,想办法调松/处理一下。 其他的报错往往会有两个情况,03这种大概率是内存问题,同上操作。 00 01 02 04在本代中,比较容易是IMC的不稳的情况,本代的IMC甚至会出现相当极端的4000下稳定运行,4100甚至直接开不了机的情况。 在这里,为了验证是否问题来源是IMC,请进入bios之后将内存运行模式更改为Gear2然后重新进行稳定性测试。 如果在Gear2模式下,没有报错,那证明大概率是IMC的问题。 将内存模式调整回Gear1之后,请按照0.01v左右的情况往上加SA电压,切记不要太高(最好<1.5V,谨慎一点甚至<1.45V),不然boom就好笑了(阿祖,收手吧!) 如果Gear2也报错,孩子你需要好一点的内存了x(这个时序都不行就换内存辣,当然也可以试试调整一下内存电压看看有没有操作空间,当然,还是那个意思,1.5v差不多到头,没必要追求那么疯狂的情况。 需要声明的是,开机跟稳定是两个概念,4000以上频率开Gear1模式,稳定的难度还是相对比较大的。3.当完成了内存稳定性测试之后,可以开始尝试收小参 还是控制变量法,一个个小参慢慢收,一开始可以收的稍微大一点,一整组的来,比如直接收到CL17-19这样的情况,激进一点甚至可以直接收到CL 16-18,最后慢慢的往下摸到CL16-16 trfc 280 TWR 12甚至更低等时序。 如果出现稳定性问题回2继续测试,然后继续摸,直到把第一时序,第二时序一个个完整的摸完,如果对自己内存跟U IMC体质不很了解大概需要三到四天。4.small fft测试 除了单烧内存的情况下,有些时候CPU运行的时候引起周围环境温度过高也会引起内存的问题。 这个时候请下一个最新版的P95,跑一下small fft,以一个小时为界限跑一下稳定性测试,最好跑更长一点,如果跑下来仍旧没有什么问题,那么恭喜你,基本这个平台就可以稳定用了。最后还是提醒大家,超频有风险,OC需谨慎,内存尤其如此。 谢谢。
十一月答疑&部分问题解答 Q:雷丘雷丘你是不是被牙膏厂抓进去了啊?怎么那么久不发声啊? A:辣鸡膏子也想抓我?呸~ 其实是最近工作比较忙,再加上买的东西陆陆续续才到货,又想摸鱼就懒得发消息了。 打算拿量产版U自己测一下ADL-S的性能,买的平台是12700K+Z690 pro-A DDR4+DDR4 4266幻光戟,要是不能4200G1我就去喷膏子去 测试的话,核显平台不测大型游戏,我就是懒鬼我光明正大! (其实是1111没抢到便宜显卡,东哥yydg,家里的老卡懒得拆了,还要快递过来麻烦死了) PS这也是为什么小核心的微架构解析一直没有出的原因,因为我想顺便带点数据测小核心,月底前肯定能完工,保证不鸽。(一般这么说的都鸽了) Q:雷丘雷丘,该讲讲MTL了吧? A:来了来了,流星是intel第一个7nm产品,噢现在叫Intel 4工艺,sry,一不小心揭老底了XD。 CO-EMIB的多chip产品,IO GPU CPU 分离设计,极大程度上能够提高良率,降低成本。 时间的话,大概在2023Q2-Q3左右来,会不会延迟不知道。 那么会不会跟箭湖冲突呢?据说Arrow lake也是大约Q3-Q4左右来,那么流星是不是真的就跟流星一样,一闪而过成为比火箭RKL更短命的产品捏?(管人gck 前些天吃饭的时候听我舅舅说,这里其实涉及到一个定位问题。 如果你把流星看成是Tiger lake 2.0的定位,主力在移动端,MSDT端可能只出中低端或者不出产品,那就能理解了。对于牙膏来说,移动端/server才是出货的大头,在产能不甚足够的情况下,优先满足移动端跟server是非常正常的事儿。 关于箭湖Arrow,工艺路线确实在TSMC N3跟自家摇摆ing,的确很大可能会去TSMC(虽然路线图改了一万年了,但没见到sample之前下结论万一打脸不太好)。 主要是有两方面的因素,一是实话实说I4产能不太够,由于GPU做大之后加上微架构与缓存配比进一步调整后,移动端产品的总面积在快速增加,产能着实是开始有点捉急了。 另一方面是的CPU part因为核心多的缘故会相对比较大,用密度相对高一点的工艺也省钱,I4那个良率到时间能不能raise到那么高也是大问题。 Q:那关于流星湖跟箭湖这哥俩的微架构跟IPC情况呢?是否是不同工艺的老架构重制版呢? A:No,流星湖跟箭湖对比猛禽湖(Raptor)来说,都是同时工艺+微架构的改进,毕竟大小核心都会有所改进。 关于改进幅度,大约跟Skylake到Sunny Cove的幅度接近,小核心也大概在15-20%左右的提升,FP可能会稍大一点点。 Q:流星与箭的微架构异同? A:可能会类似SNC到WLC的变化,据说微架构上也会有一点点的调整。
都等着钓我是吧? 都钓我是吧~ 行,那我也来吹逼,以下内容概不负责。 1.12400这个6C型号有两个形式,一个是8+8的die切下来,一个6+0的原生。 前者散热会相对好点,毕竟8+8做到了20x mm2的面积是这样。 后者内存延迟好一一点,所以会有两个步进,但目测用不出区别。 2.这一代的散热跟功耗相关,准确点是电压-温度相关,同一块主板没改任何设置,就是动了动散热从95到7x温度,电压低了大概50mv?功耗也会随之低一些。 3.bios在调整调度/功耗,126K已经压到了默认140w FPU AVX2附近,说不定你们能见到离谱点的甚至刚好跑满PL1的,万一能压的更低当我没说,129K据说目标要压到230w左右,也就是228W的PL2。 PS:描边怪的129K部分跑分有点问题,因为跑分中途会有一点过热降频,这个问题其实在之前QS刚到OEM测试的时候也遇到过..... 就是那种监控里频率明明没低多少啊?但是就是对比其他家工程师测试分低一些的情况。 另外I9有TVB TB3, I7有TB3,所以实际频率也比他测试的要高一点点。 12900K R20 ST跑满TVB 默认下8打头是没啥问题的,MT 11打头也没问题。 3.Gaming,12600KF+DDR4默秒全! 开玩笑开玩笑,打打5800X还是没问题的。 九月底的时候说除了某“奇怪网游”持平 外基本网游都有一定优势,3A这个游戏主要是吃显卡,优势没网游大,最近两版bios又稍稍“鸡血”了一口,gaming性能比对家高还是没啥问题的.... 趋势嘛,大概可以参考TGL-H45 VS CZN-H这样,基本就是这样? 4.分频 实际上这个分频点跟主板给的IO电压是有关系的,很多人会问具体怎么分Gear2 Gear4? DDR4的板厂优化情况,目前只知道两家还算认真做了优化,“大部分型号”下 分频点跟RKL差不多,Gear1跟Gear2在主板自动的IO电压下,3733-3866左右分,顶级的4000左右分。 至于DDR5,默认4800G2。 DDR5板厂们都主力的做了相应的优化,目前的情况下看,板厂的适配的IO电压测试时2ch(4ch存疑) 1dpc这种情况到了7200还没有分频到Gear 4,我拿不准2ch的具体分频点,但应该跟比G1*2频率差不多,可能稍高一点点,主要是DDR5时序低压力也小,另一方面厂家也在做重点优化。 别说那个8000 Mhz 的Gear2,那个是单条,看都不看。 5.价格 我们拿到的ppt里面只有price point,就是价格定位,只能靠这个猜。 其中12900K定位最高,跟11900K一样是T6K,其实11980HK也是这个定位。 要我猜 129K可能得699刀,预估RMB首发怎么也得5.5k了,毕竟多核心性能是对位5950X,部分场景还小超一点点这样。 127K系列,对位5900X,449刀左右也是个比较合理的价格,首发换成RMB盒装估计3000得要的,KF估计便宜200,散片再便宜一点。 126K系列我个人预计2000以内好吧,目测279刀-299刀,尤其是12600KF,奶一口1899。 如果最终比这个价格低一些,不是证明牙膏有良心。 而是牙膏想要对隔壁下杀手,打价格战,毕竟我比你强还比你便宜。 如果MSRP比这个价格高不少,建议组团喷牙膏,我第一个带头好吧。 6.系统 建议Win11. Win10的调度起码得明年才推进跟上。 没有小核心的型号随意好吧。
扯一嘴HEDT 先说明这玩意我真没鹊妾的消息(你猜我猜有没有你猜猜猜。) 这玩意ICL-X当年跳票给我恶心坏了x,以至于我好久都懒得问HEDT消息。 主要是10+工艺离Super fin频率上差了一个次元,里Enhanced Super fin差了俩次元,再加上良率问题连W系列的atom都出的姗姗来迟。 HEDT主要尴尬的是定位,上有Server+价格更高的WS产品,下有MSDT。 性能卡位要介于两者之间就很麻烦,再加上众所周知的自家MSDT 8+8了,所以牙膏自己也在重新评估这个东西..... SPR大家都知道了,鹊食有HEDT这个破东西。 时间表比对家Zen 3 HEDT晚大概一个Q多一点点。 对家延期到了22Q2大概,牙膏则是Q3,应该跟RPL差不多时间出来。 Cache上你们懂,2+1.875/Core,用更大的L2换性能,IPC会比桌面好一些(int 三到五个点吧),而且mesh总线+多内存通道 提供的带宽跟延迟情况比Ringbus+2CH好不少。 这个年经问题其实在SKL系列里边就有,尤其在访存性能上,SPEC测试里几个点吧。 所以其实你们也别怪Anandtech测出来server跟MSDT差别辣么大(当然他家用不同频内存真是有点恶心),当然也有编译器的问题,不过总线跟DRAM/cache配置什么的也是要考虑的嘛。 Wx90这个系列主板系列其实大概算是跟WS路线合并,换句话说HEDT不锁的SKU会跟Xeon-W完全并轨,应该是不会出现那种什么W-3175X明明是W路线却使用不同主板情况的出现。 Core number 44/56,目前不知道给哪个上限,以牙膏尿性我不负责任猜没良心的44,给56当我没说。 扯一嘴频率情况,SPR-SP 某个ES2 摸到了4.4Ghz 1ST,SPR-X大概率会比这个更高,可能会有4.6Ghz吧。 不过这玩意4 tile EMIB面积很大,应该很好压,水冷玩家可以狂喜了。 2022最有趣的HEDT预备(满血GLC+高性能工艺+大Die area+豪华主板供电)
12-Gen Core系列性能核心P-Core架构---Golden Cove架构浅析 前言: 由于制程长期处于仅有小改进的状态,因制程-架构绑定的战略,Intel在核心架构同样停顿了数年之久。直到2019年开始,由于调整后量产的10nm finfet工艺逐渐开始能够满足新架构对能效需求,因此老旧的skylake终于在2019年开始逐渐被Sunny cove以及其变体所淘汰。今天我们介绍的主角便是Sunny cove的正统继任者-Golden Cove (GLC)。 (1)架构解析 在对GLC架构进行具体的解析之前,我们需要对老架构SNC进行一下简单的剖析,才能更加清晰的得知该做什么改进,如果做的话,又同时需要对应的做些什么样调整。 众所周知,Sunny cove与其前任Skylake给大家的“印象”其实一直是一个前端相对偏窄的结构微架构,但其实它的偏窄,很多时候和我们理解的偏窄以及需要改进的方向是不完全相同的。 如果把Sunny cove的运行流程大体简化一下,大概能够得到这样的管道图形,当然并不完全准确。在不考虑分支预测器-uops cache路径的情况下,大体的流程如下: 从指令预取开始,到指令进入decoder,编译成可供处理的uop,然后送入指令队列,进入分配器进行重命名,重命名之后分配到执行单元进行执行,并且由ROB记录执行的顺序、寄存器、执行结果等等信息。等到指令执行完毕之后,再回写进cache,然后进行指令retire。对于一个管道来说,实际它可以通过的单位时间最大水流量,往往要取决于最窄处的情况。同样的,对于处理器来说,它的实际IPC也要受限于整个微架构的最窄处。 对于SNC来说,通过这个图,其实我们可以很快的注意到整个架构最重要的几个瓶颈所在。 从前端来讲,一方面是decoder在预解码的时候接收来自L1i的指令带宽不太足,另一方面其实是分支预测的部分,还是需要比较大的改进。 关于ops cache路线的部分,由于比较复杂,就相对来收不做叙述(它是可以跨越16B的限制的。) 从后端来说,其实这个图是不完全准确的,勉强看看就好。 从SKL开始,前端给出来的每周期指令峰值可以达到6 ops/cycle,然而到了后端开始,你会发现后端其实执行指令的速度是跟不上前端产生的水平的。 SKL的rename/dispatch带宽仅仅只有4 uops/cycle,到了SNC开始,前端每周期指令还是那么多,但后端dispatch/rename终于增加到了 5 uops/cycle,算是比较大的进步,可问题出现在整个后端的指令retire部分,实际上一直维持4 uops/cycle的水平,这就导致可能出现比较严重的指令执行完成后排队等候retire的情况,为了满足同时执行指令数的膨胀,ROB也由224增加到了352。 关于执行单元部分,其实在不考虑浮点与整数互相争抢端口的情况下,SNC的整数带宽得益于AGU(地址生成)跟SD(数据存储)端口是真的很多,理论的最高峰值应该是有10条指令每周期的。 同理,这个浮点部分也是类似的情况,3+6实际最多理论可以达到9条指令每周期,但介于整数浮点端口公用的情况,这个理论带宽怎么想也是几乎不可能达到的,看看就行。 当然我觉得由于retire跟rename带宽相对限制的情况存在,整体IPC的瓶颈应该是不存在执行单元部分的,4 int ALU的IPC能有多高其实人ARM X1不是已经告诉你了嘛,当然人家流水线短相对来说IPC回归的情况会比X86好一些。 当了解完老架构的问题之后,如果作为设计师你要来对架构进行改进,你会做一些什么呢? ----------------------------------------------------------------------------------------------------------------------------- 首先是解决前端decoder预编码带宽的问题 第一个问题,16B的Fetch到底能放进几条指令? 这个问题其实在Intel 提供的Architectures Optimization Reference Manual上有提过,对于较长的SIMD指令来说,通常只能放下3条,其他指令则有可能放下4条。 这种情况下,如果不增加预编码带宽,增加decoder是没有意义的。 intel自然不会不知道问题的存在,因此他们选择将带宽进行翻倍,对应的预先编码与取指的窗口自然要跟着翻倍,不然可不就改了个寂寞么?既然你这边的带宽翻倍了,那对应的虚拟地址到物理地址转换的i-TLB也得跟着改啊。 好了,既然我预取指数量翻倍了,那我自然也可以适配更多的decoder。既然是这样,那我肯定会选择跟着适配上。3+1的decoder自然就变成了6+1(6+0存疑,有没有+1得测测才知道,但我想应该是有的,因为我这边的消息是6 simple decoder)的情况,每周期出来的指令数由6变成了8,其中超过6的部分还是一样由MSROM生成。 需要注意的是,由于decoder的增加,在X86中超过一定数量的解码器会导致复杂性的增加,一个显著的结果就是解码部分的流水线长度增长,intel也注意到了这个点。 然而,在实际的使用场景中,绝大多数的前端指令并不是由decoder产生的,早在2001年,intel提出ops cache之后,core应用以来,几乎有85%的前端指令其实是由DSB(ops cache)产生的,既然你decoder产生的指令数增加了,那对应的ops cache产生的指令数也应该增加到至少8 uops每周期,跟之前的情况类似。所以intel选择在这里调整了ops cache的大小跟命中率。 这就导致,虽然由于decoder数目增加引起流水线增长,但大部分情况下并不会出现这个问题。 除了前端取指带宽&解码的问题外,分支预测器也是个老问题了,SKL放在它产生的年代,算法与BPU的确是首屈一指,但如今可都是2021年了,即便是宝刀也已经老去不少了。在这里,intel自然也对这个部分进行更新,BTB甚至拉到了12K….,我只能说丧心病狂。 算法也进行了对应的调整,更方便取指,也增加分支预测准确率。这就是前端大部分的改进,可以说是对SNC的全面改进,当然也可以看成是一个全新的,新建的超巨核心前端。 可以说我们能注意到的,intel都做了更改或者调整,如果调整的部分跟他们叙述一致的话,整个前端到此为止几乎再没有瓶颈可言,甚至就连单线程时的对应ops queue都一口气拉到了144之多(当然我觉得这一步影响其实是很小的,因为ST跟MT下的每线程性能其实没有多少差距,可能是为后面打基础。) 关于后端: 如果说前端是史诗级的大跃进 那么后端,我觉得更多是有意为之的“挤牙膏”,尤其是对比E-core那个宽到无语的后端之后,这不是说他没有提升,而是我觉得他在有意无意的控制提升的量。 牙膏其实更多的改进在OoO窗口而非在执行单元上,回到OoO窗口的问题上,Intc显然是注意到了自己在后端上rename宽度较低的问题,这回可不就机敏的从5加到了6 width了,retirement width虽然没说,但我猜大概率也加到了6,回头测测就知道了。 这就意味着,牙膏牌微架构总算一口气从实际四发射拉到了实际六发射。 不过说实话我觉得学ARM的X1微架构都加到8其实也没啥,实际IPC估计还能高一小截,这大概就是挤牙膏的水平跟能力吧。 这里需要注意的是,牙膏说自己在rename到allocate这一步,做了相关的优化,实际降低了流水线长度,少了一级。 考虑到decoder解码惩罚的情况,从decoder出来的总流水线长度应该没变,而走DSB的会少一级。 关于ROB,352到512 entry的改进的确是个很让人印象深刻的改进,但考虑到原来是个6指-5重命名-4退 的微架构,现在拉到8指-6重-6退的微架构,适当的调整ROB大小对于OoO阻塞的情况是有进一步缓解的。 我判断retire仍然是6的原因是:如果是8-6-8的设计,那对应的ROB就可以极大程度的缩小。 紧接着是执行单元部分,为了配合足够宽度的前端和乱序窗口,4 int ALU的时代总算是朝着5ALU的时代的迈进了坚实一步,但离果子家的6 int ALU还有比较大的差距。 需要注意的是,这里的ALU是挂在新的port上的,而该port上无浮点单元挂载,相当于是个独立port。对应的fp部分,在P5位置增加了比较重要AMX运行单元,为AMX指令集提供支持,单CPU应该可以提供100T以上的单CPU性能,主打AI这一块,跟日常无关,体验是不会有提升的。真正跟体验有关系的可能还是补充的FADD单元,这个东西有点像是Zen2到Zen3的补充一个FMAC的改进,不过是类似反过来有FMA的情况下补充ADD?总的来说会进一步降低部分ADD等运算的延迟,可能在极少情况下部分运算能有一定的提升。 至于某些野鸡媒体做梦的3*256bit SIMD,首先得有多一组256bit ALU才行。其实相较于计算单元部分来说,比较值得称赞的还是访存部分。 访存一口气增加到了3读2写(关于512bit部分,消费级没有,别想了),要知道通常的使用场景里,几乎是没有读写比例接近或者平衡的情况存在的,这种调整的趋势是符合现代微架构的改进的。 剩下的cache改进部分,消费级的1.25M L2已经在TGL中出现过,就没有必要继续多废口舌,倒是DC上的2M L2比较有意思。 这里还是解释一下牙膏的cache思路 他们的思路看起来比较果化,认为更大的L2能够比L3来的更有效。 L2吞吐本身就高L3几个数量级,另一方面是膏子TGL后的L2跟L3是non-inclusive,这就意味着它本身数据交换形式跟常规SOC是不一样的,它的L2跟L3命中率都按说比正常情况会高才对,当然部分情况延迟可能也会高。 在non-inclusive的情况下,其实增加L2获得的收益,要比增加L3来的要重要,所以更多看牙膏这边cache,可能看L2比L3重要一些。 —————————————————————————————————————————— 由于八月底搬家到新地方的缘故,很多进度就拖了一下,一拖就拖到了九月,很多事儿慢慢来吧。
扯几嘴最近review进度缓慢的原因 1.最近在搬家,拖了进度,不过已经算是整完了。 2.H45机器在内存跟能效上都存在着跟以往机器不一样的新特性与bug,所以目前的测试在斟酌到底该往什么方向走。 (1)首先是IMC部分的bug. q1:H45对单条的大容量内存支持有一定的问题 我的老内存条是32G单条,2ch是2*32=64G,2666的条子。 换上H45之后,我惊讶的发现2666开机后直接给了我Gear2 SAGV setting(内存动态Gear 1/2切换)是不生效的,也就是说2666G1只限定于4*2/8*2/16*2的情况,这是以往没有人说明过的情况。从测试的延迟中也看得出来,明显处于G2的状态。 如果使用2666G2进行相应的测试一定会出现很多性能偏低的问题,为此我临时加钱买了两条镁光的16*2 3200的内存,考虑镁光的原因是因为条子对IMC压力低,我还是存着能3200开G1的想法来。 结果Lenovo的memory enhanced在最新bios下开了之后无法强制G1,还是回到了G2上,但频率上总归是来到了3200 Mhz.尽管来到了G2,但能看见内存带宽还是相当离谱的,此外L3延迟也跟着内存性能的up提升一些。 (2)ringbus的变动 今年的ringbus不再跟All core frequency-3绑定,另外cache voltage也独立出来了,可以自由调节。 11800H的ringbus默认给了38x,我能够轻易的拉到42x目前看起来是没问题的。 但这个ringbus频率不管你给多少,它都不会跟老平台一样,在你测试的时候锁定在对应频率,它是个动态的情况,会在32 34 38 等等频率上来回跑,试过加压也没用。 (3)特殊的电压补偿机制 这个问题的存在让我一直卡在要不要测能效和怎么测的项目上迟滞不前。 我在做测试时候,一直很奇怪,为什么那么多人能测出那么多不一样的H45 result呢?很多差距甚至>10%以上的频率。 当然我知道一方面有些人做压力测试的时候是开着AVX512,有些只开AVX2,但实际上在我自己花时间去测试之后我发现了一些新的问题,以往可能可以忽略或者不需要考虑的问题。 注:这里不考虑热降频的情况 如图所示:我发现,即便是在同样的功耗和电压设置的情况下,如果初始的PL1不同,对于机器稳定到PL2时的frequency是有比较大的影响的,这个影响可能在部分情况下会达到10%频率之多。 举例子: 条件A PL1=90W PL2=75W 在机器不碰温度墙的情况下,时间顺利来到PL2 time。 此时对应的75W功耗下FPU(avx2)频率约为4.0Ghz(3.99)Okay,这是一个很不错的频率数字。 但是,如果我们重新测试,用XTU把条件改成条件B 条件B PL1=75W PL2=75W 在其他setting不做任何变化的情况下,结果如图。从任务管理器中判断,频率仅仅只有3.79Ghz ! 对!在同样的功耗下频率下降了0.2Ghz。 如果PL2=65W这种情况,PL1=90W或者PL1=65w甚至会有0.3Ghz的差异!(3.5 VS 3.8Ghz) 在这种情况下我的推断是 它在PL1下降到PL2的过程中实际上是有电压补偿机制存在的,就是说从PL1到PL2,如果有功耗的下降,这种情况,PL2对应的功耗实际比你从相同功耗开始测试的电压是要低上不少的。 这就导致了最终的频率会在相同功耗相同测试下产生明显的差距。 H45这种格外明显的电压补偿机制对于能效测试是非常不友好的。 因为比如说我跑短时间的cinebench性能测试,如果以第一组成绩为例说明问题倒还好,如果你拿这个测稳定性的话,当我PL1=PL2时,它对应的能效一定会远低于我从高PL1下探到PL2时对应的能效,但这个问题在压力测试的时候一定会显现出来。 所以这也能解释为什么我们看见中正测评那个通常二十轮的R15测试时(H45),尽管后面几组已经远远超过了PL1 time但对应的分数下降不明显的原因。 目前正在找其他机型的H45机器进行该bug的复现工作。 新平台的特性比以往多不少,很多东西还要确认到底是bug还是特性,另外今年还可以专门调节不同的AVX2与512电压的情况,这些setting都值得去摸索一下。 总的来说,作为一个新平台,H45的机器确实比较有意思,但由于我们对这个平台熟悉程度上的问题,所以很多时候需要花一些时间摸索一下。
Alder lake-P 产品前瞻 ADL移动端主要分为-M跟-P两类。 -M基本没啥人关注就不写了。 -P根据Base TDP不同分为U15 U28 H45 H55四类 其中U15=4模块+GT2i7 i5=2+8+96EU(和TGL-U一样,区别主要就是频率) I3=2+4+80EU 定位轻薄本,大概的launch时间应该在2021年的年底。 跟现在的TGL-U一样,四模块设计,不过把俩大核心换成了八个小核心。 面积估计在160 mm2左右. MT性能在PL稍显充足的情况下(大约50w),比现在TGL-U差不多翻倍。 ST性能大约提升20-30%(视QS产品最终频率而定)。 单芯片成本基本没有大变动,预估对应的产品价格也不会有太大的变动。 其中U28/H45=8模块+GT2U28 I9=6+8+96EU,i9基本不用考虑走量,没有10k以上基本看都不用看这个。 i7 i5=4+8+96EU(主力走量型号,区别主要就是频率) 定位全能核显本/轻薄游戏本,(U28不很确定launch时间) 跟现在的TGL-H45一样,八模块设计,不过把俩大核心换成了八个小核心。 面积猜测应该在200mm2左右波动(补全 DMI/PCI-E/四个大核心)。 ST性能大约提升20-30%(视QS产品最终频率而定)。 考虑到U28 搭载的模具可能散热会稍显捉急一些,我个人预估 45w-50w应该能比满血的TGL-H45稍强一点点(没有数据,纯粹猜测)。 H45 i9 i7=6+8+96EU(其中i7为主力走量型号,区别主要就是频率和其他细节,类似11800H与11980HK定位,预测I9又是个15k基本的起步产品) i5=4+8+96EU 定位全能本/游戏本,大概的launch时间应该在2022年的第一季度,最晚第二季度,其余同H45。 ST性能大约提升20-30%(视QS产品最终频率而定)。 MT性能在PL稍显充足的情况下(大约80-100w),预估比现在TGL-H45提升60-70%,视最终产品频率波动。 关于H55其与MSDT产品共用一个核心,可以当成是-S的BGA产品,其中核显给了一刀到32EU。 i9 i7=8+8+32EU I5=4+8+32EU H55我个人猜测基本都不走量,应该只会搭载上少量的厚砖本或者水冷本,PL2给的很宽,1xxW。 因为11th没有对应的产品,这里就不做相应的性能预测。
CML不带K(10500/10700)降压以及相关功耗测试 借了朋友两套平台测试这一代I5/I7的降压幅度以及功耗情况。 所有测试条件均为: 主板CPU默认电压设置,然后在该基础上进行电压offset的情况下进行 内存均为4000+ mhz的OC的情况下进行 平台1: 主板:Z490 Pro-A CPU:10500 内存:C9BJZ@4133 16-24 8*2测试方法:单烤FPU,找到稳定电压点后测试1h,以10-15min左右的功耗/电压截图为准 测试条件:默认设置: 电压1.166V 功耗99woffset -0.1V 电压1.070V 功耗80woffset -0.15V 电压1.024V 功耗73woffset -0.17V 电压1.004V 功耗69w最低可以降低到60w左右,但没有进一步测试了,网抑云时间到了。平台2: 主板:Z490 ACE CPU:10700 内存:C9BJZ@4266 18-22 8*2 默认: 电压:1.260v,功耗155woffset -50mv 电压:1.209v,功耗142woffset -100mv 电压:1.159v,功耗131woffset -135mv 电压:1.126v,功耗123woffset -140mv 电压:1.121v,功耗120w本来一步直接下探到-150mv,结果跑了几分钟就蓝屏了,不过功耗就116w左右了,没办法,只能回到140w来测了。 后面又跑了一组P95第三项,30min下来没啥问题的伢子。 总结: 整体各家主板给的电压还是偏高了一些,MSI算是做的最好的,自适应电压,当然也要考虑到平均体制的情况,不过我其实摸了三个10700,整体体制都在这个水平。 10700: 这里我拉了ring,还带了高频内存,所以可能需要电压比你们实测默认要高一点点的样子。 摸得三个10700大概都在1.12-1.15V跑默认FPU能过的样子,功耗大概在120-130w这个区间内,相较默认的155-160w左右还是有比较明显降低的,温度总体都降了六七度的样子,有些板子上来就给1.3V的还是太高了一些,可以手动降降。 10500: 这是我摸得第一个10500,之前都是摸10400的,所以对10500没太多平均体制的话语权 不过从10400平均情况来说,4g的FPU基本1V左右都能跑稳定测试,功耗也就在65w甚至更低水平。 得益于I5的全核心频率较低而默认电压给的很高的缘故,I5一般有更多的降压空间这样。 总得来说板厂给的电压还是偏高了一些,当然这里不点名打人家低端板子跟技嘉一大票 那些默认电压动不动1.3v起步的板子,那些确实高的有点多,给个10400还1.3V,只能说不愧是你x 推荐自己可以根据自己的U摸一摸电压,可以用XTU先调调,摸到电压点后进BIOS改就就行。 另外建议自己在稳定过测的电压基础上再加个10-20mv,这样会对稳定性有所帮助。
讲一些听自我叔叔和舅舅嘴里的一些牙膏消息 本贴仅谈牙膏消息,农企玩家请勿入内。 作为一个舅舅党,随便瞎扯一点点消息。 1. 关于Tiger lake-U 发布时间: 下个月中旬北美发布,国内晚一个月左右,九月开学前应该能买到吧。 当然,因为众所周知的黑人骚乱,不排除稍微延期(一个月那种),但最迟不会晚于八月。 因为八月hotchip。 关于性能: 这一次发布的版本系TGL-U,最高规格4C+96EU,明年Q1末左右发布TGL-H,最高规格8C+32EU。 TGL-U的性能信息 10+工艺(内部称ICL-U叫10改进版不叫10+) 总体CPU提升有25%在25w下,吃内存性能,吃内存性能,吃内存性能,说三次。 IPC +7%,频率+15%以上 1C turbo(1185G7 对比1068NG7),支持LPDDR4X 4266,支不支持lpddr5我不记得了。 工艺有较大的改进,带TVB功能和新睿频机制,1165G7就能跑上4.7g(TVB frequency) 最重要的是,25w PL下能跑满1C睿频在SPEC2017中,性能大约有5.6-5.7g的SKL,当然这个感知在R15/R20中不那么明显,不过R15 1c跑个230+应该还是不太难的。 有一些厂商可能会开放35W PL的版本出来,搭配1660ti之类的显卡,这个PL下性能比10750H 45-50w还要稍强一些,感知整体不错。 2.关于TGL-H 会上5g(1C),安心,性能会比TGL-U因为各种受限更好一些。 最高规格8C+32EU。 3.关于RKL-S 14+++终极版工艺搭配小改WLC架构,IPC实打实25%左右 up综合下来。 总的频率会比目前的CML-S更高,R15第一个风冷下轻松破250的玩意吧不出意外的话。 受到疫情影响和隔壁一样,基本都在2021Q1上市,年内可能有个发布会然后耍一下猴。 预定当代最强臭打游戏U。 4.关于ICL-X 定案了,HCC+LCC,最多应该26C,实际情况还不太明确,在资料里看是见类似SKL-X的转接,BGA2579,应该会跟着RKL-S上市。 架构ICL-SP。 这个架构是个大改架构,与桌面的SNC/WLC很多不同,保密消息做的很好,跟桌面不是一个team的产品,具体架构信息要等到8.17 hotchip才知道。 5.关于ADL-S与LGA1700 目前的爆料真假参半,ADL-S确实有,LGA1700也确实有。 大小核确认无误,小核心GCM,完整AVX256,暂时不带HT,但内部说其实可以开HT,IPC 30-35%对比Trm。 大核心GDC,目前的消息说可能有HT,据说不再是目前的5 decoder,其他消息不知道也不能说。
ARM的进击,牙膏与鸡血A78与X1浅谈~ ARM于北美时间2020.5.26正常更新了自己的新一代microarchitecture,其中有正常随着roadmap更新A78 microarchitecture,也有客户参与的深度定制架构X1。今天主要来跟大家聊一下这两个微架构带来的变化。 1. A77与A76 A77是一个相对来说变动很大的微架构。 它在架构层面的变化实际上来自两个part。 (1) 前端,前端部分引入了MOP cache,由4 decoder输出MOP+分支预测器产生的MOP最终形成一个接近六发射的设计。MOP的增加意味着ROB也得跟着增加,否则会引起瓶颈,这个就不提了。(2) 后端,port与EU的增加计算单元方面增加了一组branch跟ALU,主要改动在LSU这一块。后端整体的变化其实跟SKL到SNC很像。主要变化都是AGU跟Store Data单元翻倍,port数目增加降低阻塞。总的来说这样的改变带来了大约25% IPC提升。 2. 一管牙膏A78 昨晚,ARM发布了新的架构A78,这个架构与其叫做A78倒不如叫做A77改。 从ARM发布的资料看,前端老样子没变化,只有分支预测器有点小变化,不过感知不会明显。 后端微调,增加了两个EU,一个MUX一个AGU。 整体来说,基本上没有太多性能变化,总的来说提升大约5%。(L1 64KB时提升会大一些。)A78架构更多的是在打磨能耗比与降低晶体管数量。3. 新的改变X1 除了牙膏A78之外,还有一个新的用户深度定制架构X1。这个架构倒是很有意思,算是一个极大的提升。 从前端来看,5 decode,MOP cache翻倍,ROB跟着增加,看起来俨然伪八发射的味道。后端在A78的基础上加倍了NEON单元,port随之增加,使得这个架构的理论浮点性能直接追平了SKL/Zen2。(4*128bit) 这无疑是一个极大的改变,IPC提升大约在20-30%(25%左右)。架构的变化带来了更多的面积变化,X1的面积大约有1.5x A77那么大,但实际的提升没那么多,当然翻倍的向量单元晶体管也相对多一些,不过也值得。 如果说A78是一管牙膏,那么X1就是一次重大的改变,它的变化不比从A76到A77变化小。增加了更多的向量单元,构建了一个伪八发射体系,各种各样的提升让人觉得它不再像是一个移动端SOC架构,倒是更像一个为HPC设计高性能架构。 随着ARM微架构越来越强,未来,X86-64也会面临来自ARM的竞争,不过有竞争是好事,毕竟有竞争才有进步。ARM的牌已经出了,接下来就等待八月hotchip,看看IBM跟Intel的牌。
A100的发布到底意味着什么? 北京时间5.14 21.00PM~ nvidia发布他们的新核弹A100~ 那么A100的发布到底意味着什么呢? 1.NV战略的改变 不知道从什么时候开始,NV的计算卡和图形卡线路逐渐分离~ 从pascal开始P100,到Volta的V100再到ampere的A100 他们与同代的图形卡略有不同(V100除外),都是少见的GX100大核心。 从volta开始,大核心中逐渐增加了专用单元 tensor core到turning还增加了RT core 这些专用单元相较于CUDA来说在部分地方有更好的性能,但始终并不全面。 CUDA始终占据着通用计算上最好,精度最高的性能。 一直到turning为止,FP32/FP64始终是CUDA的领域 然而这一切在今晚悄然发生了变化。 A100的横空出世,NV向我们展示了它的设计能力。 新microarchitecture 下的Tensor Core(TC)具有更多的能力 能输出FP64,能输出TF32(一种输入与FP32等长,精度稍低,变换输出标准FP32精度的新精度类型) 还能输出FP16 INT8 4等精度。 而且其性能较之Cuda至少翻倍。Cuda对应的单元已经不再是主角,计算卡的主角变成了TC。 Cuda更多成为了一种补充。 一个NLP方向的朋友见到NV的A100笑着说,这可能是改变DL(AI)时代的东西。 为什么这么说?NLP通常吃FP32/16,以往的TC能输出16,但对于32无能为力 到了A100时代,TC输出的TF32可以有效的替代FP32。NV已经在BERT中展示出其强大的能效。A100除了AI外,TC提供了两倍于CUDA的FP64,实打实的FP64。 这意味着什么? 意味着TC为主导的A100具有强大的HPC应用潜力。 计算卡的去图形化,也许在所难免了。 只可惜,安培可惜它来的晚了一些。 2.“云” 安培的确来的晚了一些。 826mm2 54B晶体管,无不展现着其怪兽版的规格 但这种规格,这个面积,需要有特定的制程来承载。 TSMC为了承载这个规格,专门做了N7+的优化,使其可以用于大面积芯片中。 然而这一晚,就错过了北美大规模的超算的采购季。 INTC与AMD拿到了大型超算的单子赚的盆满钵满。 究其根本,不是老黄的产品不够好,而是黄sir无法提供一整套的配套方案。 安培来的太晚,而早些时候IBM+NV的组合方案大量落选意味着HPC这一到两年内NV占不到太多便宜,至少相较于INTC与AMD两个大赢家来说赚的太少。 NV果断调换了方向 “cloud” 在GTC的视频中,老黄豪言壮志的说道“我们要让我们的DGX出现在世界上所有cloud里” 下一个HPC采购潮到来之前,也许NV的方向会主要放在各家的云上。 3.“AI” “AI市场太大 一去难复返” 如果说图形是老黄的基本盘,那么AI市场就是黄sir眼中的未来。 那是一个远比图形更大的市场。 老黄带领着NV迈向AI自pascal开始布局,一晃已经四五年了。 各家ASIC加速卡的出现都没有打破老黄的垄断地位,究其根本无非有二 良好的通用性与良好的生态。 到了今天,老黄选择自己逼迫自己前行。 他的新计算卡A100,几乎重心已经完全离开了图形卡这一领域,与森罗大众消费者毫无关系,甚至连一个图形视频接口都没有。 它面向的主要对象就是AI。 这是一个更广阔,且更有挑战的市场。 从我个人的角度看 也许未来NV会成为AI市场规则的主要制定者。 A100也许是一个很重要的起点。
高频低能?Skylake与Zen2架构SMT性能差距的相关简要解析 前言: 随着CML-S即将来到市面上,intel的skylake架构也逐渐走到尽头。 作为一个2015年就面向市面的microarchitecture,经历了6,7,8,9,10五代产品,也终将走向尽头。 他的挑战者是来自老冤家AMD的Zen2 microarchitecture。 我们都知道,实际上从IPC的角度来讲,Zen2的IPC与SKL的IPC两者相差无几。 然而Zen 系列的microarchitecture,似乎总在多核性能上比同频率的skylake强一些。 其比例大约为1.25:1.38≈1:1.1 那么为什么会有这样的差距呢?intel为了弥补这样的差距,采用了什么策略呢?skylake microarchitecture(天湖微架构)Zen2 microarchitecture(Zen2微架构) 上图是两个微架构的简图 实际上从前端的角度看不论是参数和设计,Zen2和SKL几乎都是一个近似设计,且在一个水平线的玩意。虽然mop部分有点点差距,但实际上并不会影响多少性能。 那么,两者为什么会有多核效率与多核性能上的差距呢?而且这个差距是从Zen 1开始就拥有的地方。 让我们来到后端,计算单元这个地方。 注意看,skylake实际上它的向量寄存器这里,与它的整数寄存器,注意到了没有? intel使用复用的单元,进行相关的操作。 反过来看AMD这边,整数寄存器与向量寄存器是独立的两个小单元再级联起来。 尽管大家都是四个ALU,两个FMA,连Re-order Buffer(ROB)部分能存储的指令数目,乃至分支预测的算法上都是一个水平上的。 但是AMD这边独立单元就有更好的协同作用,也有更丰富的后端资源,这也就使得其多线程效率更高,在有超线程的情况下这个优势就能展示出来。 这里讲一下具体的数值 Zen 2 1C2T≈1.38c Skylake 1C2T≈1.25c 所以当两者ipc相近且都有超线程的时候,Zen2比SKL天然在多线程上多个大约10%的优势。 同时,由于寄存器单元的复用设计,在开启HT时,intel的IPC也会受到大约2%的影响。8C16T 5g vs 8C8T 5g 可以看见当关闭超线程的时候,不论什么场景下IPC都具有一点差距。 这个差距大约在2%左右,多次测试均可以得到相似的结论。 那么,intel为了弥补多核效率的问题,又做了什么事情呢? 答:用频率换多核心性能。 以i9 9900k对比R7-3700X为例 3700X跑R15等一些低负载测试的时候一般可以跑到4.2g左右,那么根据skl跟zen2之间的多线程能效差距,换算过来就是4.6g的SKL。Intel这边i9 9900k实际上全核心的睿频大约是4.7g,也因此刚好跑R15时压制住了R7-3700X,这与实际测试的数据比较吻合。 但问题就来了,我们都知道,现代的CPU实际上已经处于一个比较高的频率的情况下了,那么再拉高频率,功耗能否和性能线性变化呢? 当然是否定的,实际上功耗与频率之间几乎是呈指数形式变化的。 这里我们从28x倍频分别测试到了50x倍频,使用FPU进行测试其中数据: 倍频 功耗 28 52.8 30 59 32 66 34 73.4 36 82.4 38 91.2 40 109.4 42 128.3 43 133.4 44 140.3 45 151.2 46 161.8 47 170.9 50 214 将这样的倍频-功耗绘制成曲线可以看见从大约38x开始,功耗与频率之间无法保持线性,斜率急剧抬升。 从性能的角度看,47x与43x之间性能差距约为9.3%左右(假设完全线性),但实际上从43x到47x,功耗提升了大约37w,大约为43x功耗的28%。同样四个倍频,46x到50x,性能提升了8.6%,功耗提升了53w,大约为32%。而在低频下28x到32x,功耗仅仅提升了13w。 这说明什么?高频下,提频带来的性能提升远不如功耗提升。 这也是为什么到了9th 10th总会被诟病功耗高等等的原因,实际上intel在拿高频换性能,但实际上这是吃力不讨好的。 当然热与不热还要看die area,这里就不再做更多的叙述。 总结一下 intel由于自己沿用这个后端公用设计的原因(很多代)因此导致自家在有超线程(HT/SMT)时,其效率较之AMD的分离式 充分资源堆砌的情况下较差。因此为了获得相近的性能,所以需要给出更高的频率,而高频对应的功耗并非是线性上升的,因此功耗不好看也就难免了。 公用设计有利有弊,有利的在于做各类分支预测,寻址激活的时候会有更容易的设计,也更容易调整一些。弊端自然就在于其效率相对有限一些。 在未来,为了获得更好的多核性能,提频显然并非一条很好的渠道,换新的架构带来的整体提升才是正道。 展望: skylake已经是一个步入暮年的架构了,它的几个继任者已经一一登场。 包括已经在笔记本上登过场的sunny cove以及今年八月要登场的willow cove,当然还有明年登场的golden cove。 willow cove实际上就是sunny cove的修改版,调整了缓存的设计。 笔者做过相关的SPEC2017的测试关于sunny cove。 sunny cove有些类似zen2,也是一个比较吃内存带宽的架构,当内存带宽足够的时候,其同频的整数/浮点对于SKL的提升均可达到20%左右。在未来,桌面端的14nm仍会存在最后一代,也就是11th,Rocket lake-S。 高频+新架构我相信IPC会再上一个大的台阶,性能也会有不错的提升。 而移动端,接替14nm的则是能耗比好不少,但绝对频率相对低一些的10+(+)工艺,搭配willow cove架构。 大约在今年夏日的尾巴,大家应该可以看见tiger lake-U,在明年的第一季度末时,也许我们就能看见tiger lake-H。 最近关于tiger lake-U的帖子相信大家也看见过,在这里不再叙述。 本贴到此告一段落,谢谢各位观赏。
如何在Z170/Z370上干翻牙膏的64g最大内存设置? 前言:万恶的牙膏厂Z170/Z270/Z370主板只支持64g内存,即4*16g,然而随着单条内存容量的增加,单udimm/so-dimm(non-register)内存已经到达了32g,那也就是说牙膏这个弟弟岂不是能在Z170/270上支持到128g? Naive! 牙膏弟弟从来都不会给你这个机会,别做梦了!牙膏:劳资就是不给你,64g可用略略略~ 虽然32g单条内存可以正常识别并使用,然而,然而,然而当你4*32g的时候!还是卡64g可用。 正文: 那么如何突破这个限制干翻牙膏厂呢。 首先感谢Dsanke老大 提供的相关bios,以及提供相关背景知识的Toppc Lin大佬 感谢共同测试灵顽灵教授(上图就是他的机器,Z370板子) 我们首先要搞清楚内存-CPU-PCH之间的关系。如图所示,内存连接到CPU的IMC(内存控制器),此时IMC通过BIOS中MRC(Memory Reference Code)来识别并传递信号到PCH,PCH根据ME信息判断是否通过校验,已确认最后的可用内存信息。 由于intel的ME以及MRC是两个不同Group在搞,因此进度是不统一的,其中MRC-group进度大概跟HK记者一样跑得快,据说在kabylake时期MRC已经支持128g了。而ME-group的进度就比较慢一些,像个老太太一样。 事情的起源大概是这样的,前几天dsanke老大发现了一个Z370主板的bios后面备注了128g,但是通过和更新版本bios对比发现MRC部分几乎没有修改(只调整了几个字节),me也没有调整过(Z370me)。尽管不抱着太大的希望,我们还是打算测一下。 于是在前些日子,我和灵顽发起来了py交易,我和灵顽各有32g*2的64g m-die内存,因此刚好可以突破到128g(打破64g的限制),因此我们就开始进行测试。 我们首先尝试了一下Z370的bios搭配Z370的me(当然是破解的ME啦~) 于是就有了之前的名场面我淦,牙膏鬼奸鬼奸的,居然不是ME的问题! 那就是说岂不是MRC的问题?亏我还吹了一波MRC-group! 于是乎我们寻找了128g那个bios与同版本bios的区别,最后发现,我淦。 原来在bios里面有两个字节不一样。 但TM就俩字节,这怎么看也不靠谱吧?有样学样的改了试试。 然后在我们不报希望的情况下尝试了改了俩字节的bios。我淦,这不太对啊! 128gb成功识别,至此我们判断,MRC中改动的部分字节就是64g限制的开关。而现有的Z370 me(11.x)已经可以支持128g的情况。 Z170魔改的bios实际上跟Z370使用同一个MRC,但是由于牙膏厂的PCH不同,使用370的ME常规情况下无法点亮,而ME则是判断内存是否可用的重要固件。 为此,我们测试组和dsanke老大探讨了一下可能的情况,并且针对需要确认的东西设计了试验方案。 前几天白天我找朋友拿了一下我之前的32g内存,这一下我手里的内存就变成了96g(32*2+16*2)。 经过一系列的测试,结果如图最终确认,Z170的me的确是有限制的,me版本11.7之前的bios限制了可能超过64g不开机的情况。 11.7之后的版本稍好,开机时间长一些,但能开。 此外更多的限制在MRC中,两个字节的问题。 96g达成全可用,酥糊~ 可以把内存还回去了。
1 下一页