找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

苹果m1,a14都16个指令发射端了,intel还不慌吗?!

苹果m1,a14都16个指令发射端了,intel还不慌吗?!-1.jpg

苹果手机都16个指令发射端也就是说能同时执行16条指令,amd才14个,intel才8个!
苹果m1,a14都16个指令发射端了,intel还不慌吗?!-2.jpg
intel还不慌吗?!
回复

使用道具 举报

大神点评(4)

AJAXPHOTOGRAPHY 2020-11-26 09:08:37 显示全部楼层
x86最多一年就结束了,慌啥,明年后半年之后ARM全面统治芯片市场
回复 支持 反对

使用道具 举报

694207667 2020-11-26 09:09:25 显示全部楼层
去看power9 power10
回复 支持 反对

使用道具 举报

a16244693 2020-11-26 09:10:04 显示全部楼层
急什么,ARM取代x86已经是板上钉钉的事情
回复 支持 反对

使用道具 举报

GerardKl 2020-11-26 09:10:10 显示全部楼层
首先,更大的核心想跑高频更难,这一点苹果是通过加入AMX这个浪费晶体管的东西来缓解的,但3.2G下功耗就已经不算好看了。一颗芯片中同时工作的晶体管不多才能保证功耗低,如果全部同时工作,功耗破万瓦是很正常的,这也是暗硅概念的来源。
当然这些东西和arm与X86之间的差异没多少关系,什么指令集都会遇到这种问题。
对于X86来讲,真正的问题不在于你说的这些发射、issue、dispatch之类的,真正的问题在于decode。CISC做decode与RISC差别最大的一点在于,RISC指令定长,换句话说指令放在缓存里只要对齐就可以按64bit长度进行截取,要找第几条指令的位置一算就知道。可CISC是变长指令,想知道第10条指令在哪,你得先知道前面9条指令多长。而且指令变长意味着很可能会出现一条指令被截成两半的情况,毕竟数据块大小是固定的,不管按照4K也好1M也好,都有可能出现这种情况,所以CISC的decode部分处理起来相当麻烦。
当然,这些问题都有办法解决,前者可以通过循环累加来解决,后者可以通过多读一个内存分页来解决。但decode少了还好说,多了怎么办?如果需要同时取8条指令,这些指令分处不同位置,难度会比RISC高不少。
所以你的关注点其实有点问题,你说的那些刚好都不是问题,想要指令?μop cache加宽,dispatch加宽,port上能拆的就拆,FMA也不用了,512bit拆成256bit甚至128bit,乘法除法全部分离,你就说你想要多少吧,反正30不敢说,20个起码是能做到的。
但是,这样做有什么意义?用Intel VTune跑R20,后端port也就是你说的这些发射,每个port平均占用率30%都不到,最高也就40%左右,提升最大的不是port数量而是EU数量。skylake比ZEN2分低那么多的主要原因是Intel用了256bit FMA运算器,天生就比ZEN2的乘加分离设计少了一半EU数量,这换来的是FMA指令的效率提升。
你看CPUZ的AVX2测试,ZEN3在弥补了ZEN2的缺陷之后同频性能就追上来了,但ZEN3的AVX2峰值性能理论上比skylake高,这里却没有体现的原因是CPUZ的这个AVX2测试主要应该是在测试FMA指令集。而ZEN3应该是2个256bit FMA运算器加2个256bit ADD ALU,单纯的ADD ALU跑不了FMA指令,而且他们还要占用2个port,这2个port会与逻辑指令共用,所以只有针对这种设计进行优化的软件才能测试出提升,AIDA64貌似都看不出提升。
也就是说这么一通操作下来,只能在少数应用到这类优化的软件中才能有较大收益,其实与AVX512面临的问题并无二致,那就是需要优化。
回复 支持 反对

使用道具 举报

说点什么

您需要登录后才可以回帖 登录 | 立即注册
HOT • 推荐