• [热门活动] 【活动已结束】鲲鹏技术文章征集计划开启!写文章,赢华为手表、耳机等好礼!
    鲲鹏技术文章征集活动于今日10月21日结束,已经参与新一季度征集的用户可耐心等候,工作人员将会筛选符合活动要求的用户,给与补偿奖励,届时将会在本帖子下方进行公示。截止到7月15日,获奖名单如下,请所有获奖用户于8月4日前登录鲲鹏社区完成实名认证并反馈收奖信息,逾期未完成实名认证或收奖信息,视为自动放弃奖品,谢谢配合 :)-->如何在鲲鹏社区完成实名认证?点击查看-->点击反馈收奖信息-->如实名认证时所用的手机号码和反馈收奖信息中的不同,请微信联系“鲲鹏小助手”说明情况,以免奖品发放失败,谢谢 :)-->如有任何问题可以联系“鲲鹏小助手”或联系邮箱号:kunpeng@huawei.com。扫描下方二维码即可添加“鲲鹏小助手”微信楼层昵称回帖内容分数评分理由所得码豆9楼相信光的奥特王小懒cid:link_1235具有一定技术性,但相关资料在网上较多,且未与鲲鹏平台、BoostKit结合31126楼乌龟哥哥cid:link_130此为【鲲鹏DevKit训练营】活动内容,不予发奖/27楼乌龟哥哥cid:link_140此为【鲲鹏DevKit训练营】活动内容,不予发奖/28楼乌龟哥哥cid:link_170不是发放在论坛的,不可获得码豆和奖品/29楼乌龟哥哥https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=1906950此为【鲲鹏DevKit训练营】活动内容,不予发奖/30楼乌龟哥哥cid:link_150此为【鲲鹏DevKit训练营】活动内容,不予发奖/31楼y-wolfandyhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=19073130复制DevKit软文,无创新性941532楼y-wolfandycid:link_730复制鲲鹏沙箱指导,无创新性978533楼y-wolfandycid:link_830复制鲲鹏沙箱指导,无创新性971634楼乌龟哥哥https://bbs.huaweicloud.com/forumreview/forum.php?mod=viewthread&tid=192399&page=1&authorid=&replytype=&extra=#pid149135530复制鲲鹏沙箱指导,无创新性34937楼乌龟哥哥https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=19286230复制鲲鹏DevKit文案,无创新性24838楼运气男孩cid:link_930复制鲲鹏沙箱指导,无创新性15339楼运气男孩cid:link_1030复制鲲鹏openGauss沙箱指导,无创新性25640楼fsifddshttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=193484&page=1&authorid=&replytype=&extra=#pid149892320技术较浅149因作品原创度不高,因此第一名、第二名奖品空缺 :)昵称综合评分季度奖励y-wolfandy90蓝牙鼠标乌龟哥哥60蓝牙鼠标运气男孩60蓝牙鼠标点此发表文章,点击“发表主题”后,主题分类选择“技术干货”,即可开始输出文章。发表帖子后,将“帖子链接”回复至本帖下方即可。每篇文章要求不少于500字,图文并茂,排版工整。内容要求为投稿人原创,如存在洗稿、转载或抄袭等行为一经发现将取消活动资格。内容分享后,鲲鹏拥有该内容的使用权、修改权等。相关奖项由鲲鹏社区专家进行评选,如发布的内容不符合征稿内容要求时,奖项可空缺。只有在活动期内,在鲲鹏社区首发的原创内容,才可获奖励。通过违规手段或恶意作 弊等行为参与活动的,如有发现,回收奖励并取消活动资格。注意事项请务必使用个人账号参与活动(IAM、企业账号等账号参与无效)。所有获得华为奖项的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。本次活动如一个实名认证对应多个账号,只有一个账号可领取奖励;一个实名认证账号只能对应一个收件人,如同一账号填写多个不同收件人或不同账号填写同一收件人,均不予发放奖励。(举例说明:具备同一证件号(比如身份证号/护照ID/海外驾照ID/企业唯一识别号等)、同一手机号、同一设备、同一IP地址等,均视为统一实名用户)为保证您顺利领取活动奖品,请您提前填写奖品收货信息,如您没有填写,视为放弃奖励【点击此处填写信息】。活动结束且用户填写完成领奖信息后,30个工作日内发放奖品,发放时间根据实际情况动态调整,如有延期敬请见谅。其他事宜请参考【鲲鹏论坛活动规则】,本活动最终解释权归活动主办方所有。
  • [问题求助] 鲲鹏云私有镜像安装node-gdal总是报错
    这个服务器没法安装node-gdal
  • [行业资讯] 鲲鹏信息物联网技术获科技进步奖特等奖 射频感知核心芯片自主可控
    凭借团队在自主物联网领域十年的探索,天津鲲鹏信息技术有限公司取得147项发明专利,打破了国外技术封锁,掌握了自主物联核心关键技术。其“物联网射频感知核心芯片研发与应用”,荣获天津市科技进步奖特等奖。  作为物联网四大关键技术之一,射频感知技术是物联网实现物理世界与信息世界融合的重要纽带,具有广阔的应用前景。针对我国射频感知核心芯片受制于国外、存在卡脖子风险的现状,该项目聚焦标签芯片、读写器芯片、存储器IP核,解决了射频感知核心芯片自主可控问题。  “电子标签利用了最核心的射频感知技术,它是二维码技术的升级,最远可以在50米外读到它的信息,并能同时读取1000多个信息。”鲲鹏信息总经理李润泽拿着企业自主研发的电子标签告诉记者,“鲲鹏重点是设计里面的芯片,就是电子标签中的这个小黑点。”  一张小小的电子标签看起来非常不起眼,但里面所应用的射频识别等高新技术却常年被国外企业垄断。鲲鹏信息公司是国内自主物联网领域最早一批开展自主射频识别技术探索的单位,拥有包含标签芯片、标签、读写器等RFID全系列自研设备产品,并打造了一条自主物联网产业链,成为我市信创产业新的增长点。  在鲲鹏信息公司的大楼外,1∶1比例的全球集装箱智能终端试验舱非常显眼。在这个特殊的集装箱上,多个物联网传感器搭载其中。鲲鹏信息公司打造的智能集装箱全球定位系统,使用者只需在电脑终端前动动手指,就能够获悉集装箱的位置、干湿度、物品情况等信息。  除了智能集装箱,鲲鹏的成果还被公安部采纳为机动车电子标识,已在天津、武汉、深圳、无锡等全国20多个城市成功实施,市场占有率高达79.3%。同时,该成果还在中石油、香港铁路、航天科技、中核等企业应用。这个项目产生直接经济效益3.72亿元,带动间接经济效益约20亿元。
  • [新手课堂] 90%代码如何移植到鲲鹏平台上
    # 90%代码如何移植到鲲鹏平台上 ​ ​ 介绍一下我名字叫张汝涛,现供职于华为智能计算,设计架构与设计。主要是负责相关软件产品的架构设计以及功能开发。今天要讲的主题是关于软件迁移这一件事,是一个久远的话题。因为但凡是牵扯到切换平台、CPU架构的变化,甚至一些语言版本的升级,我们都可能会面临到一些软件迁移的问题。今天就借着一个小时的时间,我们想探讨一下软件移植过程的原理,以及软件工程的相应的过程。 ![图片1.png](https://bbs-img.huaweicloud.com/blogs/img/1582541819452325.png) ​ 接下来要讲一下我们鲲鹏在软件移植的过程当中,如何去帮助开发者去提升效率,如何把我们鲲鹏沉淀下来的,把华为沉淀下来的软件开发以及一致的经验如何反馈到开发者这里,让开发者能够加速软件开发的进度,降低成本。接下来我们会推出我们鲲鹏的开发套件,帮助用户做软件的移植,以及做基于鲲鹏平台的性能加速,今天主要是这样三个内容,我们下来就开始。 ![图片2.png](https://bbs-img.huaweicloud.com/blogs/img/1582541836497082.png) ​ 其实一提到软件移植,我不知道大家有多少是做了比较底层软件的,做底层软件的话,大家可能会用到一些汇编,C++加这样的底层语言。用到这种底层语言,它是会和机器的硬件架构强相关的,当你在从一个平台切换到另外一个平台的时候,这些强相关的语言势必要进行一次,跟我们所采用的编程语言以及移植的平台环境强相关。当我们用汇编代码或者是用这种编译型语言的时候,我们就会面临着一些移植的问题、一些挑战,有些问题可能通过编译器能解决,有些问题特别是一些低阶的代码或者比较低级的一些代码,底层的代码不能说低阶,我们就会可能要面临着必须要手工去查手册,然后去把它相应的去转换到新平台所使用的机器码。 ![图片3.png](https://bbs-img.huaweicloud.com/blogs/img/1582541850500579.png) ​ 这里就列出了一个我们鲲鹏处理器和x86处理器的一个指令差异,这里列了一个简单的两个数相加,两个int型相加的这样一个简单程序。通过GCC编译完之后,我们去通过OMGD,我们就能看到指令的具体的格式形式以及相应的对应的汇编代码。这里我们能看到我们看到对应x86平台而言,因为x86是CICS指令是复杂指令集,鲲鹏是完全兼容Arm64架构的,是我们华为自研的vinic,我们的指令集也是和Arm64副精简指令集是完全兼容的。 ​ 这里插一下,讲一下背景,其实所谓的经限指定集和复杂指令集的区分是从上个世纪的70年代开始的,IBM曾经做过一个研究,就是关于说CPU如何去高效的运行,然后他们会发现可能有些常用的指令或者是程序代码,当时背景下常用的程序代码,可能常用的和不常用的有很大的差异,当时又因为IC的制程或者工艺或者器件的设计水平没有现在这么突飞猛进,所以就会想如何去把CPU从硬件设计上来讲要简单一点,从软件上来讲高效一点,所以他们就推出了提出了精简指令集这么一个概念,其最大的特点一个显著的特点就是它的指令宽度就是长度,我们说的指令长度,是相等的,也就说每一个指令这个位宽是相等的,么每个指令执行的SICO几乎也相同,就是他把很繁杂的事情做的尽可能的简单,然后用很多简单的操作去完成一件复杂的任务。 ​ 从相反的复杂指令集的角度,我们看一下x86下面的复杂指令级,它每一个指定的长度是不同的,也就是说像这里列举的mov和add这两个指令,它的机器码、指令码是不同的,长度是不同的,势必会造成我们IC器件的解码器,以及包括我们真正的到软件流水操作上处理的步骤是不一样的,也必然会导致我们每条指令的执行的周期是不同的,但是这样也有一个好处,就是我一个指令就能完成一个比较复杂的事情,尽管说我的指令可能会变得很长,但是我一条指令能完成一比较复杂的事情,对上层的程序员来讲,可能就便于理解或者是相对的会容易理解一些。 ​ 这就是精简指令集和复杂指令集的一个简单背景,这里边我们能看到,在我们反汇编下来的x86指令集和我们的鲲鹏指令集的汇编代码上,我们看到我们的操作指令是完全不同的,我们的计存器的命名也是完全不同的,在x86的平台上,我们有16个通用寄存器,我们讲的是x86 64模式下,我们有16个通用寄存器,我们浮点计存器,根据我们支持的MMX技术或者是SSE或者是ABS技术,我们x86平台,x86 44的平台,最多可以存在32个浮点寄存器。 ​ 反观我们鲲鹏平台,因为我们是和Arm64指令兼容的,所以指令集要事完全对照,所以从这个角度来讲,我们鲲鹏平台有31个通用寄存器,除了这31个通用寄存器以外,我们还有一些状态寄存器或者是一个站寄存器,那对应到浮点寄存器,我们就有32个这样一个叫做ASMB的的advances单指令多数据这样一个寄存器,我们有32个寄存器位,位宽是128。这一点是和x86 64平台是有差异的,比如说现在x8664,它如果支持ABX512的话,它的位宽是500 12比特,从这个角度上,是一个硬件器件差异是非常明显的。 ​ 然后从反汇编的角度来讲,大家不知道有没有注意到x86平台上有一个mov指令。从第一行我们能看到从寄存器、rbp一个mov的存储数据,到EDX这样一个寄存器,做一个从把变量从内存里漏斗进来。同样的一件事情在上面的鲲鹏处理器平台上寄存器的指令就变成了LDR和然后下面当然加法还是有add的,然后存储的时候对于x86来讲,又是从寄存器mov到了内存力,但是对于鲲鹏平台它是用一个str指令,所以这也反映出了一个risk指令的特点,也许是第2个特点,我们姑且这么叫,它是用一个load stall这样一个模式,也就是说在鲲鹏处理器平台上不支持内存到内存的一个直接访问,必须要经过一个寄存器作为桥接作为一个中转。 ​ 这一点是和x86指令复杂型指令集不同的另外一个地方。还有就是在x86这个平台上,它的内存访问的模式非常多,对于公共平台上就没有丰富了。这个就是以一个程序为例,我们简单列举一下,从我们CPU的角度来看,同样是一段C代码,CPU他做了不同的事情,执行了不同的指令,经过不同的周期不同的运算以后,它会输出最终计算的一个结果。当然从这个角度来讲,从这段程序两个平台是没有任何差异的,除了指令上以外,执行结果是不会有任何变化。 ​ 但这里也就侧面反应出来了,因为指令集不一样,所以对于C,C++这样偏底层的这样一个语言来讲,虽然它是个高级语言,但是我们必须要考虑一个平台差异,在我们平台切换的时候,甚至在我们平台这个软件的编制过程当中,我们要考虑一个平台兼容性,所以要养成一个良好的编程习惯。 ![图片4.png](https://bbs-img.huaweicloud.com/blogs/img/1582541881376535.png) 跨平台移植软件要面临的不少问题,因为软件移植本身就是一个工程性问题。我们这里通常第1步来讲,如果说我们决定从x86平台迁移到鲲鹏平台,我们就要去判断一下这个软件迁移值不值得,困难有多大?我们通常目前的常用的做法就是我们把x86的平台,相应的软件包拿下来,然后去看看它的依赖性关系。 他这个叫什么意思呢?就是我们看看这个软件,如果跑在x86平台上,他依赖哪些第三方组件?这些第三方组件在你这个目标平台上存不存在要做一些这样的判断。这种判断通常都是这个平台之间的反反复复的安装,去运行,然后根据系统报出来的错误去一个个来排除,所以这都是通过人工来完成的,这个比较费劲,如果有移植经验的同学就会觉得比较费劲,有些事情很繁琐琐碎,然后一个不小心就错了,然后可能还找不出来了。 ​ 当你解决完第1步编译的过程的这个问题之后,你可能会还碰到一些跑过,结果新平台上出现了function fault。功能性错误我们就很讨厌了,可能是原因比较多,有的是本身软件逻辑有问题,第2个可能是第三方组件的APA跨平台兼容性有问题,第3个可能是系统本身支持度也有问题,这个就是影响因素比较多,这样子就需要移植之后,技术人员去相应定位,定位对每个人对相应的工程人员来讲,专业技术要求会比较高,也存在着一个反复编译、反复调整、反复验证,这个过程成本会很高。 ​ 当你完成了功能验证之后,你说跑过一些基本测试以后,你觉得这个软件在新平台上可以刊用了,你可能会面临的一个性能的问题,当你用在工作环境、生产环境的情况下,因为生产环境的软件都希望用最小的硬件跑出最大的性能,然后跑出最高的一个性价比,这时候都会对软件性能上的需求,对他有要求。这个时候我们就会不得不去采取一些方法,例如用一些商业软件也好,或者一些开源的软件命令也好,去分析这个软件的瓶颈到底是哪里有问题?是系统有配置的参数有问题,还是我软件本身逻辑有问题? ​ 所以这三步是我们在华为的软件这么多年的开发过程当中积累下来觉得比较重要的三步,对我们软件的质量、移植的质量是有决定性影响的。这三步也同时对于任何人来讲,可能都不是一个能轻松逾越的几个障碍。 ![图片5.png](https://bbs-img.huaweicloud.com/blogs/img/1582541891753565.png) ​ 再稍微解释一下,对于我们软件移植这件事情,通常我们讲的是对于编译型软件会面临这样的一个困难,对于解释性反而比较轻松,为什么?比如像我们现在常用的一些Java的或者Python的,甚至一些GOD这样一些软件,我们的依赖是什么?依赖的是语言所提供的虚拟运行环境,甚至是一些像Java提供的Java虚拟机GUM,我们只需要选一相应平台的GUM安装,我们就能把底层的所有差异性都屏蔽掉。 ​ 这个软件只根据运行环境去跑,通常是没有问题的。对于像C,C++,GOD这种的,可能作为编译,甚至说可能会调用C,C++加这种组件的这种软件,我们就需要C,C++这种代码进行移植,我们分这么几种情况。 ​ 第1种是开源软件,对我们通常是和社区进行合作,让社区去支持空洞平台,或者是支持M64的平台,这样我们就一劳永逸的解决问题。然后对于自研软件,对于有些SB用户会开发者资源软件,他不能开放代码,我们就需要进行商业合作,去引导客户去移植到我们鲲鹏平台上。 ​ 对于商业B软件,我们最典型的,比如说像微软的一系列软件,或者是orico的软件数据库,我们不可能去获得源码,可能去推动他们和我们中国的软件界合作,可能也非易事,这个时候你只能找到要么是合作,要么就是找一个替代方案,对吧?如果实在是又不能替换用户的业务,又不能去修改,我们就可能不得已采取一个鲲鹏平台和x86进行一些混合部署,这是一个软件部署方面的策略。 ​ 还有一种就是对于我们常用的windows平台的一种系列开发,我们也知道windows虽然一年多前可能说要支持Arm64这个架构,但实际上到现在为止他也没有宣布。其实商业上的考虑或者是其他的因素可能都考虑的比较多,尤其是这样一个大体量的公司,但是对于windows平台就是说我们进行有限度的在开元生态里面进行有限度的支持,比如说像微软的C shut,其实他的call3.0已经开源了,已经在Arm平台上能够用起来了。换句话来讲,我们也可以在鲲鹏平台上基于call3.0支持C shut。对于我们鲲鹏软件移植的过程,我们把它分解为这样几个步骤流程,其中最重要的就是我们这里所列到的第2步第3步以及性能达标分析这一步,我们现在提供了相应的每一步提供一些的辅助工具去帮助客户进行用户开发者进行分析进行移植。 ![图片6.png](https://bbs-img.huaweicloud.com/blogs/img/1582541907369304.png) ​ 其中的二进制文件依赖扫描,是我们去提供了一个工序软件进行软件安装、依赖库的扫描和软件运行依赖库的扫描。根据我们长期积累的有一个兼容性清单,这个兼容性清单覆盖了市面上大多数流行的以及常用的OS以及相应的版本,还有相应的GCC的版本,对于移植的第二阶段,像移植修改C,C++原码,我们也同样提供了一款工具去做C,C++源码的分析,这个分析主要是集中在这样几个方面,集中在汇编代码、边选项,还有宏定义,还有built in函数和编辑提供的built in函数和attribute,然后去重点检查用户的Makefile和CMakeList。如果用户软件是用make构建的或者CMake构建的,我们能帮助去发现一些,识别一些移植中需要修改的地方,同时我们会给出移植修改的建议。 ​ 当移植完成之后,我们会提供一个性能分析的工具,去帮助用户去check这个软件是不是能够达到工作这样一个标准,也就是说check它的性能指标,我们会去进行系统性的性能分析,也会去做软件级的热点定位分析。然后在此基础上我们会给用户提供一些华为所积累下来的认为比较有效的一些软件优化的方法,做一些比如说终端版壳操作,甚至一些其他的软件修改的这样建议,这个就是我们今天要介绍的三款软件,通过这三款软件我们就能比较方便的或者比较高效率的完成C,C++代码,从非鲲鹏平台向鲲鹏平台的这样一个迁移值的过程。 ![图片7.png](https://bbs-img.huaweicloud.com/blogs/img/1582541962501754.png) ​ 在C,C++软件移植的过程当中,我们要着重考虑三个方面的问题,第1个问题是软件构建文件的差异。这里面举两个例子,一种是咱们这个方案里面,我们可能在x86平台上常看到一个叫-M64的这样一个知道编译选项的option,这个含义,实际上是说要把我这个软件生成成为64位模式的。是分成64位模式的,我们编译目标代码的ABI。实际上在鲲鹏平台上,我们可以用类似的,我们可以用-mabi=lp64去来替换,当然如果安全的情况下,加上-FPIC就生成一个flowting的address,来屏蔽一些底层的相关依赖性,这样子就能达到一个编译选项M64的一个替换。 ​ 还有一个就是对应Arm指令集、SA的这样一个替换,我们常用的可能会见到一些-march的这样一个参数,在x86的平台上提供了多达二三十种架构平台,从intend到AMD的各种各样的,Arm平台来说,就相对简单一点,我们只需要去选用我们鲲鹏平台,你CPU所支持的兼容Arm的架构。我们鲲鹏920,我们进入的是AArm8.2-a这样一个架构。如果这些版本比较新,比如说9.1以上的,我们就可以去选用-mtune=tsv110。这实际上是我们泰山微内核110这个型号这里面会在Gcc内部进行了我们提了一些措施,针对架构做的一些的public的tune优化,能够提供一个相对较好的性能。 性能增加,据说有5%~10%的性能提升。 ​ 接下来第二部分就是C,C++原码的移植,这里面也举两个例子,第1个例子是这个是基本数据类型,尽管说我们鲲鹏平台支持的是LP64,然后这个x86平台也支持LP64的这样一个规范,但是实际上大家在某些细节定义上还是有区别的,虽然字符宽度,比如说对x来讲都是8字节,但是x86他这个x是有符号类型的,但是对于我们鲲鹏平台,我们用是无符号类型的,但这块的改动我们就可以通过修改makefile里面,加一个参数,加上-makefilex,去把默认的无符号的x定义成有符号的x,这样就能保证C代码逻辑,关于x操作上不会引入歧义。 ​ 第2类问题就是我们编译器当中提供了多达数百个的这个宏定义,可以被我们C,C++软件识取,比如说我们用GC的话,我们可以在C,C++的软件里面,原文件里面直接去使用相应的宏定义,这个宏定义在编译的时候可能会我们的编译器直接做环境变量的check,然后直接设置了相应的正确的值,跟host环境相关的。我这里指编译和运行在同一款机器上,我们不讲host和target相异的情况。这个时候对于相应的软件,我们就可能需要区分一下宏定义,比如说像这里x86 64,显然一看就知道他是支持x86的,不可能在我们鲲鹏平台上运行,这时候我们就会建议用户去修改用户代码,用预编译的方式做软件范围的定义隔离,很显然对于我们鲲鹏平台,我们常用的关键字就是aarch64或者是Arm64,这样的关键字去做软件逻辑的定义,除了这些以外,包括BBC都有各自的架构定义关键字。 ![图片8.png](https://bbs-img.huaweicloud.com/blogs/img/1582541975636242.png) ​ 第3类问题就是我们汇编代码的移植,这也是最头疼的一块,因为x86平台如果细算的话,他将有2100个不到的汇编指令,鲲鹏平台因为兼容Arm64,我们有1000出头,1100不到,这样一个汇编指令,其实这加起来3000多条指令,如果大家想把它分清楚,那是非常痛苦的。Int的相应指令集的手册有4000多页,Arm相关指令集的手册有7000多页,纯英文的文档大家读起来肯定会崩溃的,所以在这里面汇编代码的移植,这是一个难点。 ​ 汇编代码在我们的软件过程中表现有若干种形式,第1种是我们纯粹的就用Asm关键字去写汇编代码,第2种是我们用built in函数做一些替换,比如说这里举个例子,像GCC里提供了built in的CRC的32计算的一些加速指令,我们可以去寻找鲲鹏平台上的相应的指令去进行替换,比如说像x86平台上用到的预取的指令,我们也可以去找到鲲鹏平台,上的built in函数去做替换。接下来还有第3种,就是我们可能会用到的Intrisic。Intrisic实际上是在jcc里提供的像C语言可以一样去使用的汇编函数,引出这个Intrisic是在x86平台上和Arm64平台,就相差非常的大。 ​ 在x86的平台上Intrisic总数总数将近达到7000个,7000不到,然后在鲲鹏水平上相差就差的比较多,远远少于这个数,为什么?这是因为在x86平台上它支持的指令集比较多,他自己经过二三十年的演进,对吧?他有mx的指令集,有SSE的指令集,还有AVX,AVX也分了128比特的,256以及500 12比特的三种。 每一种它对应的Intrisic非常的多,所以移植的数量是非常大的。在这个里面我们可以找到一些,比如说对于一个28比特的操作进行一些对应,可以做一些替换。 ​ 针对上面提出的这些问题,比如说我们C,C++刚才提出这些问题,我们就提供了这样几个工具,我们这里提供了分析扫描工具,代码迁移工具。分析扫描工具,就是识别我们软件移植的依赖性,然后去帮助用户做兼容性的排查。然后第2个提供代码迁移的工具是做源码的构建工程工程构建文件,还有C,C++原码以及汇编代码的扫描移植指导。第三个工具就是性能优化工具,我们刚把软件移植到鲲鹏平台之后,我们需要去用这个工具去分析性能,去发现热点,我们也提供了基于鲲鹏平台的一个加速库这么一个概念,一个组件。 这里面就提供了一个软件硬件协同加速用户应用的一个方式。 ![图片9.png](https://bbs-img.huaweicloud.com/blogs/img/1582541991902921.png) ​ 比如说我们这里优化了GDPC基础运行环境,我们优化的压缩、加密、加解密,包括一些数学计算这样一些开源的或者是三方的组建,我们优化了一些IPP信号处理的一些程序功能提升,就是用我们软硬结合的方式极大提升了性能。这里面我们大致分析的一个流程,我们会在分析扫描里面,我们把用户的软件上传到我们的工具环境下,我们工具环境就会分析用户X86平台上软件的安装包,比如说这里的RPM包还有一些JAR、Java类的程序,包括一些压缩包,我们就会去扫描识别里面软件包内部以及软件安装路径内,包括我们压缩包内部的集成的,比如说这些SO件、二进制文件,去检验它是否在鲲鹏平台上不同的操作系统上是否支持,去反馈用户一个一致性的分析报告,会逐个告诉用户SO是否兼容,不兼容的话怎么去处理?我们会提供链接是原码的值,这个是源码级的链接,或者是提供移植文档方式书的这种链接,都会在我们报告里提供出来。 ![图片10.png](https://bbs-img.huaweicloud.com/blogs/img/1582542026766302.png) 我们这个工具提供了两种工作方式,一种是我们通过命令行的方式,下面这种形式通过参数输入,一种是通过这种外部方式,我们在做了安装包的依赖性分析以及原码的扫描之后,会给用户产生一个移植分析指导的报告,这个报告是提供CVS的格式或者是HDM的格式,用户可以去下载,里面就会详细罗列出哪些依赖库,哪些二级制文件需要移植,然后哪些C,C++以及汇编代码,需要移植规模有多大? 会给用户呈现一个移植的工作量,比如以每月为单位提供一个工作量。 ![图片11.png](https://bbs-img.huaweicloud.com/blogs/img/1582542037699483.png) ​ 计算标准,用户是可以自己输入的,比如说你的编正能力强,你一个月C,C++代码,你可以完成800行,汇编代码你可以完成600行,对吧?如果你的移植能力有限,有的编码能力有限,技术成本有限,你可以把它设置成比如说我C,C++代码一个月300行,汇编代码100行,它就会根据不同的标准,计算出你移植工作量,做工程技术上的第1步,第1部信息掌握。 ![图片12.png](https://bbs-img.huaweicloud.com/blogs/img/1582542046872504.png) ​ 这里就列出了我们主要的功能,前面我已经基本赘述了,就是SO文件的检查,构建工程的检查、源文件的检查,评估一致性,然后进行工作量评估,两种方式,外部方式和命令行方式。 ![图片13.png](https://bbs-img.huaweicloud.com/blogs/img/1582542058218793.png) ​ 通过这个工具,我们就可以拿到软件移植的工程量的第1手资料,然后决定是否移植。当决定极值之后,我们就可以用代码迁移工具去做进一步的分析,代码移植工具主要是分析了用户的源代码,还是一样,他着重分析的是makefile,C,C++的源码,就包括我们这里的编译器提供的宏定义,然后用户自定义宏,还有built in函数,Intrisic,还有汇编代码,我们分析完这些内容会提供一个详尽的移植指导,这里面就包含makefile怎么修改?C,C++代码怎么修改? 然汇编代码,我们怎么去修改? ![图片14.png](https://bbs-img.huaweicloud.com/blogs/img/1582542071458973.png) ​ 这里我们只是给移植建议,我们并不去修改用户的原码,用户可以参照着相应的输出我们这里输出的一致报告,去用GTDF的方式,大家去做一个这个对比,然后去把它在工具界面以外用第三方的,比如说用其他的编辑工具把它完成修改。那么这一页我们就列出了我们代码移植工具的一个大致工作流程,同样我们也是外部方式和命令行方式两种方式,方便用户做选择。我们分析用户的源码构建工程,还有公共建工程配置文件,还有C,CC+加的源码或者是汇编源码,然后给出移植知道,那么对于源码的变化,我们会提供对比的方式显示,像这里举的例子就是左边第1点是我们要改哪些文件,就是修改文件列表,第2类就是我们要原文件是什么样子,第3类就是我们建议修改成什么样子? ![图片15.png](https://bbs-img.huaweicloud.com/blogs/img/1582542081512082.png) ​ 这是我们软件移植工具所能提供的能力,我们C,C++,我们这里还是针对C,C++目前为止C,C++的这样编译型语言,去做了建议值,然后我们要有源码,没有源码,也就谈不上移植了。 ​ 好,这就到了我们抽奖的第2次抽奖环节,我们稍事休息。 ![图片16.png](https://bbs-img.huaweicloud.com/blogs/img/1582542092597810.png) ​ 下面我们将画面交给老师,继续授课。 ![图片17.png](https://bbs-img.huaweicloud.com/blogs/img/1582542103833612.png) ​ 前面已经讲了,我们如何去做软件依赖性的分析,通过华为开发套件去做软件依赖性的分析,以及做C,C++的移植,我们在完成移植之后,我们会在生产环境上去跑我们这个软件,我们可能会去做性能分析,这时候我们就会提供一个我们叫做分析的一个工具,这个工具主要是帮助用户去做软件性能定位,比如说你有些性能瓶颈或者有想继续优化,我们这里提供了一些手段,这里对于这个工具我们可以帮助用户去分析处理器相关指标,以及看到调度的一些信息,包括外设的信息,包括CPU、磁盘,甚至网卡、短期性的数据,去帮助用户分析C,C++或者是Java程序这样一个性能指标。 ​ 我们Java类不是说把GBM当成一个进程,我们是看到GBM内部的,还是有一定作用的,还是比较有用的。我们会把这些数据统统的分析起来,然后通过我们自己定的定义的数学模型进行分析,去看到用户的软件性能瓶颈,比如说是资源竞争的问题或者是调度的问题,甚至说比如说有一些bug导致了一些次循环等等的,我们提供了多种的方式来呈现这样一个结果。比如说我们常用的这种火焰图的方式,我们这里能够提供比较直观的可视化方式,帮助用户去看自己的软件里面到底有没有性质上的问题。 ![图片18.png](https://bbs-img.huaweicloud.com/blogs/img/1582542114846009.png) ​ 这个是我们这里是罗列一下我们目前性能分析工具能够提供的性能指标,我们能够看硬件器件相关的,比如CPU、内存、磁盘、网卡、系统级的,我们也能看这种线系统调度以及的比如说进程、线程,还有彼此之间的切换,或者是资源的争抢,锁这样的一些关键变量的这样一些性能分析先行指标,我们也提供了一个基于火焰图、基于代码逻辑的深层次检查,能够提出用户代码的真正的开销,大的地方在哪里,对应的代码对应到源码。 ​ 通过这样一个手段,我们就能帮助客户比较快的去帮助开发者比较快的定位自己的软件,编译形软件的瓶颈。,当定位到软件瓶颈的时候,我们会提供一些附加的能力,比如说这里我们就提供加一个叫加速库,我们软硬结合的加速库帮助用户去优化代码。这个原因是什么?这原因主要是因为我们鲲鹏是一个sock,我们是一个片量系统。 ![图片19.png](https://bbs-img.huaweicloud.com/blogs/img/1582542128204490.png) ​ 除了泰山内核,以及多达48甚至64的内核以外,我们还提供了一些额外的能力,额外的一些引擎,这些加速引擎就可以支持,比如说压缩LZ77的这种算法,还有加解密的,比如说非对称的,还有对称加密的,包括一些常用的变加解密的这样算法,比如说DH编码等等。 ​ 我们还支持了比如说存储用到code等一些这样一些常用的软件算法,我们把它运化成加速器,这种压缩用起来非常简单,就跟我们用一个外设一样,我们只需要从华为的网站上去获取相应的硬件驱动代码,把它安装上之后,我们就可以像一个正常的外设一样去使用它。 ![图片20.png](https://bbs-img.huaweicloud.com/blogs/img/1582542139648078.png) ​ 当然了你要使用我们提供的一些API的话,可能还要遵循一些,比如说我们要提供给用户手册,用户可能要去修改一下自己的源码,比如说可能原来掉的一些是软件的这样一些函数,或者是三方组建的API,这时候可能去要用加速器的话,就需要根据API修改我相应的这个代码逻辑,但这个代码逻辑只是存在于API层面。 ​ 这里举个例子,比如说我们这里集成了一个叫RC的加速的引擎,是用来计算finish加密的,我们支持1024~4096,4种:1024 2048 3072 3096,4种密钥长度。我们在我们加速器引擎里面,我们是通过一个用户态的来libry去做一个隔离,对上去隔离用户的,比如说开源的第三方软件,比如说这里贴到open SSL的的API,我们去对接open SSAPI我们也可以把API暴露出来,直接给用户的APP去使用,在libry下层的就是我们IC引擎的相应的驱动,用户可以完全不用知道下面细节是如何实现的,但是我们通过只要使用我们正确调用鲲鹏RC的提供的用户libry,就可以去使用我们加速器的硬件计算能力,极大的加快了RC的计算。 ​ 其实我们也知道RC计算如果用CPU算的话,那是相当费时费力的。比如说一个像x86的一个中高端的一个call,可能它每秒钟只能执行720次左右的一个RC2048的计算。但是你要用到了鲲鹏920提供的RC计算引擎的话,计算量将是大幅度的提升,也就是说,我可以把原本用来计算RC的这些CPU完全释放出来,跑我的业务!在一个芯片内完成这样业务,就会对用户来讲就会提供另外一个选择,我不需要去买某些PCIE的插卡,我直接去用软件的方式来提升我的软件性能,达到一个比较简单的提升性能的一个方式。 这是我们举的一个例子,在这些里面,在我们移植工具里面,都会去通过我们软件移植的这样一些能力去提供给开发者直接使用。 ![图片21.png](https://bbs-img.huaweicloud.com/blogs/img/1582542154699770.png) ​ 这个是我们几个工具组建的发布的策略,我们目前为止是停留在中间这一列上,我们完成了多OS的适配,比如说我们支持3~4、74、7.5、7.6、7.7、7.8对吧?我们也支持中标麒麟等,我们也支持了像苏C这样一些的操作系统,就是我们尽可能的去帮尽可能覆盖我们常用的这样一些操作系统的类型,我们也支持了GCC的多个版本,我们从4.8.9一直支持到目前为止至少8.3,我们后续会支持到9点几的版本,一直往上支持上去,帮助客户去尽可能的简化一些重复劳动,我们也支持MAC构建工具,也要支持CVK构建工具,未来还会支持automake这样的一个构建工具的一些检查。 ​ 支持C,C++的与代码移植,也支持汇编代码的识别,因为刚才前面说了,从汇编指令的角度来讲,从你Intrisic的数量来讲,这个量非常的大,而且也很有技术挑战的,就是汇编语言的替换,所以这块我们会逐步完善。对于加速这一块,我们是提供一些Intrisic的一些替换,比如说我们有abs或者有SSE。 ​ 我们也去优化了,像一些常用的加速的三方的组件,比如说像一些z-lib的加速或者stapi的一些加速,还有一些scan这种字符扫描的加速的,我们用鲲鹏的指令去进行优化,进行性能提升,取得了比较可观的一个性能改变都是50%,一倍,甚至更多的3,4倍的这样一个性能提升,所以加速的效果还是挺明显的。这样也能让用户的软件应用跑在空间当中跑的更快又快又好。 ​ 如何去获取我们这几个工具,我们可以通过华为的spot网站去下载,也可以通过华为空方社区去下载相应的软件,这上面提供了一些链接。 ![图片22.png](https://bbs-img.huaweicloud.com/blogs/img/1582542164928478.png) ​ 对于我们加速库软件,这里的策略是主要采取开源的这种策略,比如说像JDPC或者一些三方组建的,包括一些压缩算法,压缩引擎的,包括这些软件组件,我们都是把相应的patch去推动到社区里面去。对于硬件加速引擎,我们也是直接可以从华为的鲲鹏社区上去下载,然后去安装使用,取用起来还是比较方便的。 ​ 鲲鹏社区以后就是华为重点建设的一个和开发者沟通的互动的地方桥梁。在这个地社区里,我们就可以下载到数百份的软件移植指导以及相应的软件调优的经验,可以在这里面和其他的开发者做互动,做技术上进一步的探讨。 然后很多新的技术资料、技术文档,包括一些白皮书,一些产品设计方案都会在社区里陆续发布,不同的开发者都能得到一些不同的信息。 ![图片23.png](https://bbs-img.huaweicloud.com/blogs/img/1582542174162472.png) ​ 这里列出来,我们空开发者社区里面如何去得到两工具这几个工具,目前我们这些工具都已经上线了,9月30号是第1版本,9月30号以后我们是每月逐月发布的这样一个节奏,这个节奏将延续到2020年,就是说我们不是一个短期行为,我们会一直从开发者的需求角度来出发,去把这个工具做的更加应用,更加方便帮助用户完成C,C++加代码的90%的工具化移植。 ![图片24.png](https://bbs-img.huaweicloud.com/blogs/img/1582542184997265.png) ​ 其实在鲲鹏的开发的平台里面,因为鲲鹏是空中平台,是一个新生事物,对吧?对于x86而言是一个新生事物,在这个里面我们也能感受到,随着鲲鹏计算平台的壮大,应用越来越多,需要大量的开发者去投入到平台的生态建设里面来。所以华为在这里推出了这种线上认证培训的这么一系列的技能提升的活动,包括在线课程,包括云端的实验室,包括线上认证和线下培训,希望大家能够积极参与,来共同构建华为鲲鹏的生态软件生态。 ![图片25.png](https://bbs-img.huaweicloud.com/blogs/img/1582542194233230.png) ​ 这里提到一个华为鲲鹏认证开发工程师这么一件事情,就是HCIA认证认证其实在华为内部还在对华为来讲还是蛮有价值的,对开发者来讲也是很有价值的。因为你通过了认证之后,在一定程度上将会成为你进入华为从事软件开发的一个直通车。 ![图片26.png](https://bbs-img.huaweicloud.com/blogs/img/1582542204310188.png) ​ 所以大家可以关注一下相关的一些培训认证的信息,去找到一个适合自己的方向,然后去在一个更大的舞台上,我们一起来构建华为鲲鹏的软件生态环境,让华为鲲鹏做得越来越好。 ![图片27.png](https://bbs-img.huaweicloud.com/blogs/img/1582542215417542.png) ​ 现在线上提供了华为文档中册这么一个活动,希望开发者通过扫描二维码来参与到我们华为空投文档的这一个测试活动,因为华为文档、鲲鹏文档实际上是我们近几年来在鲲鹏平台上的软件移植、调优,包括软件优化,包括软件开发的一系列经验总结。 ​ 这里面文档非常多,大家可以去找自己感兴趣的去无论是学习也好,还是去交流也好,大家可以在鲲鹏的开发者社区上去留言互动,我们会有相应的开发工程师及时来和大家来响应。 ![图片28.png](https://bbs-img.huaweicloud.com/blogs/img/1582542227334819.png) ​ 好,这就到最后一个提问互动环节了。线上的开发者有什么问题吗?我们可以交流一下。 ​ 主持人:刚才老师在讲的过程中,我们也在线下将这些问题进行了梳理,现目前老师就进行一个答疑的环节,老师我把问题给到您,您可以看一下。 ​ 老师:第1个问题是王涵,他这个问题是软件移植是基于同样的操作系统移植吗?我们的软件系统不是一个可以是相应平台,也就是说我们软件可以跑在其他软件上,但是我最终的软件移植可能是移植在一个乌帮图上,甚至说一个中标70上。这时候就是我们支持一个相应软件的移植,其实对我们来讲,重点要关注的就是你的软件运行依赖库或者是安装依赖库的一个兼容性问题,就是我们后面一个花了巨大人力去积累的一个清单,兼容性清单。从技术角度来讲,在非常大的程度上去满足这种建设性清查。 ​ 第2个问题,从x86移植到鲲鹏,会不会导致性能急剧下降?要看应用的类型。就说如果你是一个纯粹的C,C++做一些通用计算的话,我能说是不会,但是如果说你C,C++里面非常高级的,你用了一些底层的汇编,如果用到了一些x86所独有的,比如说AVX4做一些向量化计算,或者是做一些这种高并发的计算,我不得不坦率的告诉你,性能软件,因为AVX指令或者是不管无论是256比特大概是512比特,在鲲鹏920平台上现在是没有对应,但是以后会有对应。 ​ 这个以后我目前我也不能说是什么时候对吧?但是这是一个长期的演进的计划和过程,所以这个说我只能先告诉你,如果你要用到这些AVX指令,我们是有性能差异的。坦白的来讲,对吧?有一说一。 ​ 然后还有一个问题,鲲鹏与手机处理器都是基于惊险指令集,能否认为可将手机一起底层的功能移植到鲲鹏平台上?这个是我们现在可能常说的所谓的叫端边云融合,实际上做手机端开发,我们可能更多的是基于安卓的系统,然后做一些用一些Java类的语言,然后我们的应用可能是编译成字节码跑的GVM上,对吧? ​ 从这个角度来讲,如果说你单纯从语言,我可能说差异并不大,你可能在鲲鹏平台上你可以方便的装一个安卓模拟器,对吧?通过这种方式,我们华为鲲鹏也提供这样这样一个解决方案,让你可以跑一个云手机,在官方平台上看云手机,跑得非常的高效,非常的高效,这个也能满足,所以从这个角度来讲,我们提供了一套解决方案,是没有任何没有任何问题。 ​ 第三个问题,Java代码如何移植?这个问题在前面的胶片上我们已经看了,因为Java属于这种字节码运行的,于强依赖于他的roundtime环境,在我们华为鲲鹏平台上,我们是完美支持open jdk的,所以你用open jd1.8或1.9甚至更高的版本,这个是从Java,代码语言本身来讲是没有问题的。 ​ 但是如果说你Java里面非常高级的,你又嵌套了一些C的一些API,请把C单独的源码拿出来做一些一致性的检查。 ​ 第四个问题,目前提供什么移植工具?Java刚才说的,我们在这个工具里面不去做涵盖检查,除非你Java,或者是像类似于这种Python,你用到了一些C编译成的SO文件用到一些C提供的API,我们是要检查。 ​ 最后一个问题,还有10%的代码可以如何迁移?但是这个问题问得很好,我们刚才前面其实我已经提到了,因为指令集的差异,对吧?包括C里面的编译器里面提供了一些built in对应函数的一些差异,可能有些built in如果大家去细细看的话,看C++的源码的话,你会发现有些标的函数用的是AVX的指令,甚至是SSE的一些指令,这些指令可能在鲲鹏平台上目前并不支持,所以从这种角度来讲,我们没办法给你做到这种100%的对应。 ​ 但这个就是我们所提到的一个缺陷,因为从我们华为软件移植的既往经验来讲,可能真正的汇编代码在一个大的工程里面,可能它所占的比例是比较有限的,而这部分的代码里面又用到了AVX,甚至于说和华为共同完全不兼容的,这样功能性上不兼容的指令是又更加少一些,所以这就是我们所说的,我并不能保证100%去支持这样一个软件的移植,所以我们也在不断的演进,谢谢! ​ 主持人:希望大家多多关注我们的鲲鹏社区,今天老师主讲的内容我们已经上传到了鲲鹏社区,大家可以对资料进行一个下载,再进行一些学习都可以的,因为鲲鹏社区,它汇聚了我们鲲鹏的最新的一些知识问答,也汇聚了一批我们行业的专家,大家有什么问题的话都可以在鲲鹏社区上进行一个留言,我们的专家会进行一个及时的回复,相关的技术包、安装包以及相关的一些学习资料上面也比较齐全,如果关注鲲鹏的话,可以到上面去进行一个获取。 ![图片29.png](https://bbs-img.huaweicloud.com/blogs/img/1582542239969021.png) 摘自:https://bbs.huaweicloud.com/blogs/150572
  • [新手课堂] 如何正确的购买鲲鹏云服务器?
    **步骤一:** ​ 返回华为云首页,点击华为云首页"产品",显示下拉菜单如图所示,选中左侧的"基础服务",并选择"弹性云服务 ECS"功能插件,进入弹性云服务界面,点击立即购买 ![img](https://bbs-img.huaweicloud.com/blogs/img/1590862737017095722.png) ![img](https://bbs-img.huaweicloud.com/blogs/img/1590862774438030854.png) ​ ​ **步骤二:** ​ 弹出鲲鹏云服务器购买界面,进行基础配置,选择计费方式为"按需计费"、区域为"华北-北京四"、可用区为"随机分配"、CPU架构为"鲲鹏计算" ​ 根据项目要求选择相应规格,在这里我选择鲲鹏通用计算型kc1.large.2 ![img](https://bbs-img.huaweicloud.com/blogs/img/1590862811139022782.png) ​ ​ **步骤三:** ​ 镜像:Centos 7.6 64bit with ARM(40G) ​ 系统盘:高I/O 40G ![img](https://bbs-img.huaweicloud.com/blogs/img/1590862839920071129.png) ​ ​ **步骤四:** ​ 点击下一步进入网络配置,选择网络为"vpc-myvpc"、安全组为"sg-myvpc" ​ 选择弹性公网IP为"现在购买"、线路为"全动态BGP"、公网带宽为"按流量计费"、带宽大小为"300Mbit/s" ![img](https://bbs-img.huaweicloud.com/blogs/img/1590862908663011191.png) ​ ** ** ​ **步骤五:** ​ 点击下一步进入高级配置,设置云服务器名称为"ecs-kunpeng"、登录凭证为"密码"、密码"自行设置"(不要使用过于简单的)、云备份为"暂不购买" ![img](https://bbs-img.huaweicloud.com/blogs/img/1590863105646046087.png) ​ ​ **步骤六:** ​ 确认配置,并勾选协议,点击立即购买 ![img](https://bbs-img.huaweicloud.com/blogs/img/1590863141707036897.png) ​ 点击立即购买,返回鲲鹏云服务器控制台,购买完成! ​ 以上就是鲲鹏云服务器购买的全部教程。
  • [新手课堂] 华为鲲鹏920与英特尔至强8180对比
    网上有不少质疑鲲鹏cpu性能的声音,这本来是好事,可以鞭策华为的进步,但是,如果在不了解具体性能对比的情况下单纯为了质疑而质疑,就有点不明智了。 大家常用来对比的对象就是英特尔,特别是它的至强系列服务器cpu,客观的说,鲲鹏和至强有一定的差距,但是远没有大家想象的那么扩张,网上也有一些对比,比如it之家的,两者都是拿4核心16G的Centos系统做压测,结果是差不多,各有所长,还有其他一些对比,是单核英特尔强,多核鲲鹏更胜一筹,没有多方面谁彻底碾压谁的情况。 以下介绍和英特尔至强8180的对比情况。 首先介绍一下8180,性能参数如下(来源intel官网): ![1594903797491053075.jpg](https://bbs-img.huaweicloud.com/blogs/img/1594903797491053075.jpg) 价格没找到,从以前的新闻截了张图,大概1万美元,8万人民币左右: ![1594903825968009532.jpg](https://bbs-img.huaweicloud.com/blogs/img/1594903825968009532.jpg) 鲲鹏920规格如下: ![1594903848098082678.jpg](https://bbs-img.huaweicloud.com/blogs/img/1594903848098082678.jpg) 鲲鹏cpu不知道具体的价格,估计也不便宜。 鲲鹏和至强高中低三挡对比如下: ![1594903874551049928.jpg](https://bbs-img.huaweicloud.com/blogs/img/1594903874551049928.jpg) 根据跑分和能耗对比,两者没有非常大的差距,在企业级应用中,这些都不会构成根本的问题。 当然,两者架构不同,单纯就某一项对比也不太公平,但是,总体上来说,两者是可以相比的cpu,不是天上地下的区别,我们既不能妄自尊大,也没必要妄自菲薄,还是实事求是,脚踏实地,在自己的道路上稳步前进。 本文摘自:https://bbs.huaweicloud.com/blogs/185122
  • [交流分享] python模块ray-1.8.0在鲲鹏服务器上的编译安装
    一般安装方式为:pip install ray-1.8.0但是pipy库里面没有arm64的版本,因此这个命令在鲲鹏服务器上执行会提示找不到资源。源码编译安装方法有两种。编译成功的时候相关软件版本信息如下:Gcc:GCC for openEuler-10.3.1Bazel:4.2.1Python:3.7.9/3.9.101,安装GCC for openEulermkdir -p /opt/aarch64/compilercd /opt/aarch64/compilerwget https://mirror.iscas.ac.cn/kunpeng/archive/compiler/kunpeng_gcc/gcc-10.3.1-2021.09-aarch64-linux.tar.gztar -xf gcc-10.3.1-2021.09-aarch64-linux.tar.gzexport PATH=/opt/aarch64/compiler/gcc-10.3.1-2021.09-aarch64-linux/bin:$PATHexport INCLUDE=/opt/aarch64/compiler/gcc-10.3.1-2021.09-aarch64-linux/include:$INCLUDEexport LD_LIBRARY_PATH=/opt/aarch64/compiler/gcc-10.3.1-2021.09-aarch64-linux/lib64:$LD_LIBRARY_PATHgcc --version2,下载ray-1.8.0源码并安装yum install psmiscpip3 install cython==0.29.26 pytestgit clone https://github.com/ray-project/ray.git -b ray-1.8.0vim ray/bazel/BUILD.redis #注释23行并添加make -j 64 -C "$${tmpdir}" MALLOC=libcray/ci/travis/install-bazel.shpushd ray/dashboard/clientnpm installnpm run buildpopdcd ray/pythonpip3 install -e . --verbose到这一步,如果可以正常编译安装,可以再执行python3 setup.py bdist_wheel命令在当前目录的dist目录下生成whl安装包。如果编译报错,可以使用以下方式编译查看编译过程中的报错信息:cd .. #回到ray源码目录bazel build --sandbox_debug -c fastbuild //:ray_pkg
  • [热门活动] 【活动已结束,获奖名单已公布】【鲲鹏DevKit训练营】开营啦,硬核技术、荣誉认证、超级大奖,等你来拿!
    恭喜以下用户在“训练营互动”和“结营分享”环节获奖,请所有获奖用户于8月2日前登录鲲鹏社区完成实名认证,逾期未完成实名认证视为自动放弃奖品,谢谢配合 :)-->如何在鲲鹏社区完成实名认证?点击查看-->如实名认证时所用的手机号码和公示名单中的不同,请微信联系“鲲鹏小助手”说明情况(本帖下方有“鲲鹏小助手”二维码),以免奖品发放失败,谢谢 :)-->如有任何问题可以联系“鲲鹏小助手”或联系邮箱号:kunpeng@huawei.com。时习知昵称姓名电话收货地址获奖环节奖品小知6AEXEH8P张*达153****5063河南省固始县********开营仪式互动奖华为手环 4e不耀不耀罗*176****5035湖北省咸宁市********村开营仪式互动奖华为手环 4e小知4JECCQBQ张*凯198****2371河北省沧州市********村51号(devcharge)第一次大咖面对面互动奖华为快充移动电源小知GEX9WNAU安*林187****2375河南省郑州市********鸟驿站第一次大咖面对面互动奖华为快充移动电源小知YY7MXHZF王*181****0621贵州省六盘水********六盘水**学院第一次大咖面对面互动奖华为快充移动电源小知YY7MXHZF王*181****0621贵州省六盘水********六盘水**学院第一次大咖面对面互动奖华为快充移动电源小知AT27TXJW库*157****2956河南省济源市********第一次大咖面对面互动奖华为快充移动电源小知SBQGNZ2R邱*菊133****8463广东省深圳市********湖镇平湖*****33栋一楼(西洪制品有效公司)第二次大咖面对面互动奖华为快充移动电源小知24JE8CK8何*173****7091江西省赣州市********村蛇头蛹89号第二次大咖面对面互动奖华为快充移动电源小知4JECCQBQ张*凯198****2371河北省沧州市********村51号(devcharge)第二次大咖面对面互动奖华为快充移动电源小知NV6AR6SW谢*生185****8059湖北省武汉市********8号都市**3栋第二次大咖面对面互动奖华为快充移动电源195******12乔*南195****6812湖北省襄阳市********河街道第二次大咖面对面互动奖华为快充移动电源小知FDCDLG4W乔*南195****6812湖北省襄阳市********河街道第三次大咖面对面互动奖华为快充移动电源小知NV6AR6SW谢*生185****8059湖北省武汉市********8号都市**3栋第三次大咖面对面互动奖华为快充移动电源小知Q86PLF8L于*洋195****3528河南省安阳市********第三次大咖面对面互动奖华为快充移动电源高宇琦高*琦137****4804山西省太原市********中心广场**110第三次大咖面对面互动奖华为快充移动电源高宇琦高*琦137****4804山西省太原市********中心广场**110第三次大咖面对面互动奖华为快充移动电源157******82王*航157****8382河南省洛阳市********山乡上寨村结营仪式互动奖华为智能体脂秤 3小知24JE8CK8何*173****7091江西省赣州市********村蛇头蛹89号结营仪式互动奖华为智能体脂秤 3小知9YHUNCQL燕*聪183****8725河南省洛阳市********信产业园结营仪式互动奖华为智能体脂秤 3小知4JECCQBQ张*凯198****2371河北省沧州市********村51号(devcharge)结营仪式互动奖华为智能体脂秤 3Bobby谢*生185****8059湖北省武汉市********8号都市**3栋结营仪式互动奖华为智能体脂秤 3/艾*181****3265广西南宁市青********结营仪式分享奖HUAWEI FreeBuds 4i 无线耳机/历*一156****0950天津市蓟州区********村结营仪式分享奖HUAWEI FreeBuds 4i 无线耳机/何*173****7091江西省赣州市********村蛇头蛹89号结营仪式分享奖HUAWEI FreeBuds 4i 无线耳机/杨*宇177****2284河南省焦作市********号结营仪式分享奖HUAWEI FreeBuds 4i 无线耳机/谢*生185****8059湖北省武汉市********8号都市**3栋结营仪式分享奖HUAWEI FreeBuds 4i 无线耳机恭喜以下用户在"输出原创笔记"、“大作业”、“总积分排名”、“结业证书”环节获奖,请所有获奖用户于7月28日前完成数据核实,逾期未反馈则不可更改;于8月2日前登录鲲鹏社区完成实名认证并反馈收件信息,逾期未完成实名认证视为自动放弃奖品,谢谢配合 :)  -->如何在鲲鹏社区完成实名认证?点击查看-->点击此处填写收件信息-->如实名认证时所用的手机号码和填写收件信息中的不同,请微信联系“鲲鹏小助手”说明情况,以免奖品发放失败,谢谢 :)注意:下面名单在7月28日前可能存在更新:因统计量较大,可能存在统计遗漏等情况,请所有用户尽快核实数据,如有问题请于7月28日前微信联系“鲲鹏小助手”说明情况,以免奖品发放失败,逾期未反馈则不可更改,谢谢 :)论坛昵称所获奖项所得奖品Tianyi_Li最佳笔记奖HUAWEI背包乌龟哥哥最佳笔记奖HUAWEI背包allen1088最佳笔记奖HUAWEI背包昵称所获奖项所得奖品allen1088最佳人气奖华为智能体脂秤 3bobby202000最佳人气奖华为智能体脂秤 3yd_255116640最佳人气奖华为智能体脂秤 3昵称总积分排名所得奖品是否反馈收件信息 昵称总积分排名所得奖品是否反馈收件信息Tianyi_Li355.61HUAWEI MatePad Pro 10.8英寸是yd_263708187103.626HUAWEI 蓝牙鼠标是乌龟哥哥2382HUAWEI WATCH GT 2 Pro 运动款是yd_23393291310227HUAWEI 蓝牙鼠标是allen1088219.23HUAWEI FreeBuds 4 真无线耳机是yd_210831760100.428HUAWEI 蓝牙鼠标是yvan1010178.24华为手环 6 Pro是yd_25695809499.629HUAWEI 蓝牙鼠标是yd_2224024831655华为手环 6 Pro是yd_24388067598.230HUAWEI 蓝牙鼠标是yd_2164116151606华为手环 6 Pro是yd_2568386459731华为mini蓝牙音箱是yd_255116640144.27华为手环 6 Pro是gedeshidai9632华为mini蓝牙音箱是YanYC123.48华为手环 6 Pro是yd_23648868690.833华为mini蓝牙音箱是bobby202000121.89华为手环 6 Pro是yd_2227174509034华为mini蓝牙音箱是yd_243626229121.810华为手环 6 Pro是yd_2773592378435华为mini蓝牙音箱是yd_22687905312011HUAWEI 蓝牙鼠标是yd_2729092938436华为mini蓝牙音箱是yd_275846843119.812HUAWEI 蓝牙鼠标是yd_22970691680.237华为mini蓝牙音箱是duanlongtao118.813HUAWEI 蓝牙鼠标是yd_2137326747838华为mini蓝牙音箱是yd_260498440118.614HUAWEI 蓝牙鼠标是yd_2963930787839华为mini蓝牙音箱是ZhangYJ11715华为mini蓝牙音箱是yd_2233960527740华为mini蓝牙音箱是yd_249086878115.616HUAWEI 蓝牙鼠标是yaowuerqierer69.841华为mini蓝牙音箱是纸伞下的烟雨113.617HUAWEI 蓝牙鼠标是yd_2589384066742华为mini蓝牙音箱是二一横扫11318HUAWEI 蓝牙鼠标是tang1212126543华为mini蓝牙音箱是yd_245847103112.819HUAWEI 蓝牙鼠标否yd_2699000126444华为mini蓝牙音箱是Oxide11020HUAWEI 蓝牙鼠标是yd_29429684758.245华为mini蓝牙音箱是yd_214435283109.221HUAWEI 蓝牙鼠标否hw102801075549.646华为mini蓝牙音箱是18337615352109.222HUAWEI 蓝牙鼠标是yd_2263642904847华为mini蓝牙音箱是yd_22289020510823HUAWEI 蓝牙鼠标是满目星河4048华为mini蓝牙音箱是yd_24789633110724HUAWEI 蓝牙鼠标否惘纬3649华为mini蓝牙音箱是yd_216413588105.425HUAWEI 蓝牙鼠标是yd_2989137013650华为mini蓝牙音箱是获奖【鲲鹏DevKit训练营】“结业证书”的名单如下,证书将于7月底左右发放至您的用户个人中心,届时请登录鲲鹏社区查看,谢谢:)昵称 昵称昵称allen1088yd_245847103yd_226879053bobby202000yd_243880675duanlongtaoyd_222890205纸伞下的烟雨yd_255116640yd_247896331二一横扫yd_272909293yd_216413588yd_275846843gedeshidaiyd_229706916Tianyi_Liyd_222402483yd_214435283yd_216411615yd_260498440yd_249086878Oxideyd_223396052ZhangYJYanYCyd_210831760yd_23393291318337615352yd_236488686yd_243626229yd_213732674分享至社交媒体用户获奖名单如下:昵称 昵称JaneConan乌龟哥哥linghz666yaowuerqiereryd_268533731hw1028010755yd_272909293yvan1010氟西汀yd_223396052如公布数据有差错,请于7月28日前微信联系“鲲鹏小助手”说明情况(本帖下方有“鲲鹏小助手”二维码),逾期未反馈则不可更改,谢谢 :)昵称课程打卡积分 昵称课程打卡积分 昵称课程打卡积分 昵称课程打卡积分GOD·裁决之神10gedeshidai7yd_2620878683yd_2504251641allen108810yd_2816484827yd_2764464173yd_2429829271bobby20200010yd_2805249987yd_2122042092yd_2776953471惘纬10yd_2844549017yd_2800329362yd_2904912331yd_27268366810yd_23648868610Zzt_2yd_2192284751满目星河10yd_2655313507yd_2142732072yd_2170824551yd_22617750310yd_2224024837yd_2477099622yd_2705024111yd_24789633110yd_2858201376yd_2545079372yd_2946566181yd_22970691610雯玲6yd_2539763132yd_2938910131yd_21443528310yd_2784434476yd_2767945362yd_2643884301yd_29891370110yd_2329419376yd_2833216532yd_2908951561ZhangYJ10yd_2701878436yd_2489515972yd_2314966351yd_23393291310yd_2282090495yd_2633945082yd_2401298621yd_24362622910yd_2714100525yd_2287580002yd_2792719121yd_26990001210yd_2929298855yd_2686219722yd_2614255061yd_24584710310yd_2754455715yd_2207108862yd_2849791551yd_24388067510yd_2236937415yd_2552997432yd_2352118461纸伞下的烟雨10yd_2253074265yd_2519637862yd_2597886701yd_21083176010yd_2998218015yd_2358243592yd_2339729081二一横扫10yd_2729092938yd_2643843882yd_2220280451yd_27584684310yd_2195243864yd_2353234312yd_2563383821yd_21641161510yd_778237484yd_2844016242yd_2564116831Oxide10柒烨尘4yd_2308684612yd_2369799121YanYC10yd_2730409184yd_2526985462yd_23218345111833761535210yd_2802050654yd_2873932742yd_2302852331yd_26370818710yd_2103846574yd_2901007672yd_2764447871yd_26049844010yd_2446864354yd_2365057362yd_2894214961yd_22339605210yd_2638034644yd_2861298802yd_2370427371yd_25893840610鲸小小4yd_2844986872yd_2525988161yd_25683864510树树树4yd_2802393202yd_2132263831yd_21846809210yd_2963930784yd_2591390612yd_2820782081河南科技大学杨磊10多多看星星4QQ星小天才2yd_2279593941yd_22271745010yd_2419937023yd_2176314782yd_2237071401yd_22289020510且敛凤翼3yd_2421129402yd_2286670591yd_28546956710yd_2431787273yd_2477287201yd_2100772501yd_24038625910yd_2901252833yd_2674015701yd_2650165821yd_21641358810yd_2530243813构造悖论1yd_2130670931yd_24908687810yd_2433120063yd_2602210071yd_2398770441yd_24170915610yd_2551647973yd_2387714731yd_2481535841yd_28014454110yd_2728760473yd_2960317641yd_2595735471yd_27735923710yd_2922752193yd_2191128181yd_2233091151乌龟哥哥10yd_2496957693yd_2831205921yd_2193168621Tianyi_Li10yd_2140095573yd_2123240741yd_2213084181yd_22636429010yd_2303583433yd_2303910981yd_2134328461duanlongtao10yd_2297209373愿风载尘1yd_2526387421yd_2442208598yd_2777797163yd_2773985641yd_2931902461yd_2286428618Nicole_w3yd_2905536341linghz6661yd_2137326748yd_2541218873yd_2925714371yd_2811275681yd_2401730408yd_2846501893yd_2825504151yd_2273188401yd_2740982298yd_2540423583yd_2864715461yd_2570614361yd_2942968478yd_2872449743yd_2602786961yd_2408244781yd_2395683728yd_2411911853yd_2854844271兴隆湖畔~重装工程师1yd_2904661468yd_2442241563yd_2523807271yd_2940480321yd_2569580948yd_2904556223yd_2819092931yd_2618850601yd_22687905310yd_2329368883yd_2592454851玉龙壹1yd_25511664010yd_2161567973yd_2222291021yd_2469877521yd_2600682258yd_2688292693yd_2684604461yd_2417104801通过【鲲鹏DevKit训练营】活动,邀请朋友获得积分详情如下:推荐码邀请所得积分 推荐码邀请所得积分53**42123733**8984935**47104195**10821**4293234**19195**343750**52116**83184**47183**99184**21190**25198**851备注:每一次有效课程打卡,可获得1个积分。扫描下方二维码即可添加“鲲鹏小助手”微信点击查看更多活动详情7月19日结营仪式直播回放,点击观看7月14日大咖面对面活动直播回放,点击查看7月12日课程直播回放,点击查看7月7日课程直播回放,点击查看7月5日课程直播回放,点击查看6月30日大咖面对面活动直播回放,点击查看6月28日直播课程回放,点击查看6月23日课程直播回放,点击观看6月21日课程直播回放,点击观看6月16日大咖面对面互动直播回放,点击观看6月14日课程直播回放,点击观看6月9日课程直播回放,点击观看6月7日课程直播回放,点击观看6月2日课程直播回放,点击观看5月31日开营仪式直播回放,点击观看点击报名点击查看【鲲鹏DevKit训练营】学习笔记发布帖点击查看【鲲鹏DevKit训练营】提交作业帖 第三次DevKit训练营小作业-鲲鹏性能分析工具>>点击答题  第二次DevKit训练营小作业-编译调试&开发框架插件>>点击答题  第一次DevKit训练营小作业-鲲鹏软件迁移实践>>点击答题 招募优秀学员共同参与训练营“结营仪式”,与讲师连线分享您的学习经验、心得!招募名额:3-5名申请条件:完成10讲课程打卡、3次小作业、3次实操作业、至少输出原创笔记1篇活动奖励:顺利完成“结营仪式”分享活动的用户,将获得HUAWEI FreeBuds 4i 无线耳机一副参与方式:微信联系工作人员saliwatiki活动规则1)请务必使用个人账号参与活动(IAM、企业账号等账号参与无效)。2)所有获得华为奖项的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。3)本次活动如一个实名认证对应多个账号,只有一个账号可领取奖励;一个实名认证账号只能对应一个收件人,如同一账号填写多个不同收件人或不同账号填写同一收件人,均不予发放奖励。4)为保证您顺利领取活动奖品,请您提前填写奖品收货信息,如您没有填写,视为放弃奖励【点击此处填写信息】。5)活动结束且用户填写完成领奖信息后,30个工作日内发放奖品,发放时间根据实际情况动态调整,如有延期敬请见谅。6)本次活动幸运奖将采用巨公摇号平台(https://www.jugong.wang/random-portal/)进行抽取,如您对评奖方式有异议,请勿参加本次活动。7)其他事宜请参考【鲲鹏论坛活动规则】,本活动最终解释权归华为云所有。额外福利:邀请好友报名活动,赢HUAWEI Mate Xs 2 等好礼1. 点击“邀请好友”,获得推荐码。2. 将“推荐码”和活动链接分享给好友,让好友报名时填写“推荐码”。3. 朋友通过“推荐码”报名成功,邀请者即可获得1个积分。4. 累计获得积分,即可兑换好礼。5. 更多详情请查看>>【鲲鹏社区推荐官】推荐朋友报名活动常见FAQ1、看完直播后有疑问怎么办?请前往鲲鹏论坛,点击“发表主题”、选择【问题求助】发帖后,会有专家回帖答复您的。2、如何打卡签到?在观看课程直播的过程中,回复:签到,然后截图此页面并在本帖回帖次截图;回帖时点击左侧的“回复”- 点击图片标志 - 上传图片后,点击确定。
  • [行业资讯] 鲲鹏信息物联网技术获科技进步奖特等奖 射频感知核心芯片自主可控
     凭借团队在自主物联网领域十年的探索,天津鲲鹏信息技术有限公司取得147项发明专利,打破了国外技术封锁,掌握了自主物联核心关键技术。其“物联网射频感知核心芯片研发与应用”,荣获天津市科技进步奖特等奖。  作为物联网四大关键技术之一,射频感知技术是物联网实现物理世界与信息世界融合的重要纽带,具有广阔的应用前景。针对我国射频感知核心芯片受制于国外、存在卡脖子风险的现状,该项目聚焦标签芯片、读写器芯片、存储器IP核,解决了射频感知核心芯片自主可控问题。  “电子标签利用了最核心的射频感知技术,它是二维码技术的升级,最远可以在50米外读到它的信息,并能同时读取1000多个信息。”鲲鹏信息总经理李润泽拿着企业自主研发的电子标签告诉记者,“鲲鹏重点是设计里面的芯片,就是电子标签中的这个小黑点。”  一张小小的电子标签看起来非常不起眼,但里面所应用的射频识别等高新技术却常年被国外企业垄断。鲲鹏信息公司是国内自主物联网领域最早一批开展自主射频识别技术探索的单位,拥有包含标签芯片、标签、读写器等RFID全系列自研设备产品,并打造了一条自主物联网产业链,成为我市信创产业新的增长点。  在鲲鹏信息公司的大楼外,1∶1比例的全球集装箱智能终端试验舱非常显眼。在这个特殊的集装箱上,多个物联网传感器搭载其中。鲲鹏信息公司打造的智能集装箱全球定位系统,使用者只需在电脑终端前动动手指,就能够获悉集装箱的位置、干湿度、物品情况等信息。  除了智能集装箱,鲲鹏的成果还被公安部采纳为机动车电子标识,已在天津、武汉、深圳、无锡等全国20多个城市成功实施,市场占有率高达79.3%。同时,该成果还在中石油、香港铁路、航天科技、中核等企业应用。这个项目产生直接经济效益3.72亿元,带动间接经济效益约20亿元。
  • [问题求助] 【鲲鹏裸金属服务器】鲲鹏920技术文档
    因为性能分析的需要,请问一下有鲲鹏920的详细技术文档吗
  • [问题求助] 关于云手机鲲鹏服务器配置问题,麻烦技术大佬们给出问题答案谢谢!
    【功能模块】https://support.huaweicloud.com/twp-kunpengcps/kunpengcps_19_0012.html【操作步骤&问题现象】1、按照上面官网给的服务器配置表   请问按照这个三个配置去虚拟出云手机 能出多少台云手机?2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [问题求助] mssql数据库的鲲鹏适配迁移
    有谁做过mssql数据库的鲲鹏适配迁移
  • [问题求助] 鲲鹏服务器适配ceph
    【功能模块】ceph版本14.2.10块存储、文件存储及对象存储【操作步骤&问题现象】1、ceph-deploy mon  create-initial报错日志详见附件包【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [问题求助] 【华为鲲鹏920 Robox】【环境搭建功能】robox起来后可以看到界面,但是鼠标无法操作
    【功能模块】Robox【操作步骤&问题现象】1、按照步骤搭好环境,通过./robox -v start 1 启动实例后,看到robox的界面。2、用鼠标操作没反应。通过adb shell进到容器后,getevent命令也没捕获到Input事件。【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [问题求助] 求讲解或推荐基于鲲鹏处理器实现操作系统内核的资料
    # 项目 面向鲲鹏处理器实现操作系统内核 # 问题 无法找到有关鲲鹏处理器bootloader流程的说明,内核加载的地址位置等,因此不知道如何使用arm64汇编实现鲲鹏处理器的bootloader 无法找到有关鲲鹏处理器的外设说明,例如GPIO引脚,UART设备等,因此不知道如何实现字符输出
总条数:2907 到第
上滑加载中