龙芯近期发布了分别面向高性能和低功耗应用场景的多款CPU,其中3C6000系列服务器CPU与市场主流的Intel Xeon Scalable 3代可以核对核比拼性能,面向移动计算设备的2K3000/3B6000M则可与Intel Core i3-N系列产品对标。
虽然龙芯CPU可与Intel两三年前的产品对标,但说龙芯与Intel差距两三年是不精确的。因为Intel可能连续几年缓步慢走,也可能突然爆发。不过可以确定的是:Intel Xeon Scalable 3产品比性能相同的龙芯3C6000系列市场价格至少贵一半,龙芯2K3000和3B6000M也能对Intel同类产品挥一挥拳。
龙芯CPU还在使用境内12nm工艺,从实际的性能差距来看,就算升级到7nm工艺,也无法挑战Intel高端产品。那么,在无法使用境外先进工艺的情况下,龙芯CPU是否已被锁死性能极限?龙芯现在的光芒是否已是落日余晖?如果境内工艺走到尽头,龙芯又该何去何从?
其实龙芯已经告诉了我们答案——龙芯有能力以芯片设计弥补工艺代差,依托境内工艺达到世界一流水平。
现代CPU的设计先进性以及性能先进性主要体现在四个方面:
在这四个方面,龙芯都完成了技术积累或取得了重大突破,不但为冲击世界一流奠定了基础,也进一步解除了“卡脖子”威胁。龙芯在这些方面的技术代表分别是:LA864处理器核、龙链高速互联总线、DDR内存以及PCIe控制器、LG200 GPGPU。
根据龙芯中科公开的数据,正在产品化的龙芯LA864处理器核每GHz的性能是Intel 13、14代酷睿Raptor Lake核心的1.4倍以上。那么只要CPU频率能达到Intel处理器的70%,两者的单核性能就基本一致。
处理器核是就是CPU核心,它的运行速度取决于单周期性能和频率。就像奔腾4和酷睿13代,即使频率相同,但因单周期性能不同,单核性能就有8倍以上的差距。而龙芯3A6000虽然单周期性能比酷睿13代高10%以上,但不足以抵消更大的频率差距,基本无助于缩小单核性能的距离。
设计能力决定了处理器核的单周期性能,以及在特定工艺下的最高频率。在设计能力和工艺一定的情况下,单周期性能和运行频率成反比。先进工艺能缩小线路延迟,并且降低功耗,因此即使不改动CPU逻辑结构,只要适配更先进的工艺,就必然能提升运行频率。
不过从CPU的进化史可以看到,单周期性能高的CPU具有更高效率。因此Intel在奔腾4之后就改变了进化方向;Apple则更加极端,把处理器核的单周期性能做到了世界第一,而CPU频率则严重依赖先进工艺。
龙芯的设计能力是一流水准,以12nm工艺就达到了Intel同等工艺产品的性能水平,也超过了使用更先进工艺的国内同行。然而境内的集成电路生产工艺将长期落后于世界最先进水平,国产CPU也就不太可能通过频率获得性能竞争的胜利。只有把处理器核单周期性能放在设计首位,才能抵消工艺落后的不利影响,并且能随着工艺进步获得更大的性能收益。
龙芯3A6000和3C6000系列都基于龙芯LA664处理器核,更先进的LA864将用于下一代产品。在Linux下以GCC15编译SPEC CPU 2006作为性能测试工具,3A6000在2.5GHz时的单核(定点)得分为48,与Intel 10代和11代酷睿CPU水平相当。Intel 13代酷睿i3-13100F单核(定点)得分为68,3A6000要比它低30%。但如果把13代酷睿的频率限制为2.5GHz,得分就只有42,说明在相同的频率下,龙芯LA664处理器核比Intel Raptor Lake核心的性能高14%。
对数字敏感的朋友可能会马上提出疑问:如果以2.5GHz时的成绩计算,i3-13100F在68分的时候频率才4.05GHz,但它的单核睿频不是4.5GHz吗?
实际上在68分的整个测试过程中,i3-13100F频率是在4.3GHz到4.5GHz之间跳动。之所以与计算的结果不符,是因为内存带宽不会随着CPU频率提高而增加,因此CPU在频率更高的时候,读写内存所消耗的时间在整个运行时间中会占更大的比例。现象就是同一颗CPU在不同频率运行时,计算出的单周期或每GHz性能是不一致的,频率越高,则单周期性能越低。
把测试工具换成SPEC CPU 2017也能得到相似的结果。笔者实测,3A6000在2.5GHz的单核(定点)得分为5.2,Intel i3-13100F得分7.4,限制频率为2.5GHz时得分4.7。取这两种测试结果的最小值,可以认为在相同的频率下,龙芯LA664的综合性能要比Intel Raptor Lake处理器核高11%以上。
但是,单周期性能仅仅超过11%,想要追上13、14代酷睿的性能,频率就只能落后10%。除非使用比Intel更加先进的工艺,否则无法完成跨越。然而龙芯早已被美国加入了制裁清单,制裁的理由是用于军事技术,因此境外代工厂不可能接受龙芯的生产业务。何况龙芯为了保障生产环节的安全可控,并满足特殊用途的器件规范,也只能采用可控的境内工艺。
只有进一步提高单周期性能,继续降低必须的频率上限和工艺上限,才能实现追上Intel的目标。龙芯LA864接过了LA664无法承担的重任,在相同频率下的性能提高了30%以上,也就是13、14代酷睿Raptor Lake处理器核的1.4倍以上,与Apple M4同级。频率只需达到Intel产品的70%,就能获得相同的性能。
也就是说,只要基于LA864处理器核的CPU频率达到3.5GHz,性能就等效于5.0GHz的13、14代酷睿CPU。但由于境内工艺可能会长期卡在7nm节点,龙芯为了留下更大的时间余量,大概要把12nm工艺的潜力榨干才会升级工艺,因此基于LA864处理器核的第一款产品仍然采用12nm工艺。因为LA864的同频率性能与Apple M4同级,那么就不太可能用12nm工艺达到3.5GHz的运行频率。
按照一般的规律,单周期性能提高,会导致核心面积以相同的幅度增加,运行频率也会相应降低。因此包括Intel在内的国内外CPU企业,每次大幅度改进处理器核的时候,必然伴随着工艺升级。要不然非但频率不升反降,而且增加了芯片面积,致使提高的成本和性能不成正比。
如龙芯这般穷幽极微,也仅略微逆反了“一般规律”。从LA664升级到LA864,相同工艺下的核心面积仅增加了3%,频率也提高了10%。若继续使用12nm工艺,单核性能可与使用Intel 7nm工艺的酷睿13代i3或者12代i5持平,但与Intel高端产品仍然存在差距。
龙芯正在研发中的3B6600是基于LA864处理器核的第一款产品,集成了8个LA864处理器核,以及4个专用小核。因为4个小核的用途尚未公开,所以在估算性能时只能忽略它们。可以确定的是,龙芯3B6600的频率为2.8GHz左右,8个LA864核心并行的性能与13代酷睿i5-13400桌面CPU不相上下。
i5-13400集成了6个性能核以及4个能效核,虽然最高单核性能比3B6600略高,但在多核并行时6个性能核的频率会降至4.1GHz或者更低。因而8核16线程的3B6600与10核16线程的酷睿i3-13400性能相近。
再过一两年,随着境内7nm生产工艺日渐成熟,耗材也进一步国产化,采用7nm工艺的龙芯3B7000才能问世。通过升级工艺,频率在3B6600的基础上提高20%至30%就相对容易。只要达到3.5GHz左右,单核性能就等效于5.0GHz的13、14代酷睿。要是频率能达到4.0GHz,那更是意外之喜。
龙芯不会停止对处理器核的持续演进,同时会深入挖掘境内工艺的潜力。并且龙芯在最新产品中也集成了AI计算单元,龙芯GPU技术也已渐入佳境。两三年之后,龙芯CPU可能在各个方面都能与Intel同类产品旗鼓相当,在市场上交相辉映。
多核CPU一般是把多个核心划分为一个簇,一颗CPU由一到多个簇构成。也可能把多个晶片封装到一颗CPU中,以及在多颗CPU之间实现互联。多颗CPU互联的时候,主板上的内存插槽和PCIe接口也会分组,每一组对应一颗CPU。内存和设备无法同时连接所有CPU,因此存在频繁的跨CPU通信。
多核、多片、多路、多设备的同层互联和层级互联关系,使数据传输网络结构变得复杂起来。但单CPU内部的核间通信是一切的基础,如果内部的核间通信都严重延迟,那么其它的一却努力都犹如朽木雕花。
Core-to-core latency是一款测试CPU核间通信延迟的开源软件,它通过检测任何一个核心与其它所有核心之间的延迟,得到一个数据表。可以只检测物理核心,也可以包括逻辑核心。用Core-to-core latency测试龙芯3C6000/S的16核32线程,就得到了下面的32×32的核间延迟数据表:
通常,CPU核心数量越多,核间延迟就越大。从图表中能看出,16核32线程的3C6000/S核间延迟数据非常优秀,最大核间延迟也仅仅32.3ns,中位数为25.6ns。作为对比,下面给出Intel i9-13900K和AMD Ryzen9 9950X的测试结果:
Intel i9-13900K集成了8个性能核、16个能效核,总共24核32线程。从结果来看,3C6000/S的核间延迟更低。
AMD Ryzen9 9950X和3C6000/S一样也是16核32线程,可以看到AMD Ryzen9 9950X跨簇通信的延迟较大。
无论CPU实际性能如何,至少在单CPU内部核间互联技术方面,龙芯3C6000已经打下了超越Intel和AMD的底子。
不是所有CPU的核间延迟都小于100ns,一些陈旧的CPU核间延迟能达数百ns,上面的测试结果是当前最高层次的代表。在近两三年的新款CPU中,也有一些国产服务器CPU的核间延迟高达数百ns,甚至某款8核CPU的核间延迟就已超过100ns。
CPU核间通信,特别是跨簇和跨片通信的带宽和延迟,严重影响多核CPU并行效率。例如多个核心维护缓存一致性、跨片和跨簇访问内存、跨片和跨簇的设备通信、程序线程在多个核心间切换、多个线程间的同步和互斥操作、维护I/O访问队列等,都完全依赖CPU核间及片间的互联总线。
核间、簇间、片间、多路,每个层次的通信效率都不一样,不同CPU间的核间通信更是必须跨超多个层次。CPU核心访问连接到另一颗CPU上的内存和设备时,路径更是曲折蜿蜒。
为了提高复杂互联结构的访问带宽,并且降低通信延迟,龙芯设计了“龙链(Loongson Coherent Link)”。龙链不仅能用于CPU的簇间互联、单CPU多晶片间互联、多路CPU互联,还能用于GPU及其它芯片以及设备之间的互联。
龙链兼容PCIe电气标准,可通过增加PCIe协议转换功能兼容PCIe接口的板卡设备。也就是说,如果将来中美科技裂痕加深,禁止中国CPU企业使用PCIe总线,龙芯就可以用龙链取而代之。
下图左侧的表格中对比了龙链和PCIe总线的通信延迟,右侧表格对比了龙链与Intel的UPI总线和AMD的IFIS总线的通信带宽和带宽利用率。
PCIe Tx(发送延迟)为48.4ns,龙链为13.6ns,延迟降低了71.9%。PCIe Rx(接收延迟)为84.7ns,龙链为18.0ns,延迟降低了78.7%。
在CPU互联方面,双路Xeon 6338使用了三个UPI通道,双路EPYC 7543使用了四个IFIS通道,而双路龙芯3C6000的测试只使用了一个龙链通道。
单通道理论带宽的计算方式是:“速率×位数×频率÷8”。龙链的速率为16GT/s,位宽16位,理论带宽是64GB/s。三通道UPI的理论带宽是168GB/s,单通道则为56GB/s。四通道IFIS的理论带宽是233.6GB/s,单路则为58.4GB/s。
龙链不但理论带宽具有明显优势,并且因为对通信协议的优化和数据压缩技术,使带宽的有效利用率也高于UPI和IFIS。非压缩模式下的带宽利用率介于UPI和IFIS之间,但龙链开启压缩模式后,带宽利用率分别为UPI和IFIS的135%和198%。只需要两个龙链通道,实际的传输速率就能超过三通道UPI和四通道IFIS。
无论延迟时间还是实际带宽,龙链既比用于设备连接的PCIe优秀,也比用于CPU互联的Intel的UPI和AMD的IFIS优秀。
单核性能是多核性能的基础,但CPU的多核性能并不等于多个核心的性能叠加。就像一个人建一幢小楼需要一年,但365个人一起修建也不可能把时间缩短到一天。有很多因素会影响多核并行效率,其中与硬件相关的除了CPU核间通信速度之外,还有设备I/O(输入输出)性能。
硬盘、内存、网络等如果速度慢,当多核心多线程争用资源时,就会等待较长时间,浪费大量CPU资源。然而造成I/O性能低下的并不一定是硬盘、内存、网络本身,还有可能是CPU内部或主板上的接口控制器。
就像很多硬盘的实际速度只有接口带宽的几分之一那样,很多CPU或主板上集成的接口控制器的真实速度也只有理论速度的几分之一。
例如某款x86架构的国产CPU 宣称内存控制器支持DDR5(4800)双通道,理论带宽为76.8GB/s。但实测速率只有理论带宽的15%至30%,其中读内存的速度仅11.9GB/s。虽然这种情况也许以后会改善,但厂商应该不会召回已售出的产品。
龙芯3A6000、3C6000等CPU则集成了龙芯自主研发的DDR4控制器,最高支持到DDR4(3200)内存。根据CPU型号不同,龙芯CPU的内存通道数分为1、2、4、8几种。
双通道DDR4(3200)理论带宽为51.2GB/s,龙芯3A6000实测大于42GB/s,超过理论带宽的82%,接近于13代酷睿的访存效率。龙芯3C6000/S(16核)的内存通道数为4个,3C6000/D(32核)和3D6000/Q(64核)的内存通道数都为8个,能有效缓解因内存带宽不足导致的多核并行效率下降。
龙芯3C6000与上一代3C5000相比,除了性能更高、内存带宽更大、多路互联改用自主研发的龙链技术之外,还有一处重大改进是PCIe接口不经桥片而是CPU直出。
对于现代CPU来说,PCIe接口从CPU直出本应该是常规技术,但龙芯不知出于何种考虑,以往一直由桥片导出PCIe接口。但PCIe接口从3.0升级到4.0之后,带宽成倍增长,桥片已经不堪重负。因此从3C6000开始,龙芯把自主研发的PCIe4.0控制器移入了CPU内部。
3C6000/S集成了4组PCIe×16接口,共64 Lane;3C6000/D和3D6000/Q集成了8组PCIe×16接口,共128 Lane。因为集成的PCIe通道数量增加,并且不需经过桥片,所以3C6000的I/O速度相比3C5000得到了数量级的增长。
根据中国电信“天翼云”的测试数据,在多硬盘、多网络饱合式访问的各项性能测试中,3C6000/S的I/O性能是3C5000的4.5到7.2倍。之所以没有达到数量级的增长,是因为这不是单纯地测试I/O性能,而是真实应用环境下的体现。
上图中除了I/O性能对比之外,还有CPU性能对比。以SPEC CPU 2017进行测试,3C5000*2总共32个核心,多核定点成绩为65.5分,多核浮点成绩为62.5分。3C6000/D*2总共64个核心,多核定点成绩为284分,多核浮点成绩216分。虽然3C6000/D的核心数量只比3C5000增加了一倍,但性能却达到了四倍左右。
另外,如果不是饱合式访问的测试,而只是两三块硬盘,两三个网口,再加一块显卡的常规情况,3C5000和3C6000的I/O性能对比就不会这么惨烈。龙芯下一代CPU中可能集成自主研发的PCIe5控制器,进一步提升I/O性能。
其实可以看到,龙芯的内存控制器和PCIe控制器的版本都落后于国内外同行。龙芯的CPU设计能力一流,但接口升级反而滞后,有两个主要原因:一是因为国产硬件对新版本的接口没有迫切需求;二是因为龙芯的各种接口控制器都完全是自主设计,而不是从细分领域的专业公司购买。
并且龙芯向来抱诚守真,各种I/O控制器至少要达到同类产品的主流效率,才会用于实际产品。像那种DDR5实际性能等于DDR3的内存控制器,是不可能活着走出龙芯实验室的。
专门进行图形图像处理的芯片叫GPU,当GPU拥有通用计算的能力之后就是GPGPU。现在市面上所有的主流显卡都能处理通用计算任务,它们都是GPGPU。现代GPGPU的发展方向是强化流处理器的通用运算能力,并支持多种数据精度,同时增加视频编解码、AI、光线追踪等专用的加速单元。
龙芯的第一代GPU是统一渲染架构,只有图形渲染的功能,第二代GPU就进化成了现代GPGPU的形态。
龙芯GPU于2016年立项,从零开始自主研发。第一代产品于2021年发布,之后迭代了两个小版本,核心代号分别为LG100、LG110、LG120。它们集成在龙芯7A2000桥片和2K2000嵌入式CPU中,对图形API都只支持到OpenGL2.1,性能也乏善可陈。但是,在研发它们的过程中,龙芯对GPU技术实现了融会贯通,趟出完全自主的技术路线,真正地掌握核心技术。
只有掌握了自主的核心技术,才能不依赖外部技术授权。只有拥有了完全的研发能力,才能实现快速的技术演进,产品迭代举重若轻。龙芯的GPU也像CPU一样,体现出了自主研发的特点:先慢后快,后发制人。
龙芯第二代GPU的核心代号是LG200,完成了从图形计算向通用计算的转变。在保留图形渲染管线的同时,增加了通用计算的能力,并能支持4.0版的OpenGL和1.1版的Vulkan等图形API,以及通用计算库OpenCL 3.0。通过计算资源通用化的思路,把图形处理转变为通用计算任务的形式,还可兼容其它类型的图形API和硬件本身不支持的特性。虽然基于LG200的产品还处于初级阶段,但技术层次已经达到了主流水平。
龙芯将于明年(2026)年发布基于LG200的独立显卡9A1000,这款显卡的图像处理及通用运算性能都与AMD RX550对标。除了图形处理和通用计算,龙芯LG200中还集成了AI运算能力。9A1000的AI算力为32至40TOPS(万亿次操作每秒),主要满足桌面及终端应用AI推理的需求。AI应用方向相同的Apple M4 的AI算力是38TOPS,华为x90大约是30至40TOPS。
虽然9A1000只能算是入门级的GPU,不过由于龙芯已经迈过了现代GPU技术的门槛,就能简单地通过增大GPU规模,用龙链技术连接多颗GPU等方式迅速提升显卡产品的性能。
2027年将推出9A2000,基于功能更加完善并且性能升级的LG300。LG300单晶片性能为LG200的4倍,通过龙链连接两颗GPU晶片就能达到8倍性能,可以对标NVIDIA RTX 3060或4060。再下一代9A3000就要使用7nm或更先进的工艺了,性能预计为9A2000的3到5倍,那么就跨入了高端显卡的行列。
所以说自主研发的特点就是先慢后快,后发制人。
下面是龙芯LG200的GPGPU架构图,其中的GPC(Graphics Process Cluster,图形处理簇)是GPU中的基础计算单元集群。NVIDIA称之为 SM(Streaming Multiprocessor,流式多处理器),AMD称之为SE(Shader Engine),都是基本一致的概念。
每颗GPGPU中可以包括多个GPC,例如Nvidia A100中有108个SM。每个GPC中包含多个SP(Stream Processor,流处理器),每个SP中又包括多个VU(Vector Unit,向量单元)。最后,龙芯的每个VU中包括16个单精度浮点运算单元、1个双精度浮点运算单元、1个张量运算单元。
VU是构成龙芯LG200算力的最基础单元,它每个时钟周期可以计算32次单精度浮点、2次双精度浮点、对BF16半精度浮点格式可进行1024次基础运算或512次乘加运算。通过这些数据可以得出LG200的算力计算方式。以单精度浮点运算为例:算力=(x * GPC) * (y * SP) * (z * VU) * 32 * 频率。
如果通过增减各级单元的数量,使LG200与Nvidia 某款GPU每个时钟周期的计算能力相同,那么龙芯LG200使用的晶体管数量也与Nvidia GPU相当。也就是说如果LG200的晶体管数量和运行频率与Nvidia的高端GPU差不多,那么它们的通用运算性能也就差不多,算力密度是同等水平。
更新时间:2025-07-08
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-=date("Y",time());?> All Rights Reserved. Powered By 71396.com 闽ICP备11008920号
闽公网安备35020302034903号