简单翻下Xclipse 940的驱动,Vulkan基于AMDVLK,OpenCL是AMDGPU Proprietary,二者都自带LLVM所以体积巨大
虽然基于RDNA3,但与桌面不同,LLVM target是gfx4020而非gfx11xx。PAL SettingsLoader配置里又叫把它叫做mgfx2。同样的位置还出现了gfx1040(E2200),gfx4010 (死掉的E2300?),gfx4030 (E2500?)
跟桌面架构的异同:ISA是正宗的RDNA3,但无论是OpenCL还是Vulkan都强制wave64模式运行,不支持wave32所以看不到RDNA3新增的VOPD指令。
相比桌面RDNA3的FP32减半(FP32:FP16=1:2)。这个并不意外,上一代E2200也相比桌面砍半(1:4)。FP16 FMA wave64可单周期执行,FP32则需要两个周期。
L0/L1/L2分别为32K/128K/1MB (780M分别为32K/256K/2MB)。缓存结构比高通Adreno 7更复杂,L2以内带宽远强于高通,但除了L0之外延迟略高(粗估延迟周期数大致等同于桌面RDNA3)。
出GPU L2后的SLC/Mem延迟和带宽由于受到SoC节能的干扰,不具备参考和对比的价值。内存疑似只有6400频率(带宽47GB/s左右)
虽然基于RDNA3,但与桌面不同,LLVM target是gfx4020而非gfx11xx。PAL SettingsLoader配置里又叫把它叫做mgfx2。同样的位置还出现了gfx1040(E2200),gfx4010 (死掉的E2300?),gfx4030 (E2500?)
跟桌面架构的异同:ISA是正宗的RDNA3,但无论是OpenCL还是Vulkan都强制wave64模式运行,不支持wave32所以看不到RDNA3新增的VOPD指令。
相比桌面RDNA3的FP32减半(FP32:FP16=1:2)。这个并不意外,上一代E2200也相比桌面砍半(1:4)。FP16 FMA wave64可单周期执行,FP32则需要两个周期。
L0/L1/L2分别为32K/128K/1MB (780M分别为32K/256K/2MB)。缓存结构比高通Adreno 7更复杂,L2以内带宽远强于高通,但除了L0之外延迟略高(粗估延迟周期数大致等同于桌面RDNA3)。
出GPU L2后的SLC/Mem延迟和带宽由于受到SoC节能的干扰,不具备参考和对比的价值。内存疑似只有6400频率(带宽47GB/s左右)
👍2
https://pigsty.io/zh/blog/db/redis-oss/
一觉醒来发现自己变成开源社区头号公敌了(不
其实关于这个问题,还是得看做FOSS的目的是什么。比如Linus当年做Linux就比较纯粹,一个GPLv2足矣。
但是现在更多的公司开源是把“开源”本身为了作为卖点培养生态,以后卖商业产品赚大钱。本质上还是在混淆自由软件和开源软件。
一觉醒来发现自己变成开源社区头号公敌了(不
其实关于这个问题,还是得看做FOSS的目的是什么。比如Linus当年做Linux就比较纯粹,一个GPLv2足矣。
但是现在更多的公司开源是把“开源”本身为了作为卖点培养生态,以后卖商业产品赚大钱。本质上还是在混淆自由软件和开源软件。
pigsty.io
Redis不开源是“开源”之耻,更是公有云之耻
edis “不开源” 不是 Redis 的耻辱,而是“开源/OSI”的耻辱,更是公有云的耻辱。真正重要的事一直都是软件自由,而开源只是实现软件自由的一种手段。
👍12
现在的知乎首页推荐除了营销号和广告就是一堆反智内容,屏蔽都屏蔽不过来。有的内容已经屏蔽一万次了还是照推不误。不仅如此,UI还越来越难用,想只看自己关注的人而不是什么见鬼的推荐/精选需要的操作越来越多
要不还是退了知乎不玩了吧……只可惜确实关注了那么几个内容比较专业的想偶尔看看,唉🙃
要不还是退了知乎不玩了吧……只可惜确实关注了那么几个内容比较专业的想偶尔看看,唉🙃
😁11😢3🤡2
赶在Zen5/ARL发布之前简单测试最后一代6-wide x86大核性能特性
有趣的是虽然两家在Zen3-4/GLC-RWC这几代IPC接近,性能瓶颈却大相径庭。粗略观察,Intel分支预测失效代价巨大;AMD处理大code footprint的能力不太行而且后端mem bound严重(哪怕是缓存内)
两家PMC有细微区别,数值对比只能算是图一乐
有趣的是虽然两家在Zen3-4/GLC-RWC这几代IPC接近,性能瓶颈却大相径庭。粗略观察,Intel分支预测失效代价巨大;AMD处理大code footprint的能力不太行而且后端mem bound严重(哪怕是缓存内)
两家PMC有细微区别,数值对比只能算是图一乐
👍16
https://www.tomshardware.com/pc-components/cpus/nvidia-blames-intel-for-gpu-vram-errors-tells-geforce-gamers-experiencing-13th-or-14th-gen-cpu-instability-to-contact-intel-support
从当年只要不是脸黑就能人均-0.1V offset随便用,到今天旗舰CPU+旗舰主板默频出厂都能不稳定还得让GPU厂商帮忙背锅处理客诉。Intel也是越来越落魄了。
从当年只要不是脸黑就能人均-0.1V offset随便用,到今天旗舰CPU+旗舰主板默频出厂都能不稳定还得让GPU厂商帮忙背锅处理客诉。Intel也是越来越落魄了。
Tom's Hardware
Nvidia blames Intel for GPU VRAM errors, tells GeForce gamers experiencing 13th or 14th Gen CPU instability to contact Intel support
Even Nvidia is aware of Intel's instability issues with Raptor Lake
😁9
解决了一个好多年前的疑惑
AMD Zen 2的软件优化手册上把dispatch对象称为micro-ops (uop),而Zen 3手册上则是称之为macro-ops (mop)。以前我一直以为这两个架构在这方面没有太大的差异,单纯是文档由不同团队制作导致(AMD的文档质量懂的都懂),但最近经过实际测试发现两个文档的描述都是正确的。
从架构简介上看,Zen 2/3都是6-wide架构,但Zen 2是发射6个uops到后端,Zen 3则是发射6个mops。虽然都是叫6-wide但是背后的含金量完全不同,mop与x86指令基本一一对应(特殊情况下有一对多的fastpath double/ucode和2对1的fused mop),uop则是跟处理器后端具体执行单元的功能一一对应。
那么我们写一个简单的测试来探一探这个区别:测试5条指令的IPC,其中4条采用add指令;由于两个架构都只有4个scalar ALU,这样程序的IPC被限死在5。然后我们在不超过4*add+2*LD+1*ST的前提下,通过调节mem operand占比和剩下的一条指令来生成不同uop数量的程序,观察处理器单周期uop的吞吐。最终观察到Zen 3/4处理器可以单周期发射7个uop(甚至更多,特殊的指令组合可以让x86 ipc达到8),而Zen 2则是被严格限定在了6个uop,超过6个uop之后观察到明显的吞吐下降。
所以其实Zen 2的后端是一个更接近RISC的处理器,指令在流水线非常早期就被拆解成具体执行单元运行的uop进入dispatch/scheduler。Zen 3/4则是完全另一种思路下的产物(更接近Intel?),就连scheduler里存的都还是经过rename后的比x86更CISC的mop指令,scheduler向执行单元发送指令时才会变成具体的uop。如果说Zen 3是6-wide处理器,那么Zen 2实际上更接近4到5-wide;如果说Zen 2是6-wide处理器,那么Zen 3/4则是接近7到8-wide。
AMD Zen 2的软件优化手册上把dispatch对象称为micro-ops (uop),而Zen 3手册上则是称之为macro-ops (mop)。以前我一直以为这两个架构在这方面没有太大的差异,单纯是文档由不同团队制作导致(AMD的文档质量懂的都懂),但最近经过实际测试发现两个文档的描述都是正确的。
从架构简介上看,Zen 2/3都是6-wide架构,但Zen 2是发射6个uops到后端,Zen 3则是发射6个mops。虽然都是叫6-wide但是背后的含金量完全不同,mop与x86指令基本一一对应(特殊情况下有一对多的fastpath double/ucode和2对1的fused mop),uop则是跟处理器后端具体执行单元的功能一一对应。
那么我们写一个简单的测试来探一探这个区别:测试5条指令的IPC,其中4条采用add指令;由于两个架构都只有4个scalar ALU,这样程序的IPC被限死在5。然后我们在不超过4*add+2*LD+1*ST的前提下,通过调节mem operand占比和剩下的一条指令来生成不同uop数量的程序,观察处理器单周期uop的吞吐。最终观察到Zen 3/4处理器可以单周期发射7个uop(甚至更多,特殊的指令组合可以让x86 ipc达到8),而Zen 2则是被严格限定在了6个uop,超过6个uop之后观察到明显的吞吐下降。
所以其实Zen 2的后端是一个更接近RISC的处理器,指令在流水线非常早期就被拆解成具体执行单元运行的uop进入dispatch/scheduler。Zen 3/4则是完全另一种思路下的产物(更接近Intel?),就连scheduler里存的都还是经过rename后的比x86更CISC的mop指令,scheduler向执行单元发送指令时才会变成具体的uop。如果说Zen 3是6-wide处理器,那么Zen 2实际上更接近4到5-wide;如果说Zen 2是6-wide处理器,那么Zen 3/4则是接近7到8-wide。
👍20
再来一个小彩蛋,由于fused macro ops的存在,x86处理器的x86指令IPC可以超过实际rename的宽度。例如下面这一组指令在Zen 3/4上运行可以跑出接近8的IPC,虽然x86 ISA有memory operand的情况下还这么load纯属凑数,并没有什么意义。。
👍12