面向数据中心的 RISC-V Java 优化之路

发布时间:2026/9/14 12:51:12

面向数据中心的 RISC-V Java 优化之路 编者按RISC-V 从嵌入式走向数据中心离不开软件生态的全栈支撑。阿里巴巴是龙蜥社区 RISC-V SIG 的重要成员单位JVM 团队深度参与相关工作。阿里巴巴 JDK 团队长期深耕 Java 虚拟机性能优化。近年来其持续推动 RISC-V 后端在 Dragonwell JDK 中的适配与演进。在近期举办的 RISC-V 编译器生态和性能优化 MeetUp上阿里云高级编译器专家蒯微分享了《Dragonwell JDK 在 RISC-V 上的探索》。蒯微分享了阿里巴巴基于 Alibaba Dragonwell 在 RISC-V 架构上的探索工作介绍了在代码密度优化、压缩指令支持、编译器后端移植等方面的社区贡献并重点展望了面向数据中心场景的技术方向。以下为本次分享全文阿里巴巴有大量核心业务如电商等运行在 Java 之上Java 对阿里巴巴而言是一项极为重要的基础软件技术因此内部设有专门团队持续投入 JDK 的研发与优化。此刻分享的 Alibaba Dragonwell 是一款免费的 OpenJDK 发行版提供长期支持包括性能增强、安全修复以及多项专有特性。它覆盖 JDK 多个 lts 版本每个版本分为 Standard 和 Extended 两个子版本。阿里巴巴是龙蜥社区 RISC-V SIG 的重要成员单位JVM 团队深度参与相关工作。Dragonwell JDK 作为 Anolis OS 的基础组件提供二进制发布。在对外的解决方案里Dragonwell JDK 也作为默认的 Java 基础组件为大数据高并发场景提供更优异的性能。我们在多个方向上深耕已久主要涵盖Wisp/Loom 协程阿里巴巴在 JDK 8 时代便自主开发了名为 Wisp 的协程方案提升 Java 在高并发下的性能在社区正式推出 Loom 协程框架后阿里也积极参与并贡献了大量优化。启动加速方面针对 Java 运行时启动慢、预热时间长的问题团队先后探索了 CDSClass Data Sharing预加载、AppCDS 类预热、AOT 编译以及 GraalVM Native Image 等多种方案针对不同场景提供启动加速能力。多租户隔离我们在单个 JVM 内部实现了多租户支持不同租户可设置独立的资源限制无需为每个应用部署独立的 JVM 实例。GC 优化我们在弹性内存回收以及 G1GC/ZGC 等垃圾回收器上持续优化减少 Java 应用暂停时间和提升内存使用效率。性能调优方面面向大数据场景如 Spark、Flink 等的定向优化重点关注向量化优化和指令级性能提升。此外我们也很关注代码密度优化——致力于缩小 JIT 编译生成的代码体积。在大型 Java 应用中JIT 生成的代码量往往非常庞大。根据我们的实践经验优化代码密度后无论是内存占用还是整体性能都能获得明显提升。此外团队近期还开发了热方法直接加速技术对于 Java 应用中已识别的热点方法可跳过 JIT 编译过程直接调用预编译的 Native 方法实现即时加速避免了 JIT 编译路径上的不确定性和额外开销。Alibaba Dragonwell 与 RISC-V 的结缘基于以上积累阿里巴巴将相关优化开源推出了 Alibaba Dragonwell JDK。该版本主要跟踪上游 OpenJDK 的 LTS 版本从JDK 8 到 JDK 25 均有长期支持。自 JDK 11 起团队开始提供 RISC-V 后端支持后续版本均提供可用的 RISC-V 二进制发行版。关于为何投入 RISC-V蒯微回顾了缘起平头哥发布 C910、C920 处理器后积极拓展软件生态主动联系我们寻求 RISC-V 支持。当时生态主要集中在开源工具链和扩展指令领域应用场景以 IoT 和嵌入式为主云端场景几乎空白我们认为这是一个很好的合作切入点。与此同时阿里云提出“一云多芯”战略——不仅支持 x86 和 ARM 平台也要支持 RISC-V 等国产处理器平台。本土化趋势叠加生态需求多重因素共同推动了团队对 RISC-V 的投入。在阿里云及阿里内部的众多应用中代码密度始终是我们重点关注的优化方向缩减代码体积在实践中带来了显著收益。以这个目标作牵引我们重点支持了 RISCV 的压缩指令支持(C-Extension)在 SPECjbb 测试中开启相关优化后最高时下 JIT 生成的代码体积可减少 20%这一收益相当可观同时从当时的测试结果来看性能也获得了一定提升。此外我们还贡献了大量 BugFix 和 GC 优化并重点参与了 Loom 的 RISC-V 后端开发。针对平头哥芯片的专属优化除了社区通用贡献我们还针对平头哥芯片的特有指令做了大量适配工作。平头哥处理器还包含一些自有扩展指令虽然并非标准 RISC-V 指令但测试表明这些指令对 Java 应用有实际收益团队将其集成到 Dragonwell JDK 中通过 JDK 启动选项 -XX:UseCSky 即可开启。在向量化方面由于当时拿到的芯片 Vector 扩展V 扩展规格尚未完全定型团队基于V 0.7.1版本做了向量化相关的优化工作。在 Dragonwell 版本选择上团队将 RISC-V 后端重点放在 Dragonwell 11 上。当时我们看到一方面内部用户和云上用户已大量迁移到 JDK 11另一方面从 Aarch64 的支持经验看Dragonwell 11 在弱内存模型下表现更为稳定因此我们优先选择更新的版本来支持 RISC-V。Dragonwell 11 本身也引入了许多新特性。团队基于上游后端将 RISC-V 支持移植到 Dragonwell 11并同步上游社区的最新改进。当时验证工作涵盖多个层面——QEMU、CSky、HiFive 等多个软硬件平台协同验证包括兼容性、正确性和性能测试。本身 RISC-V 已完全纳入团队的日常发布流程每个大版本都会进行 RISC-V 平台的全面验证并提供可直接下载使用的二进制工具链。在龙蜥生态中我们也提供了 RISC-V 版 JDK 的日常安装支持同时提供 QEMU 的 Docker 镜像方便开发者在没有 RISC-V 物理机的情况下也能进行开发调试。面向数据中心RISC-V 的新征程此前 RISC-V 主要应用于 IoT 和边缘计算场景但随着生态发展RISC-V 已开始向数据中心和高性能计算领域延伸。RISC-V 社区正在制定面向高性能场景的各种新规范平头哥的 C950 芯片也即将发布——这是一款面向数据中心的高性能 RISC-V 处理器目标场景包括大型 Java 应用和高负载云上业务。蒯微表示这与阿里巴巴 JVM 团队原有的目标更加契合。 Dragonwell JDK 25 已明确将在数据中心方向重点发力重点支持 C950 级别的 RISC-V 芯片。目前已在 C920 平台上将 Java 应用成功启动做了大量工程工作虽然性能和主流云主机的性能仍有差距但整体启动和基本运行已完全打通充分验证了当前 RISC-V JDK 的兼容性。同时我们也已开始基于 SPECjbb 等基准测试开展新一轮评估以挖掘更多性能优化点。在面向数据中心迁移的过程中我们的技术推进主要围绕两个方向展开一方面针对电商等核心应用强依赖的 Dragonwell JDK 特性我们已着手将其移植到 Dragonwell JDK 25上为后续业务落地做好准备另一方面我们也已与达摩院展开协同合作共同推进适配与优化工作。针对 C950 等支持 RVA23 Profile 的芯片我们考察了新的扩展可以带来的收益Java 应用可以在以下几个方面获得较大收益TSO 扩展支持C950 支持 ztso 扩展可以将内存模型从弱序模型切换为顺序一致性模型。Java的内存模型通常要求严格的内存屏障Fence弱序内存有可能带来性能提升但也需要在编译器层面进行精确处理以确保正确性。团队通过评估发现开启 ztso 扩展后可以去除大量不必要的内存屏障——基于团队之前在 Aarch64 的实践经验这些屏障往往是应用的性能瓶颈。初步小规模评测显示开启 ztso 扩展后整体收益为正。原子操作优化结合RISC-V上游已有的原子操作扩展团队将针对 C950 微架构做进一步评估和优化。加密算法加速RISC-V在加密指令方面与 x86 仍有差距部分加密算法尚未完全利用新的扩展指令如 Zvbb 等向量加密扩展。团队认为这是Java应用可能获益较大的方向。在新指令支持方面当前工作的重点在于 INTRINSIC 的补齐。我们发现与 x86 平台相比RISC-V 的 INTRINSIC 实现仍存在部分缺失后续将逐步完善这些缺口以确保指令支持的完整性。对于 RISC-V 的新扩展我们也需要评估在引入 Vector API 后能否实现与之相当的性能提升。另一方面由于 C950 的向量宽度与以往有所不同基于模拟器评测结果我们发现通过指令调度优化仍能带来进一步的性能提升这也是团队当前正在推进的工作之一。矩阵指令与端侧 AI 推理C950 还有一个独特之处——新增了矩阵计算指令为AI场景提供了匹敌 GPU 的本地算力。当下 AI 潮流来袭龙蜥社区和阿里巴巴 JVM 团队也会注重 JDK 在 AI 场景中的新的定位。他列举了多个端侧 AI 应用场景在 Token 到达大模型之前端侧小模型可以对请求进行预分类对话类、代码生成类、文章生成类等减轻大模型的推理负担长时间对话产生的冗长上下文可以在端侧进行压缩摘要减少送入大模型的 token 数量密钥管理、格式解析等本地方法调用任务也可以由端侧小模型完成。这里引用一些评测数据在某些场景中端侧计算在整个 Pipeline 延迟中的占比可达 50%这一比例超出了此前的预期。考虑到容器、沙箱等运行环境的开销端侧模型的优化空间值得深入挖掘。Java AI 全栈生态展望当前大部分 AI 场景仍在使用 Python 或 CUDA但 Java 生态中已经逐步建立起完整的 AI 技术栈推理层已有 TensorFlow/PyTorch 的 Java 绑定支持框架层 LangChain4j、Spring AI 等框架日趋成熟计算API层Java也开始探索Babylon等异构计算的编程模式向量数据库等 AI 相关依赖在 Java 社区也有ElasticSearch等成熟方案。Java 在 AI 全栈生态中虽然还在早期但基本框架已经搭建起来。如果能将整个全栈打通将带来两大优势一是资源开销更小从上到下运行在同一个 Java 环境中跨语言、跨进程的调用开销可以显著降低二是和原有生态融合更好Java 最大的优势在于成熟的中间件、工具链和运维体系如果 AI 能力能融入这套已有体系将带来更好的工程化体验。总体来说RISC-V 作为一个开放架构带来了广阔的想象空间和活跃的社区生态。从 IoT 到数据中心、从嵌入式到高性能计算RISC-V 的应用边界正在快速拓展。阿里巴巴 JDK 团队将持续投入 RISC-V 生态建设在 JDK 各版本中不断贡献优化和改进与上游社区协同维护。同时团队也将积极探索Java与AI结合的方向——利用 RISC-V 新架构的特性如矩阵指令为 Java 在端侧 AI 推理场景中开辟新的可能。本次 MeetUp PPT 、视频回放已上线龙蜥官网欢迎点击查看PPT 下载链接龙蜥社区MeetUp - OpenAnolis 龙蜥操作系统开源社区文档中心视频回放Video - OpenAnolis code repository
延伸阅读

