为何国产超级计算机已经领先全世界了,而国产cpu却依然落后?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为何国产超级计算机已经领先全世界了,而国产cpu却依然落后?相关的知识,希望对你有一定的参考价值。
每日点兵,为您解答
首先,超级计算机的算力大小并不依赖狭义上的CPU,超级计算机需要的是浮点算力,而目前市售CPU先天就有不足。在天河一号和天河二号中,真正为超级计算机提供算力的是gpu和协处理器,就像你的pc,CPU调度,显卡干活一样。天河一号和二号的时候,硬件都是直接买的,天河一号和天河二号基本都用到了Intel xeon E5 xeon phi ,甚至还有AMD的显卡(真正的显卡hd4870x2,连计算卡都不是)。之后美国开始对华限制出口,主要是禁运xeon phi,nvidia Tesla这样的产品,CPU倒是没那么严。太湖之光就开始使用自研处理器了。sw26010本质上和Intel lga接口的xeon phi的设计思路是相似的,众核堆算力,至于工艺方面,是28nm,这个工艺放在2015年,可以说得上是主流工艺了,绝不算落后,而且能效丝还比Intel强好几个档次。当然,这种处理器给PC用毫无意义。
更有趣的是,与sw26010设计思路相似的xeon phi 7200系列,今年才上市。所以啊,先问是不是,再问为什么,中国的CPU当然行,还很行。
那为啥民用为什么不行?没专利,没授权,适应不了市场。
我国要生产CPU除了要向国外支付相关专利费外,就只剩下建立一套专属于自己通讯专利和协议。关键是你这两样东西必须让其它的电脑供应厂承认。否则没用。
美国阿贡国家实验室科学与工程院主任彼得·贝克曼曾经接受媒体采访时说过这样的话,“这些年来,中国对超算的投入和努力巨大,发展速度和成就令人惊叹”。并且,来自国外的同行也开始羡慕起中国来,称赞中国是“国家在办事”(意同中国办事效率相当高)。中国超算系统,即“神威·太湖之光”和“天河二号”在最新一期的TOP500榜单中依然霸占头两名的位置。某种程度上说,中国在超算领域能取得这样的成就,也与本国工业、学术和军事能力高度相关。令国人们感到自豪的,不仅因为“神威·太湖之光”在TOP500榜单中再一次且毫无压力地霸占冠军的宝座,以及高于美国最快的超算系统“泰坦”大约五倍的速度,还因为“神威·太湖之光”采用的是有中国自主知识产权的芯片。而且,“神威·太湖之光”在体系结构、高速互联和系统软件等关键性技术上均获得了前所未有的突破。“天河二号”则采用了英特尔的芯片。
神威蓝光计算机系统装配的国产“申威1600”中央处理器。
国内有不少的业者们看来,中国在超算领域所取得的成绩,国人们不应该据此沾沾自喜。当前,美国能源部正支持建造两台新的超算系统“Summit”和“Sierra”。位于美国橡树岭国家实验室的超级计算机“Summit”预计是在2018年开始投入使用,“Summit”的计算性能将会是“神威·太湖之光”的两倍左右。换言之,美国在2018年里会重新抢回超算领域的霸主之位。况且,美国公司如英特尔等仍然主导着芯片行业。举例来说,在最新一期的TOP500榜单中,有471台超算系统采用英特尔的芯片,有14台超算系统采用美国国际商用机器公司的芯片。
就此话题,之前有媒体直接引述了中国曙光公司高性能计算机产品事业部副总经理吉青的话称,“E级超级计算机是全球各国争夺的皇冠上的明珠,占领战略制高点至关重要,但从业界来讲,我们更本质的初衷,则是为全球用户提供更多选择和可能”。凭心而论,吉青说得就很好。中国发展超算系统,并不是为了要碾压国外同行,而是要为全世界的人服务。
中国在芯片领域比起美国等同行仍然有很大的差距,至于原因是什么?我在国内、外好些网站上找了找,终于找到了龙芯中科胡伟武在2018年初接受媒体采访时讲出的一些话,具体包括了三点。
第一,如果用赛跑作比喻各国在芯片领域的竞争,过去中国连国外同行的背影都看不到,今天至少能看清国外同行的背影了,等到2020年就能看清国外同行的后脑勺和头发了。中国在后面努力地追,但国外同行也在前面奋力地跑。中国要追上国外同行,必然是得有个过程的。第二,中国改革开放至今差不多有四十年。在这四十年里,中国取得了很多了不起的成就。然而,之前中国是直接绕开了通用芯片CPU、操作系统、发动机和高端仪器等高精尖技术而发展的。而今,中国要从大变强,必须回过头来攻克这些高精尖技术。中国要攻下这些高精尖技术,便会是一个漫长的过程。因为这些高精尖技术非常复杂,影响这些高 科技 产品的因素非常多。中国要研发这些复杂的系统,只能是一步一步地进行。第三,中国在研发通用芯片、操作系统、发动机和高端仪器等复杂系统的过程中,并不是因为缺钱,也不是因为体制机制上有大的问题,最主要的是缺了时间。况且,中国要研发出可规模化量产并具备国际竞争力的芯片、操作系统、发动机等产品,必须得在应用的过程中才能不断地发现问题,进而在解决问题的过程中不断地改进产品。
如果用最简单的一句话说便是,中国在芯片等高技术领域的底子比国外同行薄弱了很多,才导致了中国在芯片领域落后于国外同行。实际上,在今天,在很多高 科技 领域,中国就是追赶者的角色。要我说的话,如果中国当初没有错过第一次、第二次和第三次 科技 革命,中国今天在高 科技 领域的成就肯定会比目前大得多,辉煌得多。对于新中国成立之前那一百多年的 历史 ,我们也不要再去追究了。何况,以中国在改革开放四十年来取得的发展速度,再等上二、三十年,中国一定会成为全球主要的高 科技 创新中心之一,并造福全人类。
国产CPU并不落后。落后的是国产知识产权体系下,CPU的生态。
中国超算,尤其是天河系的出彩,来自于中国设计师团队世界范围内首次提出的异构计算,即CPU和GPU的联合工作。当然天河系列之前主要使用英特尔的芯片,后来在美国商务部限令出口后,国产申威芯片第一时间顶上,在神威·太湖之光超算上继续维护了中国超算在全世界范围内的领先地位。
大家现在看到的落后,来自于用户体验差。这种差并不来自于分散的硬件,而来自于整个体系的磨合不够成熟。
就好比我们现在拿劳斯莱斯的发动机,拿兰博基尼的气动外形,拿创驰蓝天变速箱,拿奔驰大G的底盘,拼出一辆车,这车是否就碾压全球了?
并不能。因为这些体系并不兼容。整出这么一台奇美拉轿车可能甚至还跑不过满大街叫嚣的新思域。
国产CPU当初就是一颗孤悬的 健康 心脏。但是这颗心脏放不到任何一个活人的身体里。想要用它,你只能自己造一个人。
好了我们造一个出来也没多难。结果这个人还没站起来,因为腿部肌肉不响应,咣当摔倒了。
大家都说:国产心脏好烂啊。
没关系继续调整,接着来。
调整好了之后人站起来了!大家一片激动,结果走了两步,动态稳定性不行,啪叽又摔倒了。
大家都说:国产心脏好烂啊。
没关系我们接着搞!
调整好了这一次!我们造的小人走起来了!跑起来了!太振奋了!这时候正在训练百米跑的英特尔平台主机从旁边风一样掠过,像看傻子一样看着我们的小人。
大家都说:国产心脏好烂啊。
没关系……我们还可以坚持下去。
在完成了所有的调整之后,我们的小人和英特尔平台的win系统、苹果平台的OSX系统,站在了一起,他们必须无视成长时间鸿沟一般的差距,至少给用户相同级别的感受。
这步,我们到今天还没做到。
但是这之前的,我们耗费了30多年的心血,已经完成了。
题主,国产CPU并不垃圾。时间会告诉你一切。
国产CPU并不落后。CPU分很多种,比如手机的麒麟970是世界第一梯队的CPU。答主估计问的是桌面通用CPU,这个主要和市场有关,而不是中国不能研发生产这样的CPU。说白了,后来者很难把差不多的桌面电脑CPU卖出去。
这话问的,就好比问一个厨子,你茄子炒的这么好吃,为什种茄子的技术不怎样啊?
生产计算机的并不生产CPU,就像厨子只管炒菜,不管种菜是一个道理。
记得在一次工程机械展会上,一位媒体人问一家知名工程机械制造商 你们生产的起重机既然这么厉害,为什么还要用进口的柱塞泵?为什么不把这个关联器件攻克? 当时厂家的回答是 我们是做整机的,不是每个零部件都得自己生产。工科液压泵的不应该是我们总装厂,而是应该由专业生产液压器件的厂家研发。
超算是一个巨型的矿机,计算能力主要由GPU实现。天河二号用的是至强CPU和N卡。太湖用的自研申威CPU听说有260个核。
看太湖的数据,其实国产cpu技术没那么落后。但通用CPU确实是个空白,因为通用CPU基本都是X86架构的,你要研制,就必须得问别人买授权。华为自研的ARM芯片麒麟大家都知道,是买断了人家的公版,做出来的。不买授权自己做可以不可以,可以,但你自己创造个通讯协议做个指令集出来,别人也要给你做配套才行。否则主板不认内存不认硬盘不认,那还是空的。现在的配件都只认X86,你的U必须做这个架构,就必须看美帝的脸色。
而我们都要买版,买专利,看脸色,做出来的还是正宗国产CPU么?
超级计算机并没有想象中那么神秘,它也只是一个计算工具。
当有人输入计算条件后,超级计算机就会输出计算的结果。和买菜用的计算器是一样一样的,仅仅只是规模上的区别而已。
我们常用的家用电脑一般只有一个CPU,每个CPU内一般只有2~8个物理核心,这样就能玩 游戏 、看视频、浏览网页,因为这些程序的背后只需要少量的浮点运算。假如要模拟飞机附近空气的流动,以及飞机本身的受力情况,就需要拥有成千上万颗CPU的超算来完成,需要把空气、机体分割成一个一个的小块块,分别计算每个小块的运动和受力,再整合起来得到整体的运动和受力情况。超算可以将一个大的任务切分成并行计算,这样就可以快速地完成繁重的计算任务。
如果把飞机模型中的一个1立方米的立方体分成1立方毫米的小方块,那么就会得到10亿个小方块。普通一个家用CPU需要连续做10亿次运算,算完整个过程可能需要花上一整天,而如果有10个CPU,就可以把10亿个小方块分成10分,每个CPU只需要计算1亿个方块,再把所有CPU计算的结果整合起来,两小时就能算完了。
如今超级计算机已经广泛的应用于气象气候、石油勘探、大气海洋环境、航空航天、宇宙模拟、密码研究、核爆模拟、武器研制、材料科学、工业设计、地震模拟、动漫渲染、深度学习、人工智能、生物医药、基因工程、数据挖掘、过程控制、金融分析、人类组织系统研究、公共服务等各个方面。所以超级计算机成为了强国必争之地,可以说未来想要打破科幻片里所谓的“质子锁”就需要用到超算。
“超级计算机”一词并没有明确的定义,随着计算机行业的发展而发生变化。早期的控制数据公司机器可达十倍速于竞争对手,但也仅是原始的标量处理器。到了1970年代,大部分的超级计算机已经是向量处理器了。1980年代初期,超级计算机朝着大规模并行计算系统发展,这时的超级计算机由成千上万的普通处理所组成。1980年代中叶,将8个到16个不等的向量处理器联合起来进行并行计算成为了通用的方法。1990年代到21世纪初期,超级计算机互联主要基于精简指令集的张量处理器(如:PowerPC、PA-RISC或DEC Alpha)来进行并行计算。
我国超级计算机的现状在近期发布的全球超级计算机Top500榜中我国有214台超算上榜,在数量蝉联第一,而曾多次登榜首的神威太湖之光、天河2A分别位于第4名和第6名。日本继超算“京”的失败基础上推出后续“富岳”时隔9年再度登顶,而美国的超算“Summit”、“Sierra”被挤到了2、3名。
虽然我们已经取得了不小的成绩,但CPU仍然是我们的短板。比如过去天河二号用英特尔Xeon Phi(至强融核)的CPU连续4次在超算界Top500榜上荣登宝座。但自从2015年4月美国禁止英特尔向广州超算中心出售至强融核CPU后,明显有些跟不上脚步了。
虽然可以用2~3颗国产的申威芯片替代,但用一张Tesla V100就能解决问题只会增加复杂程度,芯片越多,调度就越困难。这就好比5个人的团队好管理,而500人的团队管理难度几何级数增加。
总结我国的超算之路想要有长足的发展,依然需要补齐半导体产业链的短板。假如神威的CPU也能采用7nm的工艺制程和HBM2的内存,也不见得会比日本的“富岳”矮一截,谁胜谁负会是一个未知数。但恰恰这个前提是我们很欠缺的。
你说的落后的是桌面CPU,影响桌面CPU的是软件生态(根本上是指令集生态),举个简单的例子,国产CPU再强,不能运行Windows你会买么?道理就是这么简单,因为软件生态好的指令集专利被美国捏的死死的,所以已经没有了其他市场,自然不会去做。
我们的cpu已经世界领先了,比如华为的海思。但是通用处理器,比如电脑上常用的X86系列cpu,因为专利原因,不是我们想做就能做的。所以我们做的很好的处理器,普通日常我们用不到,也就是买华为的手机才能接触到,甚至买了都不一定知道。
纵观近几年,近十几年我国在发展,哪项技术不是靠巨资堆积的?
高铁,大飞机,载人航天,航母……这也得益于我们优越的 社会 制度,就是花钱办大事。要是在西方,花大钱是要争取各个州,纳税人同意的,效率低。比方说美国修个高铁,纳税人一想这东西短时间内没有利益回报就会反对。
那么超级计算机同样也是用钱堆的,只要有大钱,整出来只是时间问题。而关键是那些大国不舍得花钱,才显示出我们超级计算机的厉害!
而民用CPU就不是简单的堆钱的问题了,它的成本要低很多,回报要高很多,毕竟是量产嘛。我们也能造CPU,关键问题是现有技术成本太高,成本高售价就高,售价高就没有几个人买,没人买就形不成生态系统。所谓生态系统就是要全世界成千上万的开发者在这款CPU上做开发,一起发扬光大。这就像微软的手机操作系统一样,本身技术很好,但是生态差,没有程序员在上面做手机APP,APP少连微信都没有从而买的人少……自然就恶性循环了,成长不起来。
超级计算机室是不依赖生态系统的,反正自己玩自己的,不计成本,只针对高端用户,也不需要考虑用户体验,甚至可以用政策规定某些企事业单位必须使用。这是和普通民用CPU最大的区别。
参考技术A 搞芯片要是像搞中国足球一样难,使尽办法都没招那就危险了如何在国产龙芯架构平台上运行c/c++javanodejs等编程语言
高能预警:本文内容过于硬核,涉及编译器原理、cpu指令集、机器码、编程语言原理、跨平台原理等计算机专业基础知识,建议具有c、c++、java、nodejs等多种编程语言开发能力,且实战经验丰富的资深开发者阅读。
背景
全面的国产化即将来临之时,不仅是操作系统,cpu也会使用国产化芯片作为替换,那么龙芯cpu作为国产cpu龙头,当仁不让,成为国产化替换的首选,硬件条件已经满足了,作为软件开发者,基于龙芯架构的软件当然也要适配起来了。
支持龙芯的操作系统
由于龙芯目前只支持某些特定的linux发行版,有深度OS、统信UOS、中标麒麟、麒麟、普华、新支点操作系统。
截止2021年6月1日,支持的操作系统版本如有新的操作系统支持,请参照龙芯官网说明。
龙芯架构简介
龙芯架构如果在编译器层面不做适配,编程语言(静态编译型和动态编程语言)是不能运行的,为什么运行不了呢?因为cpu指令集不同,目前市面上的编程语言大部分都是以支持intel/amd为首的x86或者x86_64指令集,和支持苹果安卓等移动端使用的arm精简指令集为主,龙芯使用开源的mips指令集,与上面都不同,除非编程语言的编译器能够支持mips指令集编译,否则市面上所有编程语言都不支持在龙芯架构平台上运行。
对于编译器可以说大部分开发者可能跟博主一样,七窍通了六窍。但是这不要紧,并不影响我们理解它的原理。
编程语言是如何运行在特定架构的平台上的呢? 答案是:编译器。
编译器原理简述
(过于硬核,可以选择跳过到后面的龙芯运行java)
有一点大家知道的是,我们编写的代码只是为了方便我们人类去阅读、编写的,机器是没办法运行的,这时候根据编程语言的不同,就需要编译器将静态编译型语言翻译成机器码。
静态编译型语言如何编译到特定架构平台
编译器把我们编写的代码翻译成特定架构平台的机器码,比如使用gcc,cmake编译c/c++代码的时候需要选择特定的架构平台。
再比如,rust、golang等语言则必须先用c++编译器编译出支持龙芯的golang、rust编译器,才能自举,否则无法编译运行。
这里我们以c/c++为例,来简单介绍一下如何编译到龙芯平台。
如何编译c/c++代码到龙芯架构平台
对于使用了上述操作系统的小伙伴们,可以直接跟其他linux一样,cmake,./configure就可以了,没有一点变化,所以我们直接跳过,这里讲讲使用其他操作系统的情况,就是只要在编译的时候加上两个参数(架构和cpu)即可
./configure
--arch=mips
--cpu=loongson3a
ffmpeg和opencv都参照这种方式编译即可。
注意:GCC4.6以后才默认支持龙芯3A架构,所以请GCC版本较低的自行升级到最新版本即可。
动态语言如何在特定架构平台运行
动态语言与静态编译型语言不同在于它们在每种架构平台都有一套运行时(以java和nodejs举例:jvm,v8)。比如java和nodejs,java在不同的操作系统和架构上都提供了不同的jdk运行时,而js则依靠不同架构平台的v8虚拟机运行时才能运行,而jdk和nodejs运行时都依靠静态编译型语言编译成特定架构平台机器码才能运行,所以不管是动态编译还是动态脚本都需要依赖通过特定架构平台的静态编译后的运行时(运行时:jvm,v8等) 。
那么到这里,我们已经知道要解决在龙芯架构平台上运行java或者nodejs这种动态编译型语言该如何做了,jdk和nodejs都是使用c/c++编写的,那么我们就可以编译jdk和nodejs(含v8引擎)的源码(c/c++)到龙芯指令集就可以了
可喜的是龙芯平台帮我做了这件事,目前龙芯平台已经可以支持java。
如何在龙芯上运行Java
龙芯很早就开始参贡献openjdk项目了,因此,国产龙芯平台自己也维护了一个openjdk版本分支:http://www.loongnix.org/index.php/Java
龙芯平台上必须使用该版本jdk才可以运行java项目,这样就不需要我们自己去编译openjdk的源码到龙芯平台了。
因为龙芯平台单独维护了jdk版本,所以使用java的小伙伴们只要使用龙芯的openjdk版本就可以把java项目很平滑的部署到龙芯平台上,而不需要担心兼容性的问题,真正让java实现了一次编写,到处运行。
如何在龙芯平台上运行nodejs
nodejs是一个基于 Chrome V8 引擎的 JavaScript 运行环境;
跟Java相同的是,龙芯平台已适配了loongnix-Server以及Debian10对应的版本:nodejs-v12.16.3,并将持续维护。所以nodejs的小伙伴们可以安心了,使用nodejs开发的程序可以平滑的过渡到龙芯平台上运行。
★ NodeJS下载
nodejs-v12.16.3(server系统) 点击下载
nodejs-v12.16.3(debian系统) 点击下载
★ 龙芯NPM源
源地址1:http://npm.loongnix.org:4873
源地址2:http://registry.loongnix.org:4873
说明:龙芯npm源设置方法与设置淘宝npm源完全类似,例如:npm config set registry
http://npm.loongnix.org:4873
到这里为止,我们已经涵盖了大部分常用的编程语言如何运行在龙芯平台上的说明,为了更好的支持的发展,博主会继续更新有关国产芯片和国产操作系统的文章,欢迎大家不吝“点赞、收藏、关注”一键三连。
以上是关于为何国产超级计算机已经领先全世界了,而国产cpu却依然落后?的主要内容,如果未能解决你的问题,请参考以下文章