本文分享自华为云社区《鲲鹏DevKit 23.0:流水线中便捷迭代鲲鹏版本,迁移、开发、调优无缝衔接》,作者:华为云社区精选 。

数字时代,海量的行业应用驱动着多样性算力的飞速发展,以鲲鹏为代表的ARM架构驶入快车道。为了帮助广大用户和开发者快速适应鲲鹏生态,四年前,鲲鹏开发者套件 DevKit(下文简称“鲲鹏 DevKit”)正式发布,提供迁移、开发、编译调试、测试、调优&诊断等覆盖全研发作业流程的能力,实现鲲鹏应用的极速迁移、极简开发。

四年来,鲲鹏DevKit研发团队持续创新,围绕着开发者的核心诉求不断丰富和提升工具的功能、性能和易用性。9月22日下午,在华为全联接大会2023鲲鹏DevKit分论坛上,鲲鹏DevKit的技术专家们详细解读了鲲鹏DevKit 23.0版本即将上线的最新能力,并且邀请了华海智汇、志凌海纳等行业伙伴,共同分享基于鲲鹏DevKit的原生开发实践。

鲲鹏DevKit 23.0持续升级:增强场景化原生开发能力,全新架构让工具更易用

“鲲鹏DevKit是面向鲲鹏的全作业流提供一站式的开发工具,四年来,我们对工具持续开发和优化,提高迁移和性能分析的效率,加速鲲鹏原生开发,使得鲲鹏的应用能够极速迁移、极简开发、极致性能和极致体验。”鲲鹏DevKit项目经理马德强介绍道。

  • 极速迁移:针对有源码应用的迁移,鲲鹏DevKit能够自动识别TOP 10 常用语言的不兼容的代码和依赖文件,并且快速修改替换,实现解释型应用Hour级迁移,编译型应用Day级迁移;针对无源码应用(如商业闭源软件、存量软件找不到源码),鲲鹏DevKit提供动态二进制指令翻译工具ExaGear,在软件执行过程中把x86二进制指令翻译成鲲鹏指令,性能损耗最低在10%。
  • 极简开发:鲲鹏DevKit针对原生开发场景提供丰富的SDK、启发式编程、鲲鹏亲和分析、毕昇编译器、鲲鹏调试器、以及全场景调优等能力,引导用户在开发过程中充分应用鲲鹏架构优势,快速开发出高性能的鲲鹏原生应用。今年下半年鲲鹏DevKit还即将上线安全SDK 2.0、HPC场景2000+RANK的大规模并行调试,以及AI驱动场景化性能调优等能力,让安全应用改造更便捷、应用调试和调优更高效。
  • 全新架构:下半年鲲鹏DevKit将实现迁移、开发、编译调试和性能分析四个工具合一,解决以往多工具重复登录、来回切换、流程繁琐等问题,用户可以自行勾选需要的功能、一键安装、融合使用,构建以代码为中心的开发流程,实现迁移、开发、调优无缝衔接;此外,应用迁移和亲和分析能力还可以“零”代码快速接入企业现有开发流水线中,不改变原开发流程更加便捷迭代鲲鹏版本,今年上半年已经实现了Jenkins的快速接入,下半年还将实现华为云CodeArts Pipeline的快速接入。

原生开发持续增强:安全应用改造更便捷、HPC应用调试更高效、性能调优更智能

在鲲鹏原生开发方面,鲲鹏DevKit持续提升面向不同场景的开发、调试、调优的效率,在即将上线的10.30版本中,支持以下能力:

  • 升级安全SDK 2.0、快速改造安全应用:安全SDK 2.0提供高级语言机密计算能力,在大数据、机器学习等场景下,除了支持C/C++外,还支持Python、Java应用快速改造成TEE安全应用,让用户的隐私数据更安全,让应用安全性改造更便捷。
  • 鲲鹏调试器支持2K个RANK并行调试:HPC并行程序具有逻辑复杂、并发量大、进程数多等特点,大规模调试难度大。鲲鹏调试器提供可视化图形调试界面,最高支持2048 Rank 节点并行调试,实时展示通讯组变化、计算节点、进程等信息,充分发挥鲲鹏集群算力。
  • AI加持场景化调优更智能:针对大数据、数据库等典型场景下参数复杂、高度依赖专家经验、调优门槛高等问题,鲲鹏DevKit提供AI驱动场景化性能调优,支持AI性能自学习与配置自动寻优、多层级配置模板仓辅助典型场景自动调优、以及软硬件全栈自动调优等能力,快速获取典型场景的最优配置参数,调优效率从Day级(人工)提升到Hour级,并且性能相比人工调优提升10%+。