更多相关文章

2026/9/13 7:16:36

“这是我想要的人生,还是别人定义的人生?”

人生最深的迷茫,很多时候不是不知道去哪,而是不确定:眼前这条路,到底是不是自己真正想走的。第一层:为什么会出现“别人的人生”? 人从小就在接受各种定义: 什么叫成功。 什么叫优秀。 什么叫体…

2026/9/14 12:49:37

压缩感知OMP算法详解:MATLAB源码实现与参数调优

简介:一份聚焦压缩感知中正交匹配追踪(OMP)算法的MATLAB实现资源,适合学习稀疏重构理论的学生、研究者及需要快速落地重构算法的工程人员。源码仅包含1个M文件,压缩包整体约2KB,代码结构清晰、体量精简&…

2026/9/14 12:49:37

MiniCPM5-2B接入DeepSeek Harness实战:轻量多模态Agent落地指南

1. 项目概述:为什么把 MiniCPM5-2B 接入 DeepSeek Harness 值得花时间折腾?最近在 GitHub 上刷到 MiniCPM5-2B 这个模型,第一反应是——这名字有点意思,“5”不是版本号,而是指它支持5 种模态输入:文本、图…

2026/9/14 12:49:37

MATLAB激光点云病虫害识别:从预处理到模型训练

