片,是世界一大难题,很多人难以想象电子硬件中最小巧的的元件反而拥有最高技术含量,其中蕴含的逻辑就相当于以纳米为单位修建一座城市。
芯片器件中最著名的产物是CPU,国内CPU行业经历步履维艰的发展,关注度越来越高,在政务、通讯、计算等领域经常可以看到国产CPU的身影。但通用CPU领域还是国外CPU占据主导。桌面端有英特尔和AMD,移动端有ARM和高通等企业,国产CPU想要突出重围并不容易。
龙芯 3A5000产品综述|图片(1)|参数|报价|点评(1)
这些年国内CPU企业在不断发展的同时也在寻找破局之法,国内CPU厂商最常见的发展模式是购买指令集架构授权,ARM、MIPS甚至X86均有国内CPU企业获得了授权。购买指令集架构授权无疑是一种高效的手段,相当于在别人准备好地基的土地上建房子,产品不能称为完全国产自主。不过授权终究是授权,没有相应产权的保护,依旧可能会受到制约。
01 LoongArch介绍
在2021年4月,龙芯中科率先在国产自主化跨出一步,宣布推出完全自主指令集架构:LoongArch,顶层架构到指令功能和ABI标准完全自主。这表明龙芯中科未来的CPU不再使用MIPS指令集架构,从今年推出的3A5000开始都将使用LoongArch架构,这无疑是芯片国产化的重要里程。
我们参照官方的资料,做了一下龙芯3A5000的微架构图,可以粗略看到3A5000大体分为4个区块,每个区块包含一个核心和一个缓存。
根据官方的资料,LoongArch依旧属于RISC阵营,拥有RISC的特点,比如32位定长指令,32个通用寄存器,32个浮点/向量寄存器。但LoongArch也进行了改进,取消了RISC的指令延迟槽,直接跳转指令的目标地址相对PC计算,增加相对转移偏移量。
LoongArch 拥有近2000条指令,并充分考虑兼容需求,相同的源代码编译成LoongArch比编译成龙芯此前支持的MIPS时动态执行指令数减少10%-20%,也就是运行效率更高,性能也会提升。
LoongArch还深入研究了MIPS、X86、ARM的特性,能对这些主流架构进行二进制翻译,对MIPS可以实现100%的翻译,能实现跨平台兼容,龙芯目标是在2025年的时候消除指令集之间的壁垒。
2021年7月,龙芯中科发布了两款基于LoongArch指令集架构的处理器:3A5000和3C5000L。3A5000处理器是面向桌面端的产品,3C5000L则是服务器处理器。 3A5000主频为2.3Ghz-2.5GHz,拥有4颗核心,每个处理器核心采用 64 位 LA464 自主微结构,支持DDR4-3200MHz内存,支持Hyper Transport 3.0控制器。3C5000L则由4个3A5000封装,拥有16个核心。
3A5000处理器内置了安全模块,可以对Meltdown(熔断)和Spectre(幽灵)两个经典CPU漏洞有效免疫,与上一代3A4000一样支持内置加解密算法和安全可信模块,也是目前唯一通过国内商密二级型号鉴定测试的CPU内置模块。
02 龙芯3A5000整机介绍
龙芯3A5000通用处理器主要应用在消费级桌面市场,未来会推出包括台式机、笔记本、一体机等产品,这次我们拿到了搭载3A5000处理器的台式整机产品,龙芯3A5000整机在外观上采用经典的商用办公主机风格,以黑色为主格调,前面板提供一个常规开关按钮,两个USB 2.0接口,两个音频输入/输出接口。
龙芯3A5000整机
主板I/O处,提供一个VGA视频口,一个串行COM接口,4个USB 2.0接口,2个USB 3.2 Gen1 5Gbps接口,一个有线网口。
主板I/O
其他配件上,这台主机使用了256GB的SATA固态,双8GB DDR4 3200MHz内存。显卡为AMD Radeon HD 8750M,显卡I/O提供一个VGA接口,一个HDMI接口。
紫光国芯(UnilC)2*8GB DDR4 3200MHz内存
AMD Radeon HD 8750M
卸下散热器,可以看到这次的主角:龙芯3A5000,龙芯3A5000的芯片代号为“KMYC70”,这样命名是纪念抗美援朝70年,而服务器3C5000L芯片代号则为“CPC100”以庆祝建党100周年。
这台主机中,龙芯3A5000直接焊接封装在主板上,不支持DIY更换。
编译器方面,龙芯3A5000配套的三大编译器GCC、LLVM、GoLang和三大虚拟机Java、JavaScript、.NET均已完成开发,龙芯自家基础版操作系统Loongnix和面向工控领域的LoongOS已经发布,不过我们手里这台龙芯3A5000整机使用的为统信UOS系统,因为优化等问题,会与Loongnix及其他系统的龙芯3A5000主机性能有差异。
主机配置
统信UOS系统由多家国内操作系统核心企业自愿发起并研发完善的安全、易用、稳定的操作系统产品,也是未来芯片国产化的生态关键一步。其官网目前已经开放下载,有兴趣的用户可以自行去官网下载尝试。那么除了统信UOS操作系统之外,实际上国内自主开发的操作系统麒麟Kylin龙芯版也是不错的选择。
03 实战测试:
此次参与测试的处理器除了龙芯3A5000之外,还增加了intel i5 9500 六核 14nm处理器、国产ARM V8 四核 7nm处理器和国产ARM V8 八核 14nm处理器作为对比参考,整机主要的硬件参数保持一致。
其中, intel i5 9500 六核 14nm架构处理器主频3.0-4.4Ghz,热设计功耗65W。国产ARM V8 四核 7nm处理器主频可达2.6GHz,单芯片可支持64核。另一款国产ARM V8 八核 14nm处理器,兼容64位ARMv8指令集,主频2.3GHz。
需要提前说明的是,参与测试的四款处理器核心数量并非一致,因此在多核测试项目中我们取处理器的最多核数成绩。
基准测试
UnixBench性能测试:
下面我们正式开始测试,首先依然选择大众熟悉的UnixBench测试工具。这款软件是一个类 Unix(Unix,BSD,Linux)系统下的性能测试工具,被广泛用于测试 Linux 系统主机的性能。可以测试系统调用、读写、进程、图形化测试等成绩,也是一个全方面考验整机的软件。
UnixBench单核、多核性能测试
从测试结果可以看到,龙芯3A5000和国产ARM V8 四核 7nm这款处理器的性能表现都很出色,龙芯3A5000单核性能达到了1685分,相比上一代龙芯3A4000提升非常明显,单核性能已逼近了intel i5 9500 六核 14nm这款处理器的水平。这一点也正符合龙芯先通过设计优化提高单核性能,再利用先进工艺增加核数的升级策略。
多核性能对比中,龙芯3A5000达到4314分与国产ARM V8 四核 7nm的4387分基本持平,但如果与intel i5 9500 六核 14nm对比还是有不小差距。不过,4核龙芯3A5000反而比国产ARM V8 八核 14nm这款处理器的性能高出了600多分。
SPEC 2006测试:
接下来我们进行SPEC 2006对比测试,SPEC 2006是一个大型的CPU性能测试项目,重点测试系统的处理器,内存子系统和编译器。能够测试CPU最基础的定点性能和浮点性能。同样需要提前说明的是,测试处理器由于核心数量并不对等,因此我们在多核测试环节选择最多核数的成绩。
SPEC CPU2006 BASE性能测试
本次我们将SPEC 2006测试分为单核与多核测试。龙芯3A5000单核定点为25.1分,单核浮点为26分。相比intel i5 9500 六核 14nm这款处理器的确有不小的差距,但单核定点与国产ARM V8 四核 7nm这款处理器不相上下,单核浮点略优于国产ARM V8 四核 7nm这款处理器。龙芯3A5000对比国产ARM V8 八核 14nm处理器的单核定点则高出近10分,单核浮点则高出近一倍。
多线程测试中,intel i5 9500 六核 14nm处理器依然表现最佳,而龙芯3A5000的多核定点与多核浮点均高于国产ARM V8 四核 7nm处理器,由于国产ARM V8 八核 14nm处理器核心数量上具有一定的优势,因此定点和浮点的分数要高于龙芯3A5000和国产ARM V8 四核 7nm处理器。
Stream:
Stream是业界主流的内存带宽测试程序,测试行为相对简单可控。 该程序对CPU的计算能力要求很小,对CPU内存带宽压力很大。 随着处理器核心数量的增大,而内存带宽并没有随之成线性增长,因此内存带宽对提升多核心的处理能力就越发重要。
Stream内存测试
在Stream Copy测试子项性能中,龙芯3A5000的表现相当出色,已超过了intel i5 9500 六核 14nm处理器。其中Copy单线性能获得16864分,多线性能获得21873分。国产ARM V8 八核 14nm处理器和国产ARM V8 四核 7nm处理器分数相差不大,但Copy的整体表现比龙芯3A5000稍逊一筹。
应用测试
实际上,除了处理器的单核与多核的基准性能测试之外,用户软件应用体验则可以更直观反应处理器之间的性能差异,下面我们就来实测一下办公常用WPS、浏览器与视频播放器方面的应用体验。
WPS:
我们将搭载四款处理器的主机安装上同样版本的统信UOS操作系统,然后用WPS办公软件分别打开10MB(文本+图片)、50M(文本+图片)以及 50M(文本+图片+视频)单个大容量文件,重点测试打开文档速度来衡量处理器的性能,为了尽可能保证测试数据样本的规律性,每个文档均打开5次后取平均值。
WPS办公软件打开文档速度对比(时间越短越好)
通过实际测试可以看到,10MB(文本+图片)文档打开速度中,国产ARM V8 八核 14nm处理器用时最短为1.47秒,龙芯3A5000打开速度为1.54秒。50M(文本+图片)打开速度中,国产ARM V8 四核 7nm处理器用时最长为3.01秒,50M(文本+图片+视频)测试中,国产ARM V8 八核 14nm处理器则用时最长为4.24秒,intel i5 9500 六核 14nm处理器用时最短为2.23秒。综合来看,intel i5 9500 六核 14nm处理器的整体表现较好,而龙芯3A5000略好于国产ARM V8 四核 7nm处理器,国产ARM V8 八核 14nm处理器小容量文件打开文件速度较好,但是大文档打开速度上不够理想。
浏览器:
浏览器是我们日常观看网页信息和视频的重要应用,目前每个网页基本上都充斥着大量的图形,对于CPU运行也会打来不小的负荷压力。下面我们就来测试一下四款处理器在浏览器上的性能表现。我们同时打开浏览器并加载爱奇艺视频网站,对比一下打开时间。由于龙芯自家提供有Loongnix浏览器,因此龙芯3A5000选择自家龙芯浏览器V3.1,而其他均选择火狐浏览器进行测试。
浏览器打开爱奇艺网站速度(时间越短越好)单位:秒
由于爱奇艺网站中存在视频、图片、CSS、JavaScript等等,因此加载页面对处理器性能也提出一定的要求。通过测试可以看到intel i5 9500 六核 14nm处理器加载速度表现较好用时1.4秒,龙芯3A5000的1.78秒也很不错,最长用时的则是国产ARM V8 八核 14nm处理器用时2.35秒。
影音播放:
最后对比测试的是影音播放性能,我们选择统信UOS操作系统下的默认视频播放器,并打开同样大小的1080P视频mp4格式,分别测试四款处理器加载视频的时间。
影院播放器加载1080P MP4视频时间(时间越短越好)单位:秒
通过实测可以看到,国产ARM V8 四核 7nm处理器加载速度最快为1.43秒,龙芯3A5000为1.64秒紧随其后,最慢的则是国产ARM V8 八核 14nm处理器用时2.09秒。此外值得一提是,由于龙芯3A5000处理器性能提升显著,因此在播放4K高清视频的软解能力也得到进一步提升,在脱离独显的情况下依然可以流畅播放高清视频。
04 不破不立 不断超越
长久以来,龙芯中科的目标是让中国人用上完全自主的CPU处理器,二十年风华岁月,弹指一挥间,LoongArch的出现让龙芯离这个目标迈进了一大步,这也不仅仅是龙芯的突破,也是中国自主CPU行业的新里程碑。
基于自主指令系统LoongArch的龙芯3A5000性能表现非常让人满意,短期内的短板是生态建设,应用软件适配还需要加强。尽管作为过渡阶段,龙芯的二进制翻译系统LAT可以实现跨指令平台应用兼容,也能够运行部分X86/Windows应用软件,但要想实现满足各种应用需求的庞大软件生态,仍需要国内软件厂商的群策群力。
生态涉及的复杂程度有时候会比单一技术还要令人头痛,CPU生态需要硬件、系统和用户作为支持,硬件上龙芯已经有了LoongArch加持的龙芯3A5000,系统方面有统信UOS、麒麟Kylin等国产操作系统的适配。LoongArch目前最需要的是用户,用户不仅包括消费者,也包括开发者,没有开发者带来的软件生态支持,就不会有大量消费者买单,没有用户消费就没有资金继续研发,所以LoongArch大力推广生态是当下最重要的一步。苹果M1被认为可以威胁到英特尔和Windows,也是因为用户基数庞大,加上全球上千万的iOS开发者,才能成为CPU行业的黑马。
有些用户可能比较难理解,为啥我们CPU做了那么多年,国内CPU生态还是建立不起来。这里笔者举个例子,前段时间有消息称英特尔要在欧洲建立一座晶圆厂,投入是多少呢?消息显示英特尔整个生命周期内总投资或将超过1000亿美元,即使包括一些国家的政策补贴,英特尔每年在芯片研发上也有百亿美元投入。国内CPU整个行业实际投入都远低于英特尔这样的企业,根本不能满足所有芯片企业的需求,大多只勉强维持研发。而且,国外CPU和操作系统在软件生态、产业体系上磨合了几十年。正所谓差之毫厘,谬之千里,一个微小细节失误就会让一条亿万投入的产品线作废,没有资本必然玩不转,门槛高,难入行,久而久之活下来的越来越少。
在这样的环境下,龙芯能够推出自主化指令集架构LoongArch实属不易,准确的说像龙芯这样现在还坚持做国产自主芯片的企业都值得尊敬。
不经一番寒彻骨,怎得梅花扑鼻香,自主之路无比艰难,龙芯这份勇气令人赞叹。现在龙芯已经踏出最艰难的第一步,接下来就是生态体系的建立。目前龙芯中科已经建立LoongArch社区,同时将会组建LoongArch联盟,免费开放LoongArch,希望更多的开发者可以参与其中,让国产自主CPU走的更远,期待龙芯中科为我们带来全新自主的国产CPU生态领域。
SS3 渐变(gradients)可以让你在两个或多个指定的颜色之间显示平稳的过渡。
以前,你必须使用图像来实现这些效果。但是,通过使用 CSS3 渐变(gradients),你可以减少下载的事件和宽带的使用。此外,渐变效果的元素在放大时看起来效果更好,因为渐变(gradient)是由浏览器生成的。
CSS3 定义了两种类型的渐变(gradients):
线性渐变(Linear Gradients)- 向下/向上/向左/向右/对角方向
径向渐变(Radial Gradients)- 由它们的中心定义
浏览器支持
表中的数字指定了完全支持该属性的第一个浏览器版本。
后边跟 -webkit-、-moz- 或 -o- 的数字指定了需加上前缀才能支持属性的第一个版本。
属性 | |||||
---|---|---|---|---|---|
linear-gradient | 10.0 | 26.0 10.0 -webkit- | 16.0 3.6 -moz- | 6.1 5.1 -webkit- | 12.1 11.1 -o- |
radial-gradient | 10.0 | 26.0 10.0 -webkit- | 16.0 3.6 -moz- | 6.1 5.1 -webkit- | 12.1 11.6 -o- |
repeating-linear-gradient | 10.0 | 26.0 10.0 -webkit- | 16.0 3.6 -moz- | 6.1 5.1 -webkit- | 12.1 11.1 -o- |
repeating-radial-gradient | 10.0 | 26.0 10.0 -webkit- | 16.0 3.6 -moz- | 6.1 5.1 -webkit- | 12.1 11.6 -o- |
CSS3 线性渐变
为了创建一个线性渐变,你必须至少定义两种颜色结点。颜色结点即你想要呈现平稳过渡的颜色。同时,你也可以设置一个起点和一个方向(或一个角度)。
线性渐变的实例:
background: linear-gradient(direction, color-stop1, color-stop2, ...);
线性渐变 - 从上到下(默认情况下)
下面的实例演示了从顶部开始的线性渐变。起点是红色,慢慢过渡到蓝色:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
#btn{
height:200px;
background: -webkit-linear-gradient(red, blue); /* Safari 5.1 - 6.0 */
background: -o-linear-gradient(red, blue); /* Opera 11.1 - 12.0 */
background: -moz-linear-gradient(red, blue); /* Firefox 3.6 - 15 */
background:linear-gradient(red, blue); /* 标准的语法(必须放在最后) */
}
</style>
</head>
<body>
<div id="btn"></div>
</body>
</html>
SS3是CSS(层叠样式表)技术的最新进化,它为Web开发人员提供了强大的新工具和功能,这些新特性使得创建复杂、富有动感的设计成为可能。在本文中,我们将探索CSS3中的一些最受欢迎和最有用的新特性,并讨论它们如何改变我们开发和设计网站的方式。
CSS3引入的border-radius属性允许开发者轻松创建圆角元素,而不再需要使用图片或其他复杂的工作流程。这个属性可以应用于任何可见元素,只需要一行代码就可以实现。
.box {
border-radius: 10px;
}
box-shadow和text-shadow属性为网页元素添加阴影效果变得简单。box-shadow用于为盒子模型添加阴影,而text-shadow则为文本添加阴影效果。这两者都能增加页面的深度感和层次感。
.box {
box-shadow: 5px 5px 10px rgba(0,0,0,0.3);
}
.text {
text-shadow: 2px 2px 5px rgba(0,0,0,0.5);
}
CSS3的transition属性允许元素在不同状态之间平滑过渡。你可以指定过渡效果的持续时间、时间函数,以及应用过渡的CSS属性。
.button {
background-color: #eee;
transition: background-color 0.3s ease-in-out;
}
.button:hover {
background-color: #ccc;
}
CSS动画是CSS3的一个强大特性,它允许开发者创建关键帧动画而无需使用JavaScript或Flash。通过@keyframes规则,你可以定义动画序列,然后使用animation属性将其应用到元素上。
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
.fade-in-element {
animation: fadeIn 1s;
}
CSS3提供了线性和径向渐变,这意味着可以在不使用图像的情况下创建平滑的颜色过渡。
.linear-gradient-box {
background: linear-gradient(to right, #ff7e5f, #feb47b);
}
.radial-gradient-circle {
background: radial-gradient(circle, #ff7e5f, #feb47b);
}
Flexbox是一个强大的布局工具,它提供了一种更有效的方式来布置、对齐和分配容器中的空间,即使当子元素的大小是未知或动态的。Flexbox使得创建响应式布局变得更加简单。
.flex-container {
display: flex;
justify-content: space-around;
}
.flex-item {
flex: 1;
}
CSS Grid Layout是一个二维布局系统,它可以处理复杂的布局更加直观和强大。与Flexbox不同,Grid可以同时处理行和列,更适合于复杂的页面布局。
.grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
}
.grid-item {
background-color: #eee;
}
媒体查询是响应式设计的基石,它允许你根据不同的屏幕尺寸和设备特性来应用不同的CSS规则。
@media (max-width: 600px) {
.container {
flex-direction: column;
}
}
CSS3为Web设计和开发带来了巨大的进步,使得创建美观、响应式和交互式的网站变得更加容易。上面提到的新特性只是冰山一角,CSS3还有更多的功能等待开发人员去探索和实现。随着浏览器支持的不断增强,现在是时候开始利用CSS3的强大功能,为用户创造更加丰富和愉悦的Web体验了。
*请认真填写需求信息,我们会在24小时内与您取得联系。