全新架构让工具更易用:流水线中便捷迭代鲲鹏版本,迁移、开发、调优无缝衔接

为了进一步提升开发者的使用体验,10.30的新版本还即将上线鲲鹏DevKit全新架构,用户可以更加灵活、高效的单独安装使用,也可以直接预集成到现有开发流水线中使用:

  • 多工具合一:功能按需定义,一键安装、融合使用:以往鲲鹏DevKit提供了应用迁移、鲲鹏开发框架、编译调试插件和性能分析工具等,用户需要分别安装、登录、并在多个工具界面来回切换使用,升级后的DevKit将四个工具合一,关键功能插件化解耦,用户可以按需勾选需要的功能、一键安装、融合使用,以代码为中心串联迁移、开发、调优流程孤岛,效率高、体验好;
  • “零”代码接入CodeArts,便捷迭代云上鲲鹏版本:上半年在鲲鹏开发者峰会上,鲲鹏领域总裁李义发布了鲲鹏DevKit与开发流水线集成的能力,通过简单的配置,用户就可以在现有DevOps流程中便捷使用迁移扫描和鲲鹏亲和分析能力,随时检查和修改增量代码的鲲鹏兼容性以及鲲鹏亲和性,保障代码质量、快速迭代多平台版本;目前已支持Jenkins流水线的快速接入,下半年,鲲鹏DevKit与华为云进行深度合作,将代码迁移插件通过可视化的配置集成进华为云CodeArts Pipeline,更加便捷的迭代云上鲲鹏版本。

目前,华海智汇、志凌海纳等伙伴都已经在现有流水线中使用鲲鹏DevKit提升开发效率:

  • 其中华海智汇在打造政务信息技术应用创新适配一站通平台过程中,将鲲鹏DevKit的迁移,编译、测试、调优等IDE插件集成到政务应用迁移工具链中,面向政府委办局和应用厂商提供一站式应用适配支持服务,CodeArts自定义插件方式集成DevKit工代码迁移工具,实现政务应用的适配改造、代码开发的一体化在线实施,目前某政务监测管理应用已基于该平台完成应用的高效迁移及开发迭代,版本迭代效率较之前提升50%。
  • 志凌海纳的超融合软件SMTX OS能够为企业自建云提供融合部署的服务器虚拟化和融合部署的分布式存储功能,该软件对性能要求高(业务量高达1000 TPS、数据处理时延需要小于300ms),并且需要在流水线中开发多版本(涉及不同架构的C语言编写、难度大),志凌海纳借助鲲鹏DevKit进行性能调优并使用毕昇编译器进行编译优化,线程数和函数调用时延均有大幅提升,总体性能提升50%;此外在Jenkins流水线中集成了鲲鹏DevKit,快速高效地完成多版本ISO Kernel的开发和逻辑优化。

鲲鹏生态的繁荣离不开万千伙伴的支持,截止目前,鲲鹏DevKit已经助力 2700+伙伴迁移/开发了8800+应用,超过20万的开发者下载或者在远程实验室中体验了鲲鹏DevKit。未来,鲲鹏DevKit也将持续优化开发者的开发体验,通过鲲鹏社区(hikunpeng.com)为开发者提供全方位的支持,让开发者更加便捷、高效的进行鲲鹏应用开发和创新。

点击关注,第一时间了解华为云新鲜技术~

流水线中便捷迭代,鲲鹏DevKit 23.0新能力抢先看的更多相关文章

  1. Django 2.0 新特性 抢先看!

    一.Python兼容性 Django 2.0支持Python3.4.3.5和3.6.Django官方强烈推荐每个系列的最新版本. 最重要的是Django 2.0不再支持Python2! Django ...

  2. android6.0、7.0、8.0新特性总结之开发应用时加以考虑的一些主要变更。

    android6.0 参考一:简书Android 6.0 新特性详解 参考二:关于Android6.0以上系统的权限问题 参考三:值得你关注的Android6.0上的重要变化(一) 参考四:值得你关注 ...

  3. C# 9.0 新特性预览 - 类型推导的 new

    C# 9.0 新特性预览 - 类型推导的 new 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章将向大 ...

  4. C# 9.0 新特性预览 - 空参数校验

    C# 9.0 新特性预览 - 空参数校验 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章将向大家展示它 ...

  5. 开发错误记录3:问题 Error:failed to find Build Tools revision 23.0.2

    今天导入swiperefreshlayoutdemo 问题 Error:failed to find Build Tools revision 23.0.2 修改build.gradle 里面设置,其 ...

  6. python中的迭代

    #迭代Python的for循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象上. #list这种数据类型虽然有下标,但很多其他数据类型是没有下标的,但是,只要是可迭代对象,无论有无下标 ...

  7. Navicat Premium v12.0.23.0 破解教程x86,x64通用,手动破解

    教程来源于:吾爱破解网站 ----------更新线----------- 2018.01.23 Navicat Premium v12.0.23.0 测试破解依然有效 ----------更新线-- ...

  8. Navicat Premium v12.0.23.0 安装,使用激活码激活

    1 下载 可以直接官网下载安装包,也可以直接到我的云盘下载 下载地址:https://pan.baidu.com/s/1apwU9cIKBTr-z0CuJEJ9gg 文件包中包含下面的文件: 2 安装 ...

  9. 快速解决设置Android 23.0以上版本对SD卡的读写权限无效的问题

    快速解决设置Android 23.0以上版本对SD卡的读写权限无效的问题 转 https://www.jb51.net/article/144939.htm 今天小编就为大家分享一篇快速解决设置And ...

  10. 输入一个字符串,内有数字和非数字字符。例如:a123x456 17960 302tab5876。将其中连续的数字作为一个整数,依次存放到一维数组a中,例如123放在a[0],456放在a[1]……统计共有多少个整数,并输出这些数。

    题目内容:输入一个字符串,内有数字和非数字字符.例如:a123x456 17960 302tab5876.将其中连续的数字作为一个整数,依次存放到一维数组a中,例如123放在a[0],456放在a[1 ...

随机推荐

  1. 1. Mybatis 简介

    1. Mybatis历史 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code.随着 ...

  2. 论文翻译:2021_Real-Time Denoising and Dereverberation wtih Tiny Recurrent U-Net

    论文地址:微型循环U-Net实时降噪和去混响 论文代码: https://github.com/YangangCao/TRUNet https://github.com/amirpashamobini ...

  3. influxdb常用sql总结

    本文为博主原创,转载请注明出处: 1.登录influxdb influx -username admin -password "password" 2.查看数据库 ##查看有哪些数 ...

  4. Codeforces Round #883 (Div. 3) A-G

    比赛链接 A 代码 #include <bits/stdc++.h> using namespace std; using ll = long long; bool solve() { i ...

  5. Redis的设计与实现(4)-跳跃表

    跳跃表 (skiplist) 是一种有序数据结构, 它通过在每个节点中维持多个指向其他节点的指针, 从而达到快速访问节点的目的. 跳跃表支持平均 O(log N) 最坏 O(N) 复杂度的节点查找, ...

  6. Windows 交叉编译之 make

    以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/w8YV_TUb4QwsgChu3AspHg Make 是什么 Mak ...

  7. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(10)- 从Serial NAND启动

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MXRT1xxx系列MCU的Serial NAND启动. 最近越来越多的客户在咨询 i.MXRT1xxx 从 Serial N ...

  8. Feign自定义重试策略及超时时间

    背景 feign可以配置重试策略及超时时间,但是无法根据业务场景动态的设置.可能会引起接口幂等,无效重试资源耗费,大数据量耗时操作报超时异常等问题.所以需要更细粒度的重试策略及超时时间配置. 自定义重 ...

  9. 数据库是要拿来用的,不是用来PK先进性的

    周五参加了WAIC后又和一家上海本地的数据库厂商交流了一下午.等我要买高铁票回南京的时候已经买不到票了.好不容易刷到一张到苏州北的高铁票,我就上了车.上车后突然想起还不如就回苏州老家住一晚算了.到家后 ...

  10. Django: You are trying to add a non-nullable field 'name' to mainnav without a default; we can't do that (the database needs something to populate existing rows).

    错误原因: 语句中缺少默认值 class Main(models.Model): img = models.CharField(max_length=255) name = models.CharFi ...