简介:这是一套基于激光点云与深度神经网络(VGG19)的农作物病虫害识别Matlab实现源码,面向农业工程、计算机视觉方向的初学者和研究人员,可用于快速搭建从数据加载、模型训练到测试评估的完整实验流程。压缩包共942个文…

2026/9/14 12:49:36

Python爬虫构建医疗知识图谱:Scrapy+Playwright解析ClinicalTrials.gov

简介:这是一份面向高校计算机及相关专业学生(如人工智能、自动化、电子信息等)的医疗数据工程实战资源,聚焦ClinicalTrials.gov公开临床试验数据的采集与知识图谱构建,解决课程设计、毕业设计及科研入门中缺乏端到端医…

2026/9/14 12:44:36

基于轻量化CNN的草莓品质检测系统设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/14 2:17:50

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/14 0:03:22

KCF目标跟踪算法与OTB工程实现:毕业设计实战解析

简介:这是一份基于KCF核相关滤波算法、融合尺度池与抗遮挡处理的目标检测跟踪MATLAB完整源码,主要面向计算机相关专业准备毕业设计、课程设计或期末大作业的学生,也适合需要项目实战练习的初学者。源码在OTB数据集上完成验证,能够…

2026/9/14 0:03:22

语音情感识别实战:Keras实现LSTM、CNN、SVM与MLP多模型对比

简介:面向语音情感识别入门与进阶开发者,这份基于Keras的项目源码完整实现了LSTM、CNN、SVM、MLP四种模型,兼容Python3.8与Keras/TensorFlow2环境。压缩包内含49个文件,大小约70.31MB,主体包括Python脚本、yaml/json配…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/12 14:32:17

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码