鲲鹏一码多芯、同辕开发的机遇和挑战
核心观点: 鲲鹏计算产业致力于推动计算架构创新和开源基础软件研发,推动鲲鹏生态发展。为解决鲲鹏和 x86 多平台版本并行迭代带来的重复开发验证工作,鲲鹏提出鲲鹏原生开发,实现 1 套代码 +1 条流水线 + 多平台版本,助力伙伴持续且首发性能领先的商用版本。
核心技术理念: 基于鲲鹏硬件 +openEuler+ 鲲鹏 DevKit+ 鲲鹏 BoostKit,实现 1 套代码+1 条流水线构建多平台版本,效率更高、性能更优。
同辕开发能力介绍:
-
代码开发阶段:
- 应用开发工具: 支持创建鲲鹏应用工程,支持 C/C++ 开发语言,提供编码时自动匹配鲲鹏加速库函数字典、智能提示、高亮、联想等功能。
- 字典管理: 支持加速库函数字典管理,可线上(自动)和线下更新。
- 编程辅助: 支持鲲鹏加速库函数的悬浮提示、函数搜索,支持 Coding 时自动联想和高亮鲲鹏加速库优化后的相关函数。
- 鲲鹏BoostKit 应用使能套件: 提供高性能开源组件、基础加速软件包和应用加速软件包,使能应用极致性能,针对大数据、分布式存储、数据库、虚拟化和 ARM 原生等场景进行了深度优化。
- UTgen 工具: 专为 Maven 和 Gradle 项目设计的 Java 单元测试自动生成工具,支持通过右击方法名、类名、类文件、包目录生成测试用例。
-
代码优化阶段:
- 亲和分析工具: 实现鲲鹏亲和代码优化建议,支持 64 位运行模式检查、字节对齐检查、缓存行对齐检查、内存一致性静态检查、向量化检查、矩阵化检查、构建亲和、计算精度分析等功能。
-
编译阶段:
- 毕昇编译器: 支持 C11、C++14/17、Fortran 语言标准,OpenMP 4.5/5.0 API 标准,提供高性能编译算法,支持安全/高效编码工具集。
- 毕昇 JDK: 基于 OpenJDK 开发,是一款高性能、可用于生产环境的 OpenJDK 发行版,支持 Java 8、11、17、21 四个 LTS 版本。
- GCC for openEuler: 基于开源 GCC 开发的编译器工具链,支持 C11、C++14/17、Fortran 2018 语言标准,OpenMP 4.5/5.0 API 标准。
-
调试阶段:
- 编译调试工具: 支持单机下 GPU 应用调试能力,实现 CUDA-GDB 调试能力;支持 HPC 场景多节点应用并行调试能力以及鲲鹏平台远程编译调试能力。
-
调优阶段:
- 系统性能分析工具: 收集服务器的处理器硬件、操作系统、进程/线程、函数等各层次的性能数据,分析出系统性能指标,定位到系统瓶颈点及热点函数,给出优化建议。
- Java 性能分析工具: 图形化显示 Java 程序的堆、线程、锁、垃圾回收等信息,收集热点函数、定位程序瓶颈点,帮助用户采取针对性优化。
- 系统诊断工具: 分析系统运行指标,识别异常点,例如:内存泄漏、内存越界、网络丢包等,并给出优化建议。
-
流水线阶段:
- DevKit 同辕开发插件: 支持 1 小时接入两大主流(Jenkins、GitLab)CI/CD 流水线,用户可以在流水线中高效使用鲲鹏迁移扫描、亲和分析、编译、测试、调优等能力。
- 门禁检查: 提供 DevKit 应用迁移工具、亲和分析工具和编码规范检查,可拦截不适配鲲鹏服务器的代码、提供鲲鹏亲和代码优化建议和编码规范问题提示。
- 编译构建: 提供毕昇编译器、毕昇 JDK、GCC for openEuler。
- 调优: 提供自动反馈优化功能,通过流水线自动触发,实现应用编译优化。
- 测试: 提供兼容性测试工具和 Java 性能测试工具。
- 版本发布: 提供病毒扫描能力,实现了版本安全合规扫描自动化。
-
OS 底座(openEuler 系操作系统):
- openEuler 简介: 面向数字基础设施的 AI 原生操作系统,支持服务器、云计算、边缘计算、嵌入式等应用场景,支持多样性计算,致力于提供安全、稳定、易用的操作系统。
- openEuler 基础能力:
- iSulad 轻量级容器引擎: 轻量级容器引擎,具有轻、灵、巧、快的特点,可应用的领域更为广泛。
- StratoVirt: 基于 Linux 内核虚拟化(KVM)的开源轻量级虚拟化技术,在保持传统虚拟化的隔离能力和安全能力的同时,降低了内存资源消耗,提高了虚拟机启动速度。
- openEuler AI 软件栈: 兼容 NVIDIA、Ascend 等主流算力平台的软件栈,为用户提供高效的开发运行环境。
- oeAware 智能调优框架: 在 openEuler 上实现低负载采集感知调优的框架,目标是在系统/业务运行时动态感知系统行为后智能使能系统调优特性。
- openEuler 工具和社区服务:
- openEuler DevStation 开发者工作站: 面向开发者的开发者工作站,预装 VSCODE,大幅提升开发者效率。
- EulerMaker 构建系统: 软件包构建系统,完成源码到二进制软件包的构建,并支持开发者通过搭积木方式,组装和定制出适合自己需求的场景化 OS。
- EulerPipeline 流水线: 面向社区开发者,基于 EulerPipeline 流水线,构建多架构、高质量的源码及二进制仓库。
- CVE Manager 漏洞管理: 对安全漏洞进行感知、收集、处理以及披露的流程、工具和机制的统称。
- 操作系统迁移: 将源操作系统迁移到目标操作系统的迁移工具套件,可以对 CentOS,Redhat,Ubuntu,SUSE 进行原地迁移,同时具有批量化原地升级能力。
- openEuler 官方仓及扩展仓: 提供超过 3 万+源码包、百万级二进制软件包,可为 CentOS、Fedora 等系统向 openEuler 迁移的开发者、OSV、企业等用户提供一站式兼容性软件包、文件查询、下载、开源软件包的使用风险感知服务。