当前位置: 首页 > news >正文

突破 RISC - V 仿真极限:从解释器优化到原生执行,加速程序运行速度

引言

2026 年 7 月 26 日的文章探讨了在非 RISC - V 机器上,RISC - V 程序性能接近裸机性能的方法,关键是使用提前编译器,通过尾调用连接基本块,采用 Clang 的 `preserve_none` 调用约定保留热点来宾状态。作者参与 [OpenVM](https://github.com/openvm - org/openvm) 开发,这是在 [Axiom](https://axiom.xyz) 构建的 RISC - V 虚拟机,能运行程序并生成加密证明。在 Axiom 工作时,证明生成从单 CPU 扩展到 [GPU 集群](https://ethproofs.org/provers),但执行速度成瓶颈。在 M3 MacBook 上,原生 arm64 程序约 100 毫秒完成,通过解释器运行相同程序需三到四秒。

解释器基准

运行 RISC - V 代码的直接方法是用解释器,执行取指 - 解码 - 执行周期。但来宾指令短小,解释器管理指令时间可能超执行时间。

提前预解码

可对指令预解码,存储操作、操作数和处理程序指针,解码不再是热点循环部分,执行时通过间接调用处理程序指针分发。

通过计算跳转进行分发

预解码后,间接分发成瓶颈,可用“计算跳转”,每个处理程序查找下一个操作码标签并跳转,执行过程通过间接跳转转移控制权。

尾调用线程化

尾调用可连接处理程序,处理程序尾调用下一个处理程序。编译器可将调用转换为普通跳转,Clang 的 `musttail` 属性强制转换。

将状态保留在寄存器中

处理程序通过 `State *` 访问 `pc`,可将其作为函数参数传递,让编译器将频繁使用的值保留在宿主机寄存器中。

实现原生执行

手动编写的汇编后端

简单的提前(AOT)翻译器逐指令翻译 RISC - V 指令,生成汇编代码,代价是可移植性差。

寄存器映射

翻译器可将频繁使用的来宾寄存器映射到宿主机寄存器,减少内存和寄存器间的移动。

让 Clang 作为后端

一个巨型函数

可将整个程序作为一个函数,转换为 C 代码,让编译器优化。但程序规模大时此方法失效。

逐基本块重新编译

基本块是顺序指令序列,重新编译器将每个基本块作为单独 C 函数生成,让 Clang 优化。

识别基本块

重新编译器通过识别基本块和连接成控制流图确定生成函数的起始和结束位置。示例展示了如何应用规则处理对数组求和的函数。

http://www.jsqmd.com/news/1342269/

相关文章:

  • 如何快速上手MLFeatureSelection?3分钟完成你的第一个特征选择任务
  • Blender插件与资源终极指南:一站式提升你的3D创作效率
  • 如何快速部署Django Channels Example:从本地到Heroku的零门槛指南
  • 2026新乡新飞花园290平装修|老牌高端大平层翻新升级,新乡金螳螂重塑质感人居 - 滚动商讯
  • 低显存也能玩转SenseNova-U1.5-8B-MoT-Preview:GGUF量化与分层加载方案全攻略
  • µnit vs 其他C测试框架:为什么选择这款轻量级工具?
  • KRAGEN与Weaviate深度整合:向量数据库架构与数据持久化方案
  • 招生来了却留不住?2026年Q3适合中小机构的网校系统推荐
  • 无锡市滨湖区GEO城市合伙人选型推荐哪家靠谱:城市合伙人合作前,先看清这七个维度 - 子柔传媒
  • Python构建足球数据可视化分析系统全攻略
  • 鞍山文武学校家长择校攻略:毕业生去向及升学保障情况参考 - 圣龙武术朱老师
  • 别再只会一句“去 AI 味”:4 个真实可安装的 Skill,搭出完整写作工作流
  • 4 银行存款业务之大额存单业务
  • 如何在10分钟内启动flat-server?Node.js开源教室后端快速上手指南
  • 找重庆铜梁传统龙灯厂家,定制与演出怎么选铜梁龙舞龙灯厂 - 品牌优推
  • grafana loki alloy轻量级日志采集
  • WorkBuddy智能工作台:20分钟快速上手,提升开发与办公效率
  • Pinceau计算样式功能:让组件样式与状态无缝绑定
  • 2026年最新中小企业官网制作哪家好?别让官网只当摆设式名片
  • Tempesta FW性能调优秘籍:解锁最高性能的10个关键参数
  • 2026新乡橡树湾270平装修|新乡金螳螂定制中西双厨+吧台,解锁轻奢居家烟火气 - 滚动商讯
  • 暗黑破坏神2存档编辑完全指南:5分钟掌握d2s-editor网页版
  • ADR容器化部署:Docker环境下的快速搭建
  • MAIGateway,魔芋企业级AI网关的FinAPI多模型路由设计
  • Buddy-MLIR与PyTorch集成教程:轻松实现AI模型的硬件加速
  • CoordTransform:解决中国地图坐标系混乱问题的专业工具
  • 抖店1688一件代发全流程实战指南:用抖掌柜一站式解决铺货、履约、店铺管理所有难题 - 电商分享
  • 新手必看:LFM2.5-2.6B-mxfp8常见问题解决与最佳实践
  • 河北牛栏网源头厂家怎么选?认准卓奇丝网2026实战指南 - 品牌优推
  • 2026年Q3港口与航道工程监理资质甲级代办市场观察:粤泓(深圳)建筑咨询有限公司的专业化路径解析 - 卓企推